zabbix监控keepalived主备状态以及脑裂
目录
环境说明:
服务器名称 | ip | 所需服务\架构 | 版本 |
---|---|---|---|
zabbix | 192.168.200.42 | lamp架构,zabbix_server,zabbix_agentd | redhat8 |
haproxy01 | 192.168.200.43 | keepalived,haproxy | redhat8 |
haproxy02 | 192.168.200.44 | keepalived,haproxy | redhat8 |
rs1 | 192.168.200.46 | http | redhat8 |
rs2 | 192.168.200.47 | http | redhat8 |
1.配置keepalived监控主备状态的脚本
keepalived通过脚本监控负载均衡机的状态
#haproxy01(master)上编写脚本
该脚本是为了得知master主机上是否存在haproxy服务进程,如果没有则说明服务出现了问题,无法正常提供服务,所以我们写入判断,当haproxy进程小于1时则关闭keepalived服务,自动释放内存
[root@haproxy01 ~]# mkdir scripts
[root@haproxy01 ~]# cd scripts/
[root@haproxy01 scripts]# vim check_haproxy.sh
[root@haproxy01 scripts]# cat check_haproxy.sh
[root@haproxy01 scripts]# cat check_haproxy.sh
#!/bin/bash
haproxy_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bhaproxy\b'|wc -l)
if [ $haproxy_status -lt 1 ];then
systemctl stop keepalived
fi
[root@haproxy01 scripts]# chmod +x check_haproxy.sh
[root@haproxy01 scripts]# ll
total 4
-rwxr-xr-x 1 root root 150 Oct 16 17:09 check_haproxy.sh
#haproxy02(slave)上编写脚本
该脚本是为了得知本主机是处于哪种状态(mastert|slave),当本主机变成master主机后,则进行第一个判断,当haproxy服务进程数小于1时,开启haproxy服务,继续进行负载均衡;而当本主机变回slave主机后,则进行第二个判断,当haproxy服务进程大于0时,关闭haproxy服务,避免与master主机上的haproxy服务产生冲突,从而导致流量无法正确转移到后端的web页面主机
[root@haproxy02 ~]# mkdir scripts
[root@haproxy02 ~]# cd scripts/
[root@haproxy02 scripts]# vim notify.sh
[root@haproxy02 scripts]# cat notify.sh
#!/bin/bash
case "$1" in
master)
haproxy_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bhaproxy\b'|wc -l)
if [ $haproxy_status -lt 1 ];then
systemctl start haproxy
fi
;;
backup)
haproxy_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bhaproxy\b'|wc -l)
if [ $haproxy_status -gt 0 ];then
systemctl stop haproxy fi
;;
*)
echo "Usage:$0 master|backup VIP"
;;
esac
[root@haproxy02 scripts]# chmod +x notify.sh
[root&#