检测思路:在备节点上执行脚本,若是能够ping通主节点而且备节点有VIP就报警,让人员介入检查是否裂脑。shell
在LB02备节点上开发脚本并执行:bash
[root@lb02 ~]# cat /server/scripts/shell/check_split_brain.sh #!/bin/bash #Author:Mr.Ding #Created Time:2018-10-05 17:11:33 #Name:check_split_brain.sh #Description:监测keepalived裂脑的脚本. lb01_vip=192.168.200.16 lb01_ip=192.168.100.105 while true do ping -c 2 -W 3 $lb01_ip &>/dev/null if [ $? -eq 0 -a `ip add|grep "$lb01_vip"|wc -l` -eq 1 ] then echo "ha is split brain.warning." else echo "ha is ok" fi sleep 5 done [root@lb02 shell]# sh check_split_brain.sh ha is ok ha is ok ha is ok ha is ok
正常状况下主节点活着,VIP192.168.200.16在主节点,所以不会报警,提示“ha is ok”.服务器
停掉keepalived服务后看LB02脚本执行状况:server
在LB01上中止keepalived服务: [root@lb01 shell]# systemctl stop keepalived LB02上脚本执行状况以下: [root@lb02 shell]# sh check_split_brain.sh ha is ok ha is ok ha is ok ha is ok ha is ok ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning.
关掉Lb01服务器,再次查看LB02上脚本输出状况:blog
[root@lb02 shell]# sh check_split_brain.sh ha is ok ha is ok ha is ok ha is ok ha is ok ha is ok ha is ok ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is split brain.warning. ha is ok ha is ok ha is ok ha is ok ha is ok
裂脑报警就恢复了。ip