/usr/local/sbin/rabbitmq-server&
前回は上記コマンドでサーバーを起動しましたが、マニュアルを読むとクラスタリング設定ができるみたいなので、同じPCの中で2つのノードを起動してHAクラスター作ってみましょう。ちなみにRAMノードいうインメモリ型を選択する事も可能です。この場合、揮発性が高いデータになるので、リスクよりもパフォーマンス優先型の場合にのみ利用してください。
rabbitmqctlというコマンドがインストールされていますので早速使っていきます。
サーバー起動オプションはこちらに詳細が記載されています
1. vegrantを起動
~/Vagrant/CentOS64
[root]$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
...
...
[root]$ vagrant ssh
2. EPELの設定
/etc/yum.repos.d/内にEPELリポジトリの設定をします。
yum install epel-release
[root@kalturaadmin vagrant]# cd /etc/yum.repos.d/
[root@kalturaadmin yum.repos.d]# yum install epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.vodien.com
* epel: ftp.kddilabs.jp
* extras: mirror.readyspace.com
* updates: mirror.readyspace.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:5-4 will be updated
---> Package epel-release.noarch 0:6-8 will be an update
--> Finished Dependency Resolution
..........
[root@kalturaadmin yum.repos.d]# ls -al
合計 36
drwxr-xr-x. 2 root root 4096 11月 1 01:09 2015 .
drwxr-xr-x. 83 root root 4096 11月 1 00:55 2015 ..
-rw-r--r--. 1 root root 1926 2月 25 08:57 2013 CentOS-Base.repo
-rw-r--r--. 1 root root 638 2月 25 08:57 2013 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 2月 25 08:57 2013 CentOS-Media.repo
-rw-r--r--. 1 root root 3664 2月 25 08:57 2013 CentOS-Vault.repo
-rw-r--r-- 1 root root 1056 11月 5 03:52 2012 epel-testing.repo
-rw-r--r-- 1 root root 957 11月 5 03:52 2012 epel.repo
-rw-r--r-- 1 root root 998 8月 24 10:20 2015 kaltura.repo
[root@kalturaadmin yum.repos.d]# yum search rabbitmq-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
[root@kalturaadmin yum.repos.d]# yum search rabbitmq-server --enablerepo=epel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
ちょっとyumでエラーでるので証明書のアップグレードします。
yum upgrade ca-certificates --disablerepo=epel
[root@kalturaadmin yum.repos.d]# yum upgrade ca-certificates --disablerepo=epel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
Setting up Upgrade Process
Resolving Dependencies
.........
3. Rabbit MQ のインストール
yum -y install rabbitmq-server --enablerepo=epel
[root@kalturaadmin yum.repos.d]# yum -y install rabbitmq-server --enablerepo=epel
Loaded plugins: fastestmirror
.....
.....
Installed:
rabbitmq-server.noarch 0:3.1.5-1.el6
Dependency Installed:
erlang.x86_64 0:R14B-04.3.el6 erlang-appmon.x86_64 0:R14B-04.3.el6 erlang-asn1.x86_64 0:R14B-04.3.el6
erlang-common_test.x86_64 0:R14B-04.3.el6 erlang-compiler.x86_64 0:R14B-04.3.el6 erlang-cosEvent.x86_64 0:R14B-04.3.el6
erlang-cosEventDomain.x86_64 0:R14B-04.3.el6 erlang-cosFileTransfer.x86_64 0:R14B-04.3.el6 erlang-cosNotification.x86_64 0:R14B-04.3.el6
erlang-cosProperty.x86_64 0:R14B-04.3.el6 erlang-cosTime.x86_64 0:R14B-04.3.el6 erlang-cosTransactions.x86_64 0:R14B-04.3.el6
erlang-crypto.x86_64 0:R14B-04.3.el6 erlang-debugger.x86_64 0:R14B-04.3.el6 erlang-dialyzer.x86_64 0:R14B-04.3.el6
erlang-diameter.x86_64 0:R14B-04.3.el6 erlang-docbuilder.x86_64 0:R14B-04.3.el6 erlang-edoc.x86_64 0:R14B-04.3.el6
erlang-erl_docgen.x86_64 0:R14B-04.3.el6 erlang-erl_interface.x86_64 0:R14B-04.3.el6 erlang-erts.x86_64 0:R14B-04.3.el6
erlang-et.x86_64 0:R14B-04.3.el6 erlang-eunit.x86_64 0:R14B-04.3.el6 erlang-examples.x86_64 0:R14B-04.3.el6
erlang-gs.x86_64 0:R14B-04.3.el6 erlang-hipe.x86_64 0:R14B-04.3.el6 erlang-ic.x86_64 0:R14B-04.3.el6
erlang-inets.x86_64 0:R14B-04.3.el6 erlang-inviso.x86_64 0:R14B-04.3.el6 erlang-jinterface.x86_64 0:R14B-04.3.el6
erlang-kernel.x86_64 0:R14B-04.3.el6 erlang-megaco.x86_64 0:R14B-04.3.el6 erlang-mnesia.x86_64 0:R14B-04.3.el6
erlang-observer.x86_64 0:R14B-04.3.el6 erlang-odbc.x86_64 0:R14B-04.3.el6 erlang-orber.x86_64 0:R14B-04.3.el6
erlang-os_mon.x86_64 0:R14B-04.3.el6 erlang-otp_mibs.x86_64 0:R14B-04.3.el6 erlang-parsetools.x86_64 0:R14B-04.3.el6
erlang-percept.x86_64 0:R14B-04.3.el6 erlang-pman.x86_64 0:R14B-04.3.el6 erlang-public_key.x86_64 0:R14B-04.3.el6
erlang-reltool.x86_64 0:R14B-04.3.el6 erlang-runtime_tools.x86_64 0:R14B-04.3.el6 erlang-sasl.x86_64 0:R14B-04.3.el6
erlang-snmp.x86_64 0:R14B-04.3.el6 erlang-ssh.x86_64 0:R14B-04.3.el6 erlang-ssl.x86_64 0:R14B-04.3.el6
erlang-stdlib.x86_64 0:R14B-04.3.el6 erlang-syntax_tools.x86_64 0:R14B-04.3.el6 erlang-test_server.x86_64 0:R14B-04.3.el6
erlang-toolbar.x86_64 0:R14B-04.3.el6 erlang-tools.x86_64 0:R14B-04.3.el6 erlang-tv.x86_64 0:R14B-04.3.el6
erlang-typer.x86_64 0:R14B-04.3.el6 erlang-webtool.x86_64 0:R14B-04.3.el6 erlang-wx.x86_64 0:R14B-04.3.el6
erlang-xmerl.x86_64 0:R14B-04.3.el6 libXxf86vm.x86_64 0:1.1.3-2.1.el6 mesa-dri-drivers.x86_64 0:10.4.3-1.el6
mesa-dri-filesystem.x86_64 0:10.4.3-1.el6 mesa-dri1-drivers.x86_64 0:7.11-8.el6 mesa-libGL.x86_64 0:10.4.3-1.el6
mesa-libGLU.x86_64 0:10.4.3-1.el6 mesa-private-llvm.x86_64 0:3.4-3.el6 tcl.x86_64 1:8.5.7-6.el6
tk.x86_64 1:8.5.7-5.el6 unixODBC.x86_64 0:2.2.14-14.el6 wxBase.x86_64 0:2.8.12-1.el6.centos
wxGTK.x86_64 0:2.8.12-1.el6.centos wxGTK-gl.x86_64 0:2.8.12-1.el6.centos
Complete!
4. 管理画面のプラグインを有効化
rabbitmq-plugins enable rabbitmq_shovel
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_shovel_management
[root@kalturaadmin yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_shovel
The following plugins have been enabled:
amqp_client
rabbitmq_shovel
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
[root@kalturaadmin yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
[root@kalturaadmin yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_shovel_management
The following plugins have been enabled:
rabbitmq_shovel_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
5. 起動と終了
/etc/init.d/rabbitmq-server start / stop
[root@kalturaadmin yum.repos.d]# /etc/init.d/rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.
[root@kalturaadmin yum.repos.d]# /etc/init.d/rabbitmq-server stop
Stopping rabbitmq-server: rabbitmq-server.
[
6. .erlang.cookieの値を確認
クラスタリング時にクラスタノード間の値を同一にしないといけないらしいので確認。
今回は同一ホストに入れるので見るだけ。
[root@kalturaadmin yum.repos.d]# cat /var/lib/rabbitmq/.erlang.cookie
AENTCZPNUAGIQDBLZTJF
7. ホスト名の確認
ホスト名が正しく登録されているか確認しましょう。
変更する場合はrabbitmq-serverを再起動してください。
/etc/init.d/rabbitmq-server restart
[root@kalturaadmin mnesia]# cat /etc/hostname
kalturaadmin
[root@kalturaadmin mnesia]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.3.3 kalturaadmin
8. 管理画面のユーザー追加
http://192.168.3.3:15672/
にアクセスするユーザーを追加します。
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin "." "." ".*"
起動している状態でアクセスしてみて画面がみられたらとりあえずOKです。
9. ノードhareを追加
2台めのノードとしてhareを追加します。
今回は同じサーバー内で2台のノードをポートを変えて動かします。
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=hare rabbitmq-server -detached
[root@kalturaadmin mnesia]# RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=hare rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
[root@kalturaadmin mnesia]# rabbitmqctl -n hare start_app
Starting node hare@kalturaadmin ...
...done.
10.2台目ノードの追加
hareをノードとしてrabbitに追加します
rabbitmqctl -n hare stop_app
rabbitmqctl -n hare join_cluster rabbit@`hostname -s`
rabbitmqctl -n hare start_app
[root@kalturaadmin mnesia]# rabbitmqctl -n hare stop_app
Stopping node hare@kalturaadmin ...
...done.
[root@kalturaadmin mnesia]# rabbitmqctl -n hare join_cluster rabbit@`hostname -s`
Clustering node hare@kalturaadmin with rabbit@kalturaadmin ...
...done.
[root@kalturaadmin mnesia]# rabbitmqctl -n hare start_app
Starting node hare@kalturaadmin ...
...done.
11. データストアの確認
/var/lib/rabbitmq/mnesia
に移動して中身を見てみます。
ノードごとにフォルダができていてconfigファイルやログなどが入っているので、必要に応じてチェックしましょう。
[root@kalturaadmin mnesia]# cd /var/lib/rabbitmq/mnesia
[root@kalturaadmin mnesia]# ls -al
合計 32
drwxr-xr-x 8 rabbitmq rabbitmq 4096 11月 1 02:03 2015 .
drwxr-x--- 3 rabbitmq rabbitmq 4096 11月 1 01:29 2015 ..
drwxr-xr-x 4 rabbitmq rabbitmq 4096 11月 1 02:11 2015 hare
drwxr-xr-x 10 rabbitmq rabbitmq 4096 11月 1 02:03 2015 hare-plugins-expand
drwxr-xr-x 4 rabbitmq rabbitmq 4096 11月 1 01:32 2015 rabbit
drwxr-xr-x 10 rabbitmq rabbitmq 4096 11月 1 01:29 2015 rabbit-plugins-expand
drwxr-xr-x 4 rabbitmq rabbitmq 4096 11月 1 02:09 2015 rabbit@kalturaadmin
drwxr-xr-x 10 rabbitmq rabbitmq 4096 11月 1 01:48 2015 rabbit@kalturaadmin-plugins-expand
12. hareノードをRAMモードで動かす
RAMモードに変更してみましょう。
rabbitmqctl -n hare stop_app
rabbitmqctl -n hare change_cluster_node_type ram
rabbitmqctl -n hare start_app
[root@kalturaadmin hare]# rabbitmqctl -n hare stop_app
Stopping node hare@kalturaadmin ...
...done.
[root@kalturaadmin hare]# rabbitmqctl -n hare change_cluster_node_type ram
Turning hare@kalturaadmin into a ram node ...
...done.
[root@kalturaadmin hare]# rabbitmqctl -n hare start_app
Starting node hare@kalturaadmin ...
...done.