rabbitmq叢集運維一點總結
阿新 • • 發佈:2018-11-05
說明:以下操作都以三節點叢集為例,機器名標記為機器A、機器B、機器C,如果為雙節點忽略機器C,如果為各多節點則與機器C操作相同
一、rabbitmq叢集必要條件
1.1、繫結實體ip,即ip a所能查詢到的繫結到網絡卡上的ip,以下是繫結方法:
1 #編輯配置路徑 /etc/rabbitmq/rabbitmq-env.conf 2 NODE_IP_ADDRESS=172.16.136.133
1.2. 配置域名對映到實體ip
#配置檔案1所在路徑 /etc/rabbitmq/rabbitmq.config (如果是叢集,每臺機器都需要修改這個繫結本機實體ip) #其中[email protected]是建立叢集時所配置的引數,@後面的引數為主機名,示例中為master [ {rabbit, [ {cluster_nodes, {['[email protected]'], disc}}, {cluster_partition_handling, ignore}, {default_user, <<"guest">>}, {default_pass, <<"guest">>}, {tcp_listen_options, [binary, {packet, raw}, {reuseaddr,true}, {backlog, 128}, {nodelay, true}, {exit_on_close, false}, {keepalive, true}]} ]}, {kernel, [ {inet_dist_listen_max, 44001}, {inet_dist_listen_min, 44001} ]} ].
#配置檔案2 所在路徑 /etc/hosts (如果是叢集,每臺機器都需要修改這個繫結本機實體ip,而且hosts檔案的對映不得重複,如果重複linux系統為以最下面一條記錄為準)172.16.136.133 master 172.16.136.134 venus 172.16.136.135 venus2
二、啟動停止
2.1 停止
#機器A service rabbitmq-server stop epmd -kill #機器B service rabbitmq-server stop epmd -kill #機器C service rabbitmq-server stop epmd -kill
2.2 啟動
#機器A service rabbitmq-server start #機器B service rabbitmq-server start #機器C service rabbitmq-server start
三、重建叢集
3.1 首先使用2.1方法停止所有機器
3.2 移除rabbitmq配置記錄與儲存檔案
#配置檔案位於 /var/lib/rabbitmq/mensia mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak
3.3接著 按2.2方法啟動所有機器
3.4 停止被加入叢集節點app
比如A、B、C三臺機器,將B和C加入到A中去,需要執行以下命令 #機器B
rabbitmqctl stop_app
#機器C
rabbitmqctl stop_app
3.5 建立叢集
注意此處master為唯一沒有執行rabbitmqctl stop_app
的機器
1 #機器B 2 rabbitmqctl join_cluster [email protected] 3 #機器C 4 rabbitmqctl join_cluster [email protected]
3.6 啟動叢集
1 #機器B 2 rabbitmqctl start_app 3 #機器C 4 rabbitmqctl start_app
3.7 檢查叢集狀態
在任意一臺機器上執行rabbitmqctl cluster_status
命令即可檢查,如下則叢集正常:
3.8 新增叢集配置 (見第四)
四 、新增叢集配置
4.1 建立使用者
例子中建立了兩個使用者
新增使用者
add_user
,設定角色set_user_tags
,新增rabbitmq虛擬主機add_vhost
,設定訪問許可權set_permissions
,以下是詳細用法
1 # 建立第一個使用者 2 /usr/sbin/rabbitmqctl add_user 使用者名稱 密碼 3 /usr/sbin/rabbitmqctl set_user_tags 使用者名稱 administrator 4 /usr/sbin/rabbitmqctl set_permissions -p / 使用者名稱 ".*" ".*" ".*" 5 # 建立第二個使用者 6 /usr/sbin/rabbitmqctl add_user 使用者名稱2 密碼 7 /usr/sbin/rabbitmqctl set_user_tags 使用者名稱2 management 8 /usr/sbin/rabbitmqctl add_vhost sip_ext 9 /usr/sbin/rabbitmqctl set_permissions -p sip_ext 使用者名稱2 '.*' '.*' '.*'
備註:RabbitMQ 虛擬主機,RabbitMQ 通過虛擬主機(vhost)來分發訊息。擁有自己獨立的許可權控制,不同的vhost之間是隔離的,單獨的。
許可權控制的基本單位:vhost。
使用者只能訪問與之繫結的vhost。
vhost是AMQP中唯一無法通過協議來建立的基元。只能通過rabbitmqctl工具來建立。
4.2 開啟15672網頁管理端,訪問mq
/usr/sbin/rabbitmq-plugins enable rabbitmq_management
4.3 在底部匯入.json字尾的配置檔案即可