部署环境
我新装了三台Linux系统虚拟机用于OpenStack实验,配置好ip地址和yum源,并且三台之间免密登录,其他均为初始化配置
ip | uname | hosts | node style |
---|---|---|---|
192.168.88.111 | Linux | controller1 | 控制节点 |
192.168.88.112 | Linux | compute1 | 计算节点 |
192.168.88.113 | Linux | storage1 | 存储节点 |
控制节点
安装rabbitmq-server软件包并启动
yum -y install erlang rabbitmq-server.noarch
systemctl enable rabbitmq-server
systemctl restart rabbitmq-server
查看rabbitmq的配置文件(虽然不一定能看懂)
less /etc/rabbitmq/rabbitmq.config
添加环境配置文件
cat > /etc/rabbitmq/rabbitmq-env.conf <<EOF
RABBITMQ_NODE_PORT=5672
ulimit -S -n 4096
RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
RABBITMQ_NODE_IP_ADDRESS=192.168.88.111
EOF
查看rabbitmq的插件
rabbitmq-plugins list
没有开启的插件前面的括号是空的,开启后括号内会显示e
开启rabbitmq的web管理页面插件
rabbitmq-plugins enable rabbitmq_management
先暂停一下控制节点的配置,把目光转到其它节点上
控制节点发送.erlang.cookie文件到其他节点以配置集群
scp /var/lib/rabbitmq/.erlang.cookie compute1:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie storage1:/var/lib/rabbitmq
配置其他节点以加入集群
控制节点检查集群状态
rabbitmqctl cluster_status
无误后从浏览器登录
curl http://192.168.88.111:15672/
管理员名称为guest,密码为guest
其他节点
安装rabbitmq-server并启动
yum -y install erlang rabbitmq-server.noarch
systemctl enable rabbitmq-server
systemctl restart rabbitmq-server
添加环境配置文件
cat > /etc/rabbitmq/rabbitmq-env.conf <<EOF
RABBITMQ_NODE_PORT=5672
ulimit -S -n 4096
RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
RABBITMQ_NODE_IP_ADDRESS=$ip(这里写本主机的集群ip)
EOF
查看rabbitmq的插件并开启web管理页面
rabbitmq-plugins list
rabbitmq-plugins enable rabbitmq_management
然后继续控制节点
计算节点和存储节点应先停止应用,并以ram的方式加入控制节点,之后重启rabbitmq-server
systemctl restart rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@controller1
rabbitmqctl start_app
最终效果
最终应该是这个效果:
RabbitMQ管理
修改用户密码
rabbitmqctl change_password guest 123456
添加管理员test
rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
更改节点类型(内存或磁盘)
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc(或者ram)
rabbitmqctl start_app
从集群移除节点(重置节点)
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
从某个节点移除集群内其他节点
rabbitmqctl forget_cluster_node rabbit@node3
rabbitmqctl reset
rabbitmqctl start_app
集群中应当至少有一个磁盘类型的节点以防数据丢失
如果整个集群down了,应保证最后一个down掉的节点最先启动,否则要将其移出集群