rabbitmq集群部署

主机名(角色)IP地址
mq-01(磁盘节点)10.10.1.10
mq-02(磁盘节点)10.10.1.11
mq-03(内存节点)10.10.1.12

第一步:修改主机名与hosts

#修改主机名,分别改成对于的主机名
hostnamectl set-hostname mq-01

#添加hosts
vim /etc/hosts
10.10.1.10 mq-01
10.10.1.11 mq-02
10.10.1.12 mq-03

第二步:下载安装包并安装依赖

#安装依赖
yum -y install socat
#rabbitmq安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.15/rabbitmq-server-3.8.15-1.el7.noarch.rpm
#erlang安装包
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.1.5/erlang-23.1.5-1.el7.x86_64.rpm

第三步:开始安装erlang以及mq并启动

rpm -ivh erlang-23.1.5-1.el7.x86_64.rpm 
rpm -ivh rabbitmq-server-3.8.15-1.el7.noarch.rpm
systemctl start rabbitmq-server
systemctl enable rabbitmq-server

第四步:修改配置文件开启web控制台

#rpm安装后拷贝默认的范例配置文件
cp /usr/share/doc/rabbitmq-server-<版本号>/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
#配置文件开启管理控制台
vim /etc/rabbitmq/rabbitmq.config
...
#注释掉这行
{loopback_users, []}
...
#开启管理控制台
rabbitmq-plugins enable rabbitmq_management

第五步:拷贝cookie与授权

#从mq-1拷贝到其他2个节点
scp /var/lib/rabbitmq/.erlang.cookie  10.10.1.{11..12}:/var/lib/rabbitmq/.erlang.cookie
#对所有节点的cookie文件进行授权
chmod 600 /var/lib/rabbitmq/.erlang.cookie
#重启所有节点
systemctl restart rabbitmq-server
#查看mq的状态
rabbitmqctl status | more
#所有节点查看是否能正常相互解析
rabbitmqctl status -n rabbit@mq-02

第六步:创建集群

#关闭mq-02和03,将2个节点加入mq-01集群
#mq-02
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq-01
rabbitmqctl start_app
#mq-03是内存节点 添加ram参数
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram  rabbit@mq-01
rabbitmqctl start_app
#查看集群状态
rabbitmqctl cluster_status

第七步:添加用户

## 添加用户及密码
rabbitmqctl add_user  <用户名> <密码>
## 授权用户为admin权限
rabbitmqctl  set_user_tags  <用户名>  administrator

第八步:配置授权

## 配置policy
rabbitmqctl set_policy ha-all-queue "^ha\." '{"ha-mode":"all","ha-sync-mode":"automatic"}'

## 配置授权
rabbitmqctl set_permissions -p "/" <用户名> ".*" ".*" ".*"

第九步:配置prometheus rabbitmq_exporter监控插件

下载对应rabbitmq版本的插件安装包

wget  https://github.com/deadtrickster/prometheus_rabbitmq_exporter/releases/download/rabbitmq-3.6.14.1/accept-0.3.3.ez
wget https://github.com/deadtrickster/prometheus_rabbitmq_exporter/releases/download/rabbitmq-3.6.14.1/prometheus-3.4.3.ez
wget https://github.com/deadtrickster/prometheus_rabbitmq_exporter/releases/download/rabbitmq-3.6.14.1/prometheus_httpd-2.1.8.ez
wget https://github.com/deadtrickster/prometheus_rabbitmq_exporter/releases/download/rabbitmq-3.6.14.1/prometheus_process_collector-1.3.0.ez
wget https://github.com/deadtrickster/prometheus_rabbitmq_exporter/releases/download/rabbitmq-3.6.14.1/prometheus_rabbitmq_exporter-v3.6.14.1.ez
#将下载的插件拷贝到rabbitmq节点下plugin目录,我使用的RPM安装的rabbitmq,plugin目录在/usr/lib/rabbitmq/lib/rabbitmq_server-{version}/plugins下
cp accept-0.3.3.ez prometheus-3.4.3.ez prometheus_httpd-2.1.8.ez prometheus_process_collector-1.3.0.ez prometheus_rabbitmq_exporter-v3.6.14.1.ez /usr/lib/rabbitmq/lib/rabbitmq_server-{version}/plugins/
#配置插件权限为644
chmod 644 /usr/lib/rabbitmq/lib/rabbitmq_server-{version}/plugins/*
#查看所有插件
rabbitmq-plugin list
#激活prometheus监控插件
rabbitmq-plugin enable accept prometheus prometheus_httpd prometheus_process_collector prometheus_rabbitmq_exporter
#查看是否激活插件
rabbitmq-plugin list

第十步:移除节点

#宕机的情况,在在线节点执行下面的命令移除
rabbitmqctl forget_cluster_node rabbit@mq-02
#非宕机情况
systemctl stop rabbitmq-server
rabbitmqctl reset
此条目发表在rabbitmq分类目录。将固定链接加入收藏夹。

发表评论