rabbitmq-3.5.7クラスタインストール構成
この文だけで踏まれた穴を記録します...
試験環境:
- CentOS6.7_x64
- rabbitmq-3.5.7
一、rabbitmqのインストール
ここではyum方式でrabbitmqをインストールします
1.依存パッケージとコンパイル環境の準備:
2、Erlangのインストール
RabbitMQはErlangベースなので、まずErlang環境を構成する必要があります.
3、rabbitmq-serverのインストール
または、
次の操作の前に、本機のselinuxとiptablesが閉じていることを確認してください.そうしないと...
4、サーバーホストの構成:
ホストのhostsファイルを編集して、ホスト名とipアドレスの対応関係を書いてください.rabbitmqのすべてのホストは書きます.例:
5、rabbitmqを起動する
2台のマシンでそれぞれ次のコマンドを実行します.
6、編集erlang.クッキーファイル
すべてのrabbitmqクラスタノード上のファイルを確認します.erlang.クッキーの内容は一致しています.
いずれかのノードの上の内容を、他の各ノードのすべてにコピーすることができる.erlang.クッキーファイル.
.erlang.クッキーファイルのディレクトリは次のとおりです.
以上の2つの経路のうちの.erlang.クッキーはすべて修正しなければなりません.
パーミッションの問題が発生した場合は、次の手順に従います.
次のエラーが発生します.
このように多くの問題がある.
7.rabbitmqマスターノード(CentOS 67-01)を選択し、rabbitmqを起動する
注意:hsotsファイルの修正後および.erlang.クッキーファイルが変更されたら、rabbitmq(すべてのノード)を再起動します.
8、ノードdemo 1をクラスタに加える
プライマリノードでのクラスタ情報の表示
ノードのクラスタへの参加に失敗した場合は、次の手順で操作します.
それでも失敗する場合は、上記の第6ステップが操作済みかどうかを確認し、各ノードの.erlang.クッキーファイルの内容が一致しています.
また、サーバのファイアウォールとselinuxが閉じていることを確認します.
全部チェックしてもだめなら、伝言を残して交流してください...
次にrabbitmqクラスタの使用およびクラスタノードの管理に関するドキュメントを整理します...
試験環境:
- CentOS6.7_x64
- rabbitmq-3.5.7
一、rabbitmqのインストール
ここではyum方式でrabbitmqをインストールします
1.依存パッケージとコンパイル環境の準備:
yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc glibc-devel gcc-c++ autoconf kernel-devel m4 ncurses-devel tk tc
2、Erlangのインストール
RabbitMQはErlangベースなので、まずErlang環境を構成する必要があります.
yum -y install erlang
3、rabbitmq-serverのインストール
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.7/rabbitmq-server-3.5.7-1.noarch.rpm
rpm -ivh rabbitmq-server-3.5.7-1.noarch.rpm
または、
yum -y install rabbitmq-server-3.5.7-1.noarch.rpm
次の操作の前に、本機のselinuxとiptablesが閉じていることを確認してください.そうしないと...
4、サーバーホストの構成:
ホストのhostsファイルを編集して、ホスト名とipアドレスの対応関係を書いてください.rabbitmqのすべてのホストは書きます.例:
vim /etc/hosts
192.168.71.128 demo1
192.168.71.134 CentOS67-01
5、rabbitmqを起動する
2台のマシンでそれぞれ次のコマンドを実行します.
service rabbitmq-server start
6、編集erlang.クッキーファイル
すべてのrabbitmqクラスタノード上のファイルを確認します.erlang.クッキーの内容は一致しています.
いずれかのノードの上の内容を、他の各ノードのすべてにコピーすることができる.erlang.クッキーファイル.
.erlang.クッキーファイルのディレクトリは次のとおりです.
$HOME/.erlang.cookie
/var/lib/rabbitmq/.erlang.cookie
以上の2つの経路のうちの.erlang.クッキーはすべて修正しなければなりません.
パーミッションの問題が発生した場合は、次の手順に従います.
chmod 600 $HOME/.erlang.cookie
chmod 600 /var/lib/rabbitmq/.erlang.cookie
次のエラーが発生します.
ERROR: epmd error for host demo1: address (cannot connect to host/port)
* TCP connection succeeded but Erlang distribution failed
Error: unable to connect to nodes [root@iZ23j868sadZ]: nodedown
Error: mnesia_unexpectedly_running
...
このように多くの問題がある.
7.rabbitmqマスターノード(CentOS 67-01)を選択し、rabbitmqを起動する
service rabbitmq-server start
注意:hsotsファイルの修正後および.erlang.クッキーファイルが変更されたら、rabbitmq(すべてのノード)を再起動します.
service rabbitmq-server restart
8、ノードdemo 1をクラスタに加える
[root@demo1 ~]# rabbitmqctl stop_app
Stopping node rabbit@demo1 ...
[root@demo1 ~]# rabbitmqctl reset
[root@demo1 ~]# rabbitmqctl join_cluster --ram rabbit@CentOS67-01
Clustering node rabbit@demo1 with 'rabbit@CentOS67-01' ...
[root@demo1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@demo1 ...
[{nodes,[{disc,['rabbit@CentOS67-01']},{ram,[rabbit@demo1]}]}]
プライマリノードでのクラスタ情報の表示
[root@CentOS67-01 ~]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@CentOS67-01' ...
[{nodes,[{disc,['rabbit@CentOS67-01']}]},
{running_nodes,['rabbit@CentOS67-01']},
{cluster_name,<>},
{partitions,[]}]
ノードのクラスタへの参加に失敗した場合は、次の手順で操作します.
[root@demo1 ~]# rabbitmqctl stop_app
Stopping node rabbit@demo1 ...
[root@demo1 ~]# rabbitmqctl reset
[root@demo1 ~]# rabbitmqctl join_cluster --ram rabbit@CentOS67-01
それでも失敗する場合は、上記の第6ステップが操作済みかどうかを確認し、各ノードの.erlang.クッキーファイルの内容が一致しています.
また、サーバのファイアウォールとselinuxが閉じていることを確認します.
全部チェックしてもだめなら、伝言を残して交流してください...
次にrabbitmqクラスタの使用およびクラスタノードの管理に関するドキュメントを整理します...