目前,为了测试,我将服务检查设置如下:
define service{
use generic-service
host_name <host>
service_description HTTP
check_command check_http!-s "blablabla" -f follow
}
请注意,字符串“blablabla”在页面上不存在,这只是为了测试。
Nagios 正在报告
HTTP OK: HTTP/1.1 301 Moved Permanently - 294 bytes in 6.607 second response time
Performance Data: time=6.606636s;;;0.000000 size=294B;;;0
但是如果我直接运行 check_http 插件,我会得到以下结果:
<user>@<nagiosbox>:/usr/lib/nagios/plugins# ./check_http -H <host> -s "blablabla" -f follow
HTTP CRITICAL: HTTP/1.1 200 OK - string 'blablabla' not found on 'http://<host>:80/' - 92654 bytes in 3.984 second response time |time=3.983636s;;;0.000000 size=92654B;;;0
答案1
您确定您使用相同的参数调用了相同的插件吗?在我看来,您没有正确定义服务。通常,传递的参数没有选项,例如:
check_command check_http!blablabla!follow
它们之间用 分隔!
。在命令定义中,你可以指定 check_http 插件的正确选项,例如:
# 'check_http' command definition
define command{
command_name check_http
command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -s '$ARG1$' -f '$ARG2$'
}
参数$ARG1$
和$ARG2$
将被替换为您在服务定义中指定的实际值。