zoukankan      html  css  js  c++  java
  • Shell脚本监控MySQL主从状态

    分享一个Linux下,监控MySQL主从状态及配合企业微信机器人报警的Shell脚本
    SLAVE_IP:为监控的主机IP
    USER:为msyql用户
    PASSWORD:为mysql密码
    WHEREIS_MYSQL:为mysql命令路径
    WEBHOOK:为企业微信机器人Webhook地址
    wx():为企业微信机器人函数
    Check_Mysql_Slave():为监控脚本主函数

    #! /bin/bash
    #
    source /etc/profile
    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    
    SLAVE_IP=`ip add | grep inet | grep brd | awk -F / '{print $1}' | awk -F " " '{print $2}' | awk 'NR==1'`
    USER=monitor
    PASSWORD=xxxxxx
    TIME=`date`
    WHEREIS_MYSQL=/opt/mysql/bin/mysql
    WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bb09197b-5ff6-4928-9872-xxxxxx'
    
    wx(){
    cat > $0.msg << EOF
    curl '$WEBHOOK' 
       -H 'Content-Type: application/json' 
       -d '
       {
            "msgtype": "text",
            "text": {
                "content": "$1",
            }
       }'
    EOF
    sh $0.msg && rm -rf $0.msg
    }
    
    
    Check_Mysql_Slave()
    {
        $WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "select version();"  >/dev/null 2>&1
        if [  $? -ne 0 ];then
            echo "Mysql is stopped $DATE" >> /data/mysql/check.log
                    ERROR="ERROR:Mysql-$SLAVE_IP cannot connect
    $TIME"
            wx "$ERROR"
        else
            #echo "1" >> /data/mysql/check.log
                    IO_SQL_STATUS=`$WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "show slave status G" 2>/dev/null | awk '/Slave_.*_Running:/{print $1$2}'`
                    for i in $IO_SQL_STATUS;do
                            THREAD_STATUS_NAME=${i%:*}
                            THREAD_STATUS=${i#*:}
                            if [ "$THREAD_STATUS" != "Yes" ];then
                                    STATUS="ERROR:Mysql-$SLAVE_IP  $THREAD_STATUS_NAME status is $THREAD_STATUS!
    $TIME"
                    echo "$STATUS" >> /data/mysql/check.log
                                    wx "$STATUS"
                            fi
                    done
         fi
    }
    
    Check_Mysql_Slave

    最终报警效果如下:

  • 相关阅读:
    传参总结
    装mongondb数据库
    es6的几种写法
    在github上搭建自己的主页
    云主机,虚拟主机,VPS
    TDD vs. BDD
    流量统计分析软件比较
    深入浅出Node js 读书笔记 思维导图
    浏览器的工作原理解析
    开源搜索引擎的比较
  • 原文地址:https://www.cnblogs.com/easydb/p/14135276.html
Copyright © 2011-2022 走看看