nagios check_http 在命令行上返回 200,在 Web UI 上返回 404

nagios check_http 在命令行上返回 200,在 Web UI 上返回 404

不确定这里的问题是什么,但我正在为在同一台 Web 服务器上运行的两个虚拟主机设置测试。我只想确保 / 上的 GET 返回 HTTP 200。当我在命令行上运行此命令时,没有问题:

st:/etc/nagios3# /usr/lib/nagios/plugins/check_http www.example.com
HTTP OK: HTTP/1.1 200 OK - 14144 bytes in 0.055 second response time   |time=0.055208s;;;0.000000 size=14144B;;;0

但是,当我将其放入配置中时,我收到警告,404 警报:

在我的commands.cfg中:

define command {
    command_name check_http
    command_line $USER1$/check_http -H $HOSTNAME$
}

在我的 services.cfg 中:

define service {
 use generic-service
 host_name myhost
 service_description HTTP-WWW
 check_command check_httpname!www.example.com
}

答案1

一般来说,您应该查看 Apache 日志文件以了解服务器端发生的情况。

您在命令行上运行的命令与配置文件中的命令不同。您在命令行上运行:

check_http host.example.com

但是在您的配置文件中,您正在运行:

check_http -H host.example.com

它们的作用截然不同!阅读文档了解更多信息。如果您使用基于名称的虚拟主机,这两个命令会将请求发送到不同的虚拟服务器。

答案2

我认为你可能打错了:

define command {
    command_name check_http
    command_line $USER1$/check_http -H $HOSTNAME$
}

也许你的意思是:

define command {
    command_name check_httpname
    command_line $USER1$/check_http -H $HOSTNAME$
}

相关内容