问题处理了两个小时,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后面的是命令,这就错了。
后来想想,它的好处就是所有参数都由服务端控制,大大增加了便捷性。所以打算其他的监控命令也这样使用。