Monitoring
Icinga 字元串監控網站
我正在嘗試使用 Icinga 來監視特定字元串的網站。當我從命令行執行外掛時,它似乎工作正常,但在 Icinga-Web 中,無論我輸入什麼字元串,它總是顯示為成功。
#Doesn't Work - always returns ok define service { host_name mywebserver service_description Check Website servicegroups Websites check_command check_http!-s "no such string" -H www.mysite.com -u /apath/ -t 7 use generic-service notification_interval 60 ; set > 0 if you want to be renotified }
奇怪的是,如果我按如下方式執行位於 /usr/lib/nagios/plugins/check_http 中的外掛,它會給我我所期望的:
./check_http -H www.mysite.com -u "/apath/" -s "no such string" HTTP CRITICAL: HTTP/1.1 200 OK - string 'no such string' not found on...
為什麼會這樣?
顯然,您的手動測試和您的 Icinga conf 是不同的。
去尋找你對 check_http 命令的定義。它幾乎肯定不會處理您傳遞給它的 ARG,至少不會以您認為的方式處理。
從外掛路徑來看,我猜你正在使用 Ubuntu 或 Debian。進去看看
/etc/nagios-plugins/config/http.cfg
,你可能會發現這樣的東西:# 'check_http' command definition define command { command_name check_http command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -I '$HOSTADDRESS$' -f follow }
注意它是如何不使用 ARG1、ARG2 等的,所以它完全忽略了所有
-s "no such string" -H www.mysite.com -u /apath/ -t 7
您應該編寫一個接受您要使用的參數的新命令,然後將您的 check_command 更改為類似
check_http_path_expect!/apath/!"no such string"
的內容,例如。閱讀文件頁面了解宏及其工作方式會有所幫助。