Icinga监测string的网站

我正在尝试使用Icinga来监视特定string的网站。 当我从命令行运行插件时,它似乎工作正常,但在Icinga-Web中,无论我input什么string,总是显示成功。

#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 /插件/ 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... 

为什么会这样?

显然你的手工testing和你的Icinga conf是不同的。

去find您的定义为check_http命令。 这几乎肯定不是处理你传递给它的ARG,至less不是你想象的那样。

我猜你正在使用Ubuntu或Debian,由插件path来判断。 去看看/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"类的东西。

阅读文档页面了解macros及其工作方式将有所帮助。