我们正在使用 Nagios 来监控我们的网站(以及许多其他东西)。出于某种奇怪的原因,当我测试命令时
/usr/lib/nagios/plugins/check_http -H 'domainname.com'
HTTP/1.1 200 OK
但是当我设置服务来执行此操作时,返回的响应是:
# Check that domain is running
define service {
hostgroup_name hostgroup
service_description host site
check_command check_httpname!domainname.com
use generic-service
notification_interval 1; set > 0 if you want to be renotified
}
返回的答案是HTTP/1.1 503 Service Unavailable
。
有人知道为什么会发生这种情况吗?
答案1
不确定为什么我不能添加评论,但你可能想在主机定义中验证你的地址和主机名。我遇到过这样的情况:命令行检查脚本有效,但 GUI 却告诉我其他东西。通常是地址字段中的拼写错误。
答案2
以下是修复此问题的方法!
您必须编辑 /usr/local/nagios/etc/objects/commands.cfg 并更改 https 参数“-I” 改为 “-H”
这将告诉它查找主机名,而不是服务器配置中 http_check 块中指定的 dip 地址:/usr/local/nagios/etc/servers/yourserver.cfg
从:
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
到:
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -H $HOSTADDRESS$ $ARG1$
}