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

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

  1. [root@lb02 ~]# cat /server/scripts/shell/check_split_brain.sh
  2. #!/bin/bash
  3. #Author:Mr.Ding
  4. #Created Time:2018-10-05 17:11:33
  5. #Name:check_split_brain.sh
  6. #Description:监测keepalived裂脑的脚本.
  7. lb01_vip=192.168.200.16
  8. lb01_ip=192.168.100.105
  9. while true
  10. do
  11. ping -c 2 -W 3 $lb01_ip &>/dev/null
  12. if [ $? -eq 0 -a `ip add|grep "$lb01_vip"|wc -l` -eq 1 ]
  13. then
  14. echo "ha is split brain.warning."
  15. else
  16. echo "ha is ok"
  17. fi
  18. sleep 5
  19. done
  20.  
  21. [root@lb02 shell]# sh check_split_brain.sh
  22. ha is ok
  23. ha is ok
  24. ha is ok
  25. ha is ok

正常情况下主节点活着,VIP192.168.200.16在主节点,因此不会报警,提示“ha is ok”.

停掉keepalived服务后看LB02脚本执行情况:

  1. LB01上停止keepalived服务:
  2. [root@lb01 shell]# systemctl stop keepalived
  3.  
  4. LB02上脚本执行情况如下:
  5. [root@lb02 shell]# sh check_split_brain.sh
  6. ha is ok
  7. ha is ok
  8. ha is ok
  9. ha is ok
  10. ha is ok
  11. ha is split brain.warning.
  12. ha is split brain.warning.
  13. ha is split brain.warning.
  14. ha is split brain.warning.
  15. ha is split brain.warning.
  16. ha is split brain.warning.
  17. ha is split brain.warning.
  18. ha is split brain.warning.

关掉Lb01服务器,再次查看LB02上脚本输出情况:

  1. [root@lb02 shell]# sh check_split_brain.sh
  2. ha is ok
  3. ha is ok
  4. ha is ok
  5. ha is ok
  6. ha is ok
  7. ha is ok
  8. ha is ok
  9. ha is split brain.warning.
  10. ha is split brain.warning.
  11. ha is split brain.warning.
  12. ha is split brain.warning.
  13. ha is split brain.warning.
  14. ha is split brain.warning.
  15. ha is split brain.warning.
  16. ha is split brain.warning.
  17. ha is split brain.warning.
  18. ha is split brain.warning.
  19. ha is split brain.warning.
  20. ha is split brain.warning.
  21. ha is split brain.warning.
  22. ha is split brain.warning.
  23. ha is ok
  24. ha is ok
  25. ha is ok
  26. ha is ok
  27. ha is ok

裂脑报警就恢复了。

开发监测keepalived裂脑的脚本的更多相关文章

  1. keepalived的脑裂问题与解决

    Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...

  2. [工具开发] keepalived使用nagios监控脚本

    最近在做开发和办公环境的高可用,采用的是keepalived:keepalived基于Linux内核支持的LVS,既能实现高可用,又能实现负载均衡,非常实用. keepalived监控服务状态时可以用 ...

  3. keepalived的脑裂问题

    keepalived的脑裂问题 学习了:http://blog.51cto.com/10630401/2089847 split-brain 无HA不脑裂

  4. MySQL的keepalived高可用监控脚本

    MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...

  5. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  6. C#开发Unity游戏教程之使用脚本变量

    C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. ...

  7. 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!

    [COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...

  8. 微信小程序开发:学习笔记[5]——JavaScript脚本

    微信小程序开发:学习笔记[5]——JavaScript脚本 快速开始 介绍 小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来 ...

  9. keepalived 预防脑裂检测脚本

    1 检查vip [root@mysql2 keepalived]# cat /etc/keepalived/check_brain_keepalived.sh #!/bin/bash # 检查脑裂的脚 ...

随机推荐

  1. 【ACM】最少乘法次数 - 树

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...

  2. unity ForceMode

    public float jumpAbility; GetComponent<Rigidbody>().AddForce(Vector3.up * jumpAbility, ForceMo ...

  3. 【Java】Tomcat 5默认的管理员用户和密码

    <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat&quo ...

  4. FFmpeg编译i386 OSX 脚本

    话不多说, 直接上脚本 #!/bin/sh # directories PLATFORM="OSX" # FFmpeg脚本目录 SOURCE="ffmpeg-2.8.7& ...

  5. eclipse加上电脑全黑主题的设置(win10)

    eclipse加上电脑全黑主题的设置(win10) 前几天在找设置win10的边框颜色时,发现的这个高对比的功能,现在已经用了好几天了,自己感觉是真的好用,所有才分享出来,相比所谓网上的豆沙绿,果然感 ...

  6. javascript实现多线程提升项目加载速度

    以前大家都认为js是单线程执行的,假如我们要执行一些耗时的操作,比如加载一张很大的图片,我们可能需要一个进度条来让用户进行等待,在等待的过程中,整个js线程会被阻塞,后面的代码不能正常运行,这可能大大 ...

  7. How to Install Apache Solr 4.5 on CentOS 6.4

    By Shay Anderson on October 2013 Knowledge Base  /  Linux  /  How to Install Apache Solr 4.5 on Cent ...

  8. js和jq获取父,兄弟,子节点

    1,js获取节点: 父: parentNode 获取已知节点的父节点. 子: childNodes; 得到全部子节点 children 得到全部子节点 firstChild 获得第一个子节点 last ...

  9. Filter过滤器,xml配置与页面不乱码整理

    1.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...

  10. LeetCode Nim Game (简单nim)

    题意: 有一堆石子,里面有n个石头,每次可以从中取出1~3个,两人轮流取,最后一个石子被谁取走即为赢家.你先取,问最后谁赢? 思路: n%4>0则先手赢,因为每次总是可以给对方留4个石子的倍数, ...