keepalived+rabbitmq镜像集群搭建

操作系统:centos7

为方便集群管理配置,需要对两台服务器进行hosts解析
vim /etc/hosts
添加如下:
192.168.3.65 A
192.168.2.164 B

一定不要加rabbit@
并测试是否可以通过主机名ping通

安装erlang插件
rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm

查看系统是否自带mq,如果没有则安装
yum list | grep rabbitmq
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
yum -y install rabbitmq-server-3.6.6-1.el7.noarch.rpm

测试rabbitmq是否可以正常启动,并查看状态
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl stop rabbitmq-server

修改配置文件
cd /etc/rabbitmq/
cp /usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example ./rabbitmq.config
根据具体需求进行参数修改

安装其他所需插件
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/
wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez
设置开机自启动
rabbitmq-plugins enable rabbitmq_management
systemctl enable rabbitmq-server
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
查看端口是否正常
netstat -tnlp
添加账户并设置管理员账户
rabbitmqctl add_user user 123456
rabbitmqctl set_user_tags user administrator

以下为集群配置:
RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是统一cookie。
路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie
cat /var/lib/rabbitmq/.erlang.cookie 查看是否统一
scp /var/lib/rabbitmq/.erlang.cookie root@ip:/var/lib/rabbitmq/.erlang.cookie 使两台mq的cookie统一
设置权限为600
chmod 600 .erlang.cookie
查看集群状态
rabbitmqctl cluster_status
加入集群
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@B
rabbitmqctl start_app
查看集群状态是否正常并打开网页管理页面查看nodes

设置为镜像模式
rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:“all”}’
在另一台查看策略
[root@F ~]# rabbitmqctl list_policies
Listing policies …
/ ha-all all ^ {“ha-mode”:“all”} 0

配置keepalived
安装
yum -y install keepalived ipvsadm nmap
配置keepalived配置文件
global_defs {
notification_email {
}
notification_email_from root@local
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_script chk_rabbitmq {
script “/etc/keepalived/scripts/rabbitmq_check.sh”
interval 2
weight 2
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.3.88/24 dev eth0
}
track_script {
chk_rabbitmq
}

}
从节点将state MASTER 改为 BACKUP 权重按实际情况修改

写检测脚本
#!/bin/bash
k1=/usr/bin/nmap -sS 127.0.0.1 -p 6543 | grep 6543 | awk '{printf $2}'
if [ “$k1” != “open” ]; then
systemctl restart rabbitmq-server
fi
Q1=/usr/bin/nmap -sS 127.0.0.1 -p 6543 | grep 6543 | awk '{printf $2}'
if [ “$Q1” != “open” ]; then
systemctl stop keepalived
fi

systemctl start keepalived
启动后停止主节点mq测试VIP是否漂移

########此文档不适用于阿里云服务器################

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值