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

    最终报警效果如下:

  • 相关阅读:
    [转载]必须Mark!最佳HTML5应用开发工具推荐
    [转载]JavaScript 的轻框架开发
    [转载]Browser Link feature in Visual Studio Preview 2013
    回溯算法
    双指针法总结
    链表中的快慢指针法
    快慢指针之原地处理数组/链表
    滑动窗口法
    左右指针法:二分查找-其它应用
    左右指针法:二分查找-寻找数
  • 原文地址:https://www.cnblogs.com/easydb/p/14135276.html
Copyright © 2011-2022 走看看