shell脚本使用钉钉来进行mysql主从监控报警

post by rocdk890 / 2018-12-12 16:28 Wednesday linux技术
    相信很多朋友都有过mysql主从不同步的报警方案,比如短信,邮件,微信等等,今天我给大家一个用钉钉机器人来进行报警的方案.怎么申请钉钉机器人,我这里就不介绍了,大家自己网上搜下吧.先说下我的环境,因为我的mysql主从是在阿里云vpc内网里,没有公网ip,所以ssh远程连接到另外一台机子,用另外一台机子来发送报警信息.
    系统:centos 7(64位)

1.监控脚本:
cat /root/soft_shell/check_slave.sh

01#!/bin/bash
02mysql_binfile=/usr/local/mysql/bin/mysql
03mysql_user=root
04mysql_pass=password
05mysql_sockfile=/data/mysql/mysql.sock
06slave_ip="192.168.1.23x"
07status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running")
08Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`
09Slave_SQL_Running=`echo $status | grep Slave_SQL_Running | awk '{print $2}'`
10REMARKFILE='/tmp/monitor_load.remark'
11DELMARKFILE='/tmp/monitor_load.delmark'
12ISSEND=0
13ASSEND=0
14EXPIRE=300
15ENDTIME=3600
16NOW=$(date +%s)
17 
18if [ -f "$REMARKFILE" ] && [ -s "$REMARKFILE" ]; then
19    REMARK=$(cat $REMARKFILE)
20 
21    # 删除过期的发送时间记录文件
22    if [ $(( $NOW - $REMARK )) -gt "$EXPIRE" ]; then
23        rm -f ${REMARKFILE}
24        REMARK=""
25    fi
26else
27    REMARK=""
28fi
29 
30if [ -f "$DELMARKFILE" ] && [ -s "$DELMARKFILE" ]; then
31    DELMARK=$(cat $DELMARKFILE)
32 
33    # 删除过期的发送时间记录文件
34    if [ $(( $NOW - $DELMARK )) -gt "$ENDTIME" ]; then
35        rm -f ${DELMARKFILE}
36        DELMARK=""
37    fi
38else
39    DELMARK=""
40fi
41 
42if [ "$REMARK" = "" ] ; then
43    if [ "$Slave_IO_Running" != "Yes" -a "$Slave_SQL_Running" != "Yes" ]; then
44        ssh -p 18330 root@192.168.1.24x "/root/soft_shell/send_message.sh"
45        ISSEND=1
46    fi
47fi
48 
49if [ "$DELMARK" = "" ] ; then
50    if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]; then
51        ssh -p 18330 root@192.168.1.24x "/root/soft_shell/restore_message.sh"
52        ASSEND=1
53    fi
54fi
55 
56 
57if [ "$ISSEND" = "1" ]; then
58    echo "$(date +%s)" > $REMARKFILE
59fi
60 
61if [ "$ASSEND" = "1" ]; then
62    echo "$(date +%s)" > $DELMARKFILE
63fi
64 
65exit 0

2.报警脚本
cat /root/soft_shell/send_message.sh

1#!/bin/bash
2ipadd="192.168.1.2xx"
3datetime=`date +"%Y-%m-%d/%H:%M:%S"`
4 
5curl 'https://oapi.dingtalk.com/robot/send?access_token=这里写你自己的key' -H 'Content-Type: application/json' -d ' {"msgtype": "text", "text": {"content": "'${datetime},${ipadd}_mysql从库已不同步,请尽快处理.'"}}'

cat /root/soft_shell/restore_message.sh
1#!/bin/bash
2ipadd="192.168.1.2xx"
3datetime=`date +"%Y-%m-%d/%H:%M:%S"`
4 
5curl 'https://oapi.dingtalk.com/robot/send?access_token=这里写你自己的key' -H 'Content-Type: application/json' -d ' {"msgtype": "text", "text": {"content": "'${datetime},${ipadd}_mysql主从同步正常.'"}}'

好了,最后去钉钉里查看是否有收到报警短信.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-744.html

标签: mysql shell 监控 报警 主从 钉钉

评论:

正在载入...