retries 3
option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 timeout check 5s
listen admin_stat
bind *:8888 ##Haproxy管理页面 mode http
stats refresh 30s
stats uri /haproxy_stats
stats realm Haproxy\\ Statistics stats auth admin:admin ##登录名和密码 stats hide-version
##监听5670端口,并转发给三个节点的5672端口,采用轮询策略
listen rabbitmq_cluster *:5670
balance roundrobin
server rabbitmq-1 192.168.100.191:5672 check inter 2000 rise 2 fall server rabbitmq-2 192.168.100.192:5672 check inter 2000 rise 2 fall server rabbitmq-3 192.168.100.193:5672 check inter 2000 rise 2 fall EOF
##安装Keepalived
apt-get –y install keepalived ##配置Keepalived
cat <
script \ interval 2 }
vrrp_instance VI_1 {
state MASTER interface eth0
errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http
virtual_router_id 51
priority 101 ##高优先级,主节点 authentication {
auth_type PASS auth_pass rabbitmq }
track_script {
chk_haproxy }
virtual_ipaddress {
192.168.100.195 } EOF
##创建监控Haproxy进程的脚本
mkdir -p /etc/keepalived/scripts/
cat <
LOGFILE=\
pid1=\\`ps aux|grep /etc/haproxy/haproxy.cfg | grep -v grep | grep -v bash | wc –l\\`
if [ \
echo \ date +%Y%m%d-%H:%M:%S >> \\$LOGFILE
echo \
haproxy -f /etc/haproxy/haproxy.cfg –D ##启动Haproxy
pid2=\\`ps aux|grep /etc/haproxy/haproxy.cfg | grep -v grep | grep -v bash |wc –l\\`
if [ \
echo \\\$LOGFILE
/etc/init.d/keepalived stop else
echo \ fi fi EOF
##启动keepalived服务,Haproxy服务也会一起启动的。 service keepalived restart
5.2 Rabbit3主机
vim 03_rabbit2_ha+keep.sh #!/bin/bash ##安装配置Haproxy
apt-get -y install haproxy ##配置Haproxy
cat <
defaults
log mode
global http
log 127.0.0.1 log 127.0.0.1
local0
local1 notice
chroot /var/lib/haproxy user haproxy group haproxy daemon
maxconn 4096
option httplog option dontlognull
retries 3
option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 timeout check 5s
listen admin_stat
bind *:8888 ##Haproxy的管理端口 mode http
stats refresh 30s
stats uri /haproxy_stats
errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http
stats realm Haproxy\\ Statistics stats auth admin:admin stats hide-version
##监听5670端口,并转发给三个节点的5672端口,采用轮询策略
listen rabbitmq_cluster *:5670
balance roundrobin
server rabbitmq-1 192.168.100.191:5672 check inter 2000 rise 2 fall server rabbitmq-2 192.168.100.192:5672 check inter 2000 rise 2 fall server rabbitmq-3 192.168.100.193:5672 check inter 2000 rise 2 fall EOF
##安装Keepalived
apt-get –y install keepalived ##配置Keepalived
cat <
script \ interval 2 }
vrrp_instance VI_1 {
state MASTER interface eth0 virtual_router_id 51
priority 100 ##低优先级,备节点 authentication {
auth_type PASS auth_pass rabbitmq }
track_script {
chk_haproxy }
virtual_ipaddress {
192.168.100.195 } EOF
##创建监控Haproxy进程的脚本
mkdir -p /etc/keepalived/scripts/
cat <
#!/bin/bash
LOGFILE=\
pid1=\\`ps aux|grep /etc/haproxy/haproxy.cfg | grep -v grep | grep -v bash | wc –l\\`
if [ \
echo \ date +%Y%m%d-%H:%M:%S >> \\$LOGFILE
echo \
haproxy -f /etc/haproxy/haproxy.cfg –D ##启动Haproxy
pid2=\\`ps aux|grep /etc/haproxy/haproxy.cfg | grep -v grep | grep -v bash |wc –l\\`
if [ \
echo \\\$LOGFILE
/etc/init.d/keepalived stop else
echo \ fi fi EOF
##启动keepalived服务,Haproxy服务也会一起启动的。 service keepalived restart
5.3 登录Haproxy的管理端页面
http://192.168.100.192:8888/haproxy_stats http://192.168.100.193:8888/haproxy_stats http://192.168.100.195:8888/haproxy_stats
可以查看到Haproxy的一些基本信息。