zoukankan      html  css  js  c++  java
  • 开发监测keepalived裂脑的脚本

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

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

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

    在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上脚本输出情况:

    [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
    

     裂脑报警就恢复了。

  • 相关阅读:
    我的第一篇博客
    1.2 位于Shell脚本第一行的#!
    1.1 一个简单的脚本
    JDK与CGlib动态代理的实现
    解决Sublime Text3中文显示乱码问题
    多线程讲解
    (转)Spring中@Async用法总结
    (转)spring boot注解 --@EnableAsync 异步调用
    Spring Boot中的注解
    (转)如何用Maven创建web项目(具体步骤)
  • 原文地址:https://www.cnblogs.com/Mr-Ding/p/9745317.html
Copyright © 2011-2022 走看看