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里边加入定义的监控的项目

         检查语法,并重启服务

      

  • 相关阅读:
    python 协程
    python中基于descriptor的一些概念
    python remove del pop 的区别
    python 装饰器 和面向切面编程(AOP)
    python yield详解
    Python的列表推导式,字典推导式,集合推导式使用方法
    python 垃圾回收机制
    (5) etcd 介绍、经典适用场景、安装、配置、测试
    grafana 安装配置
    open-falcon 安装配置
  • 原文地址:https://www.cnblogs.com/along1226/p/5078803.html
Copyright © 2011-2022 走看看