已经设置了我的本地networkingconfiguration,由Nagios3监控。 我发现Nagios3在ip 192.168.1.52的Debian服务器的HTTP监控服务中报告了一个警告,该服务器有一个单独的虚拟主机和一个用于应用程序开发的海量虚拟主机。 我得到这个状态消息:
HTTP警告:HTTP / 1.1 404找不到
我用Nagios工具来检查。 servername是我在Apacheconfiguration中使用的虚拟主机服务器名称。
/ usr / lib / nagios / plugins / check_http -H servername -I 192.168.1.52
收到此状态消息:
HTTP OK HTTP / 1.1 200 OK – 37900字节在0.504秒|时间= 0.503946s ;;; 0.000000大小= 37900B ;;; 0
但是当我检查这样的:
/ usr / lib / nagios / plugins / check_http -I 192.168.1.52
我得到了与警告相同的状态信息,所以我假设我没有完全设置好Nagios,因为它不能识别该服务器的虚拟主机,它应该如check_http服务所示。
我应该在哪里解决这个警告?
你如何定义服务在Nagios?
应该是这样的:
define command{ command_name my_check_http command_line $USER1$/check_http -H$ARG1$ -I $HOSTADDRESS$ } define host{ use generic-host host_name something alias something address 192.168.1.52 # ... } define service{ use generic-service host_name something check_http_args!nameofvhost # ... }
人。 非常感谢您的帮助,但在查看您的任何答案之前,我自己find了答案,对不起!
为了解决这个问题,我在commands.cfg文件中做了一个自定义命令,如下所示:
定义命令{
command_name custom_check_http command_line $USER1$/check_http -H $HOSTNAME$ -I $HOSTADDRESS$}
不太确定$ USER1 $的用途,但没有它,崩溃127债券的限制出错。
主机定义已经正确地写入了host_name和address(对于缺less信息而感到抱歉!),与pQd写的一样。
定义主机{
host_name SERVERNAME alias SERVERNAME_ALIAS address 192.168.1.52 ...}
最后,services_nagios2.cfg文件中的服务定义就像默认的一样简单:
定义服务{
hostgroup_name http-servers service_description Apache check_command custom_check_http use generic-service notification_interval 0 ; set > 0 if you want to be renotified}
在问这个问题之前,我还没有意识到使用variables$ HOSTNAME $和$ HOSTADDRESS $。 再次感谢您的帮助。
在我们的一个Web服务器上出现“相同”的问题。 它在我们的网站更新完成后出现。 他们也改变了IIS中的标题,这就是错误开始出现的原因。
解决方法:将服务器名称更改为网站名称; “服务器名称”为“site.com”
我会尝试绕过Nagios,并从Nagios主机上的命令行使用wget来检查您发送给Nagios的URL:
wget http://192.168.1.52/ wget http://servername/
从上面,我猜测第一个命令将失败,但第二个将工作,这导致我相信你的虚拟服务器名称parsing为一个不同的IP地址。 尝试
dig servername
确认。
一般的Nagiosdebugging技巧是尝试使用-v选项,大多数插件实现该选项以提供详细的输出。 当插件在Nagios下运行时, capture_plugin脚本对捕获debugging输出非常有用。
在你的services.cfg中,检查servername而不是IP,或者检查端口而不是http响应。
后者的例子:
check_command check_tcp!80