zoukankan      html  css  js  c++  java
  • 开发检测MySQL主从同步插件

    Nagios的状态码

      OK            退出码0,表示正常工作

      WARNING         退出码1,表示处于警告阶段

      CRITICAL           退出码2,表示处于紧急状态,严重状态

      UNKOEN           退出码3,表示无法获取服务的信息

    第一步:开发的脚本:

     检测的是:Slave_IO_Runnin,Slave_SQL_Runnin,grep Last_SQL_Errno 三个字段

      开发好的插件都应该放在/usr/local/nagios/libexec目录下

    #!/bin/sh
    
    
    command=`mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave statusG;"|egrep "Slave_IO_Runnin|Slave_SQL_Runnin|Last_SQL_Errno"`
    a=`echo "$command"|grep Slave_IO_Runnin|awk -F ":" '{print $2}'`
    
    b=`echo "$command"|grep Slave_SQL_Runnin|awk -F ":" '{print $2}'`
    
    c=`echo "$command"|grep Last_SQL_Errno|awk -F ":" '{print $2}'`
    
    
    if [ $a = ”Yes“ ]&&[ $b = “Yes” ]&&[ $c = “0” ]
    then
        echo "Slave is OK!"
        exit 0
    else
        echo  "Slave_IO_Runnin:$a"
        echo  "Slave_SQL_Runnin:$b"
        echo  "Last_SQL_Errno:$c"
        exit 2
    fi
    
    [root@mysql mysql]# 

    第二步:赋予执行权限

    Nagios中所有的插件都是具有可执行的权限,如果没有可执行的权限就会报错

    [root@Admin libexec]# chmod +x check_mysqlslave 
    [root@Admin libexec]# ll check_mysqlslave 
    -rwxr-xr-x 1 root root 177 Dec 25 20:54 check_mysqlslave

     第三步:编辑客户端的nrpe.cfg文件

    [root@lamp etc]# vim nrpe.cfg
    追加如下内容
    command[check_passwd]=/usr/local/nagios/libexec/check_mysqlslave

    第四步:配置nrpe.cfg文件

    [root@mysql etc]# pwd
    /usr/local/nagios/etc
    [root@mysql etc]# vim nrpe.cfg
    .....
    allowed_hosts=127.0.0.1,192.168.220.129              //添加允许链接的主机
    .....

    第五步:在服务端添目标主机

    [root@Admin objects]# vim hosts.cfg
    define host{
            use                     linux-server            
            host_name               141-MySQL
            alias                   141-MySQL
            address                 192.168.220.141
            }

    第六步:服务器端检查语法

       服务端只要修改了配置文件就应该检查语法,并重启服务

    [root@Admin objects]# /etc/init.d/nagios checkconfig

    第七部:在服务器端测

    [root@Admin objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.220.141 -c check_mysqlslave

    Slave_IO_Runnin: Yes

    Slave_SQL_Runnin: Yes
    Last_SQL_Errno: 0
    [root@Admin objects]#

    第八步:在服务器端定义一个服务

    define service {
            use                     generic-service
            host_name               141-MySQL
            service_description     Check MySQLSlave
            check_command           check_nrpe!check_mysqlslave
    }

    第九步:重新载入配置文件

    [root@Admin objects]# /etc/init.d/nagios reload     
    Running configuration check...done.
    Reloading nagios configuration...done
    [root@Admin objects]# 

    总结:被动模式和主动模式下自定义插件的配置步骤

      1.半被动模式

        将开发好的脚本放在libexec目录下

          注意:脚本中要指定返回的状态值,和echo 的内容

        给脚本加上X权限

        在nrpe.cfg中加上command

        重启nrpe

        在服务端使用check_nrpe插件以命令的形式测试该插件是否可以正常共工作

        在services定义相关的服务

        检查语法,并重启服务

      2.主动模式

         将开发好的脚本放在libexec目录下

           注意:脚本中要指定返回的状态值,和echo 的内容

         给脚本加上X权限

         在command.cfg中定义开发好的脚本

         在services里边加入定义的监控的项目

         检查语法,并重启服务

      

  • 相关阅读:
    【原创】大叔问题定位分享(21)spark执行insert overwrite非常慢,比hive还要慢
    【原创】大叔经验分享(14)spark on yarn提交任务到集群后spark-submit进程一直等待
    【原创】大叔问题定位分享(20)hdfs文件create写入正常,append写入报错
    【原创】大叔问题定位分享(19)spark task在executors上分布不均
    【原创】大数据基础之Spark(4)RDD原理及代码解析
    【原创】大叔问题定位分享(18)beeline连接spark thrift有时会卡住
    【原创】大叔问题定位分享(17)spark查orc格式数据偶尔报错NullPointerException
    【原创】大叔经验分享(13)spark运行报错WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
    linux定时任务
    source导入错码解决办法
  • 原文地址:https://www.cnblogs.com/along1226/p/5078803.html
Copyright © 2011-2022 走看看