单机部署:
1、安装erlang环境:
最简单的方法,上传rpm包或下载
# wget https://github.com/rabbitmq/erlang-rpm/releases/download/v21.3.8.11/erlang-21.3.8.11-1.el7.x86_64.rpm
# yum -y localinstall erlang-21.3.8.11-1.el7.x86_64.rpm
2、安装RabbitMq:
最简单的方法,上传rpm包或下载包
# wget https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/noarch/rabbitmq-server-3.7.7-1.el7.noarch.rpm
# yum -y localinstall rabbitmq-server-3.7.7-1.el7.noarch.rpm
3、添加开机启动:
# systemctl daemon-reload
# systemctl start rabbitmq-server
# systemctl enable rabbitmq-server
4、查看启动状态和端口:
# systemctl status rabbitmq-server 或 rabbitmqctl status
看到是running即为启动成功。# ss -atunlp |grep 5672
成功启动会启动三个端口,分别是5672、15672、256725、新建一个用户和密码(用于登录web,更新之后默认的guest用户已经不能登录了):
5.1 创建用户和密码
# rabbitmqctl add_user rabbit1 rabbit1
# 设置创建的用户为管理员
# rabbitmqctl set_user_tags rabbit1 administrator
# 查看用户
# rabbitmqctl list_users
# 查看用户权限
# rabbitmqctl list_user_permissions rabbit1
6、开启RabbitMq的web访问界面:
# rabbitmq-plugins enable rabbitmq_management
集群部署:
环境准备:(相互解析,且均单机部署完成)
- 192.168.47.145 zabbix
- 192.168.47.147 zabbix1
- 192.168.47.129 zabbix2
1、创建好数据存放目录和日志存放目录(每台都要弄):
1.1 数据存放目录
# mkdir -p /opt/rabbitmq/data
1.2 日志存放目录
# mkdir -p /opt/rabbitmq/logs
1.3 授权
# chmod 777 -R /opt/rabbitmq
1.4 更改属主与属组
# chown rabbitmq.rabbitmq -R /opt/rabbitmq
1.5 创建配置文件
# vim /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_MNESIA_BASE=/opt/rabbitmq/data
RABBITMQ_LOG_BASE=/opt/rabbitmq/logs
1.6 重启服务
# systemctl restart rabbitmq-server
2、拷贝cookie:
拷贝其中一台rabbitmq的cookie到其他节点。被拷贝的rabbitmq为master,在这里将rabbitmq1做为master RabbitMq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由 过程一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权 限。所以必须保证各节点cookie一致,不然节点之间就无法通信。 (官方在介绍集群的文档中提到过.erlang.cookie 一般会存在这两个地址:第一个是home/.erlang.cookie;第二个地 方就是/var/lib/rabbitmq/.erlang.cookie。如果我们使用解压缩方式安装部署的rabbitmq,那么这个文件会在{home} 目录下,就是$home/.erlang.cookie。如果我们使用rpm等安装包方式进行安装的,那么这个文件会在/var/lib/ rabbitmq目录下。)
# scp /var/lib/rabbitmq/.erlang.cookie zabbix1:/var/lib/rabbitmq/.erlang.cookie
# scp /var/lib/rabbitmq/.erlang.cookie zabbix2:/var/lib/rabbitmq/.erlang.cookie
3、重启服务:
# systemctl restart rabbitmq-server
4、将节点加入集群:
4.1 停止节点,切记不是停止服务
# rabbitmqctl stop_app
4.2 如果有数据需要重置一下
# rabbitmqctl reset
4.3 添加到了哪台节点,@后面的是节点的主机名(建议不要设置太长的主机名,否则解析不完整会导致出错)
# rabbitmqctl join_cluster rabbit@zabbix
4.4 启动节点
# rabbitmqctl start_app
4.5 在每台机器上查看集群状态
# rabbitmqctl cluster_status
每台机器显示出三台节点,表示已经添加成功!
1)默认rabbitmq启动后是磁盘节点,在这个cluster命令下,mq02和mq03是内存节点,mq01是磁盘节点。
2)如果要使mq02、mq03都是磁盘节点,去掉--ram参数即可。
3)如果想要更改节点类型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必须停掉 rabbit应用 在RabbitMQ集群集群中,必须至少有一个磁盘节点,否则队列元数据无法写入到集群中,当磁盘节点宕掉时,集群 将无法写入新的队列元数据信息。