nagios – HTTP CRITICAL在10/20/60秒后套接字超时

我只是在服务器机器上安装了nagios,只是在HTTP服务上遇到严重错误。

错误是

HTTP CRITICAL - Socket timeout after 10 seconds 

我search这个错误,并得到了build议运行check_http更长的超时。 所以我在文件commands.cfg附加-t 20在“check_http”命令旁边。 重新启动nagios,但我仍然得到一个错误(新的超时)。

然后再search一下。 这个错误似乎很常见,所以我开始想我可能有其他一些问题。

我试着自己运行check_http:

 root@srv$ /usr/libexec/nagios/check_http -H localhost -N -p 80 -t 1 HTTP OK: HTTP/1.1 200 OK - 846 bytes in 0.003 second response time |time=0.003080s;;;0.000000 size=846B;;;0 

答案似乎没问题,但我对http的了解甚less。

任何线索?

编辑:从/etc/nagios/objects/commands.cfg采取的check_http的命令定义是

 # 'check_http' command definition define command{ command_name check_http command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ } 

我不知道如何检查variables$ HOSTADDRESS $和更重要的是$ ARG1 $的值。

那么服务的定义是

 define service{ use local-service ; Name of service template to use host_name localhost service_description HTTP check_command check_http notifications_enabled 1 } 

分发是slackware 14.0 64bit。

您的检查命令与您的手动testing不符。

如果您希望Nagios以与您手动testing相同的方式执行检查,则由于检查命令的定义方式,您的服务定义必须如此:

 define service{ use local-service host_name localhost service_description HTTP check_command check_http!-N -p 80 -t 1 notifications_enabled 1 } 

…你也必须有“localhost”作为这个主机的地址。

(但是1秒的超时是短暂的。)

check_http插件只是尝试从外部IP加载网页。 请检查以确保可以在浏览器中加载网页,并且该插件在命令行上使用与您在configuration文件(FQDN或IP编号)中指定的完全相同的主机定义。

如果你真的检查本地主机,请尝试使用127.0.0.1,并尝试使用类似wget的东西来检查本地主机是否真的允许从本身加载网页( wget http://127.0.0.1 )。 这也适用于其他网站( wget http://www.yourdomain.com )。

你要求$ HOSTADDRESS $ $ HOSTNAME $的variables就像是要求HOST定义的字段ADDRESS一样,$ SERVICEXXXX $也一样。 $ ARG1 $是它期望的! 在你的命令定义中已经说过了。

在这个特殊情况下:

 check_command check_http!-N -p 80 -t 1 

$ ARG1 $ = -N -p 80 -t 1 // – p 80不是必须的,因为80是http的默认值。

希望这有助于你理解Nagiosmacros。