开发监测keepalived裂脑的脚本

Posted mr-ding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发监测keepalived裂脑的脚本相关的知识,希望对你有一定的参考价值。

检测思路:在备节点上执行脚本,如果可以ping通主节点并且备节点有VIP就报警,让人员介入检查是否裂脑。

在LB02备节点上开发脚本并执行:

[[email protected] ~]# 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

[[email protected] 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脚本执行情况:

在LB01上停止keepalived服务:
[[email protected] shell]# systemctl stop keepalived

LB02上脚本执行情况如下:
[[email protected] 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上脚本输出情况:

[[email protected] 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

 裂脑报警就恢复了。

 

以上是关于开发监测keepalived裂脑的脚本的主要内容,如果未能解决你的问题,请参考以下文章

heartbeat 裂脑的概念及原理

keepalived脑裂现象

Keepalived "裂脑" 问题

keepalived工作原理及裂脑

keepalived产生脑裂的原因与解决方法

keepalived的weight