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

    最终报警效果如下:

  • 相关阅读:
    摊还分析
    web端手机方向传感器闲谈
    研一一年论文总结(下)
    Jupyter自定义设置详解
    HAProxy实现动静分离和负载均衡
    欧拉项目 323题
    mysql基本操作
    以后的IT路还很长(1)
    【翻译】在Ext JS集成第三方库
    吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring IoC容器BeanFactory和ApplicationContext
  • 原文地址:https://www.cnblogs.com/easydb/p/14135276.html
Copyright © 2011-2022 走看看