django VR全景图片 拓展培训公司 主从复制 vue下载 网络营销视频 less用法 office2016修复 js字符串排序 js回调函数写法 拼接json字符串 时间戳java mysql获取当前时间戳 python数据类型转换 oracle分析函数 python字典类型 pythoninput python类与对象 python例子 python分析 python读取mysql数据 python正则匹配数字 java函数调用 linux远程 linux入门基础 linux系统命令大全 linux服务器登录 雪地求生 路由器有辐射吗 js倒计时代码 刺激战场脚本 cmd代码 begininvoke 服务器系统安装 摩斯密码在线翻译 0x00000057 剑灵龙骨卷轴 360越狱版 神牧属性 苹果手机怎么微信双开
当前位置: 首页 > 学习教程  > 编程语言

MHA状态监控脚本

2020/9/19 15:27:26 文章标签:

前言


分享一个MHA状态监控的简易脚本,可钉钉告警。其他需求,需自行优化。
需要在manager进程起来后,再执行.


#!/bin/bash

dingding () {
	
        curl "https://oapi.dingtalk.com/robot/send?access_token=$TOKEN" -H 'Content-Type: application/json' -d "{ \"msgtype\": \"text\", \"text\": {\"content\": \"MHA manager\n MHA控制节点:$IP\n MHA主从监控节点:$IP3\n MHA原主库IP:$IP2\n MHA配置文件:$CONF\n $JIEGUO\n 时间:$DATE\n @所有人\"}}"

}


check() {

source /etc/profile

CONF=填入你MHA使用的配置文件
TOKEN="填入你的dingding机器人的token"
IP=`ifconfig eth0 |grep inet |grep netmask |awk '{print $2}'`
IP2=`cat $CONF |grep hostname= |head -n1 | awk -F "=" '{print $2}'`
IP3=`cat $CONF |grep hostname= | awk -F "=" '{print $2}' |tail -1f`
MHAUSR=`cat $CONF |grep "^user" |awk -F "=" '{print $2}'`
MHAPW=`cat $CONF |grep "^password" |awk -F "=" '{print $2}'`
LOG=/var/log/mhaheal
DATE=`date`

echo "$DATE"
ps aux |grep masterha_manager |grep -v grep

if [ $? -ne 0 ];then
       
 
        ssh $IP3 "mysql -u$MHAUSR -p$MHAPW -h$IP3 -e \"show slave status\G;\"" > $LOG/$IP3-sql-MS.txt
        
        IP4=`cat $LOG/$IP3-sql-MS.txt |grep Master_Host |awk '{print $2}'`
        
        cat $LOG/$IP3-sql-MS.txt |grep Master_Host |awk '{print $2}' |grep "172"
        
        if [ $? -ne 0 ];then
        	 JIEGUO="事件:manager进程丢失,主从监控节点$IP3 出现异常,请检查$IP3"
                 dingding
        else
             SLIO=`cat $LOG/$IP3-sql-MS.txt |grep Slave_IO_Running |awk '{print $2}'`
             SLSQ=`cat $LOG/$IP3-sql-MS.txt |grep Slave_SQL_Running |awk '{print $2}'`
             
             if  [  $IP4 = $IP2  ] &&  [ $SLIO = "Yes"  ] && [ $SLSQ = "Yes" ];then
		          JIEGUO="事件:仅为manager进程丢失,主从正常,未发生切换\n 现在主库IP为$IP4\n 从库状态\n Slave_IO_Running:$SLIO\n Slave_SQL_Running:$SLSQ"
                  dingding                
             
             elif  [  $IP4 = $IP2  ] &&  [ $SLIO != "Yes"  ] || [ $SLSQ != "Yes" ];then
                  JIEGUO="事件:manager进程丢失,主从未发生切换,但主库出现问题,主从异常\n 现在主库IP为$IP4\n 从库状态\n Slave_IO_Running:$SLIO\n Slave_SQL_Running:$SLSQ"
                  dingding

             elif  [  $IP4 != $IP2 ];then
                  JIEGUO="事件:manager进程丢失,主从发生切换\n 现在主库IP为$IP4\n 从库状态\n Slave_IO_Running:$SLIO\n Slave_SQL_Running:$SLSQ"
                  dingding
                   
             else
	          JIEGUO="事件:manager进程丢失,请及时处理\n 现在主库IP为$IP4\n 从库状态\n Slave_IO_Running:$SLIO\n Slave_SQL_Running:$SLSQ"                  
                  dingding
                 
             fi
       
        fi

                 
fi


}

while true
do
   check
#   check &>> /var/log/mhaheal/manager.log &
   sleep 30
done

本文链接: http://www.dtmao.cc/news_show_200251.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?