代码改变世界

nagios的nrpe的check_command配置优化

2014-04-15 13:59  轩脉刃  阅读(3968)  评论(0编辑  收藏  举报

问题处理了两个小时,MMD,各种问题:

 

先是出现了check_load的时候说参数错误。

 

然后我就希望

在nagios客户端获取到命令日志

在这篇:NREP将日志放入message中 的引导下终于解决了

大致意思就是打开了debug模式,会将日志存放到deamon.debug中, 然后只要在syslog.conf中将deamon.debug显示就行了。

 

看到客户端里面的日志有:

Running command: /usr/local/nagios/libexec/check_load -w -c 

 

很显然就是命令参数错误

 

于是我就调整,客户端和服务端的nrpe的参数,发现里面的ARG1,ARG2各种传过来传过去迷糊了。。。

接着我的想法就是索性将check_load的所有参数都由服务端控制,于是有了下面的配置:

客户端:

command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$

服务端:

define command{
        command_name check_remote_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
        }


define service{
    host_name web_218
    service_description check-load
    check_command check_remote_nrpe!check_load!"-w 7:7:7 -c 15:15:15"
    max_check_attempts 4 
    normal_check_interval 3
    retry_check_interval 1
    contact_groups admins
    notification_interval 3
    notification_options w,u,c,r 
}

 

注意这里check-load service的check_command的最后一个参数的引号必须加上,否则check_remote_nrpe组装command的时候只是原封不动地组装进去的。会变成-c后面的是命令,这就错了。

后来想想,它的好处就是所有参数都由服务端控制,大大增加了便捷性。所以打算其他的监控命令也这样使用。