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 status\G;"|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


第二步:赋予执行权限

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

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


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

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

   1.半被动模式

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

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

    给脚本加上X权限

    在nrpe.cfg中加上command

    重启nrpe

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

    在services定义相关的服务

    检查语法,并重启服务

  2.主动模式

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

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

     给脚本加上X权限

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

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

     检查语法,并重启服务