問題處理了兩個小時,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后面的是命令,這就錯了。
后來想想,它的好處就是所有參數都由服務端控制,大大增加了便捷性。所以打算其他的監控命令也這樣使用。