问题处理了两个小时,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后面的是命令,这就错了。

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