【发布时间】:2017-09-10 01:57:26
【问题描述】:
我已经使用 Nagios 监控一堆服务器大约一年了。太棒了。但最近,Nagios 开始给我发邮件说每个主机都宕机了。然后,紧接着,会告诉我每个主机都很好。
它每天都这样做。我早上醒来收到 40 多封电子邮件。
Nagios.log 为我的一个网址显示了这些似乎与向下情况有关的行:
[1505007529] SERVICE ALERT: myurl.com;/;CRITICAL;HARD;1;HTTP CRITICAL: Status line output matched "200" - 48479 bytes in 10.223 second response time
[1505007529] SERVICE NOTIFICATION: nagiosadmin;myurl.com;/;CRITICAL;notify-service-by-email;HTTP CRITICAL: Status line output matched "200" - 48479 bytes in 10.223 second response time
[1505007579] SERVICE ALERT: myurl.com;/;OK;HARD;1;HTTP OK: Status line output matched "200" - 48479 bytes in 0.197 second response time
[1505007579] SERVICE NOTIFICATION: nagiosadmin;myurl.com;/;OK;notify-service-by-email;HTTP OK: Status line output matched "200" - 48479 bytes in 0.197 second response time
警报似乎是它意识到有问题的地方。该通知似乎是它向我发出电子邮件的地方。然后提醒备份。然后发邮件备份。
现在,这是我用来监控 url 的命令:
define command{
command_name check_http_url
command_line $USER1$/check_http --expect="200" -w 5 -c 10 -t 20 -H $ARG1$
}
我认为服务器可能无法足够快地响应 ping。所以,我想增加 Nagios 容忍等待响应的时间。
为此,我添加了 -w、-c 和 -t 来调试问题。在我尝试添加这些之前,它的行为已经一个月了。这些似乎没有任何帮助。
这是我的服务定义的样子:
define service{
host_name myurl.com
service_description /
max_check_attempts 1
check_interval 1
retry_interval 1
check_period 24x7
notification_period 24x7
notification_interval 10
check_command check_http_url!myurl.com
notifications_enabled 30
contact_groups admins
contacts nagiosadmin
notification_options w,u,c,r
}
让我再说一遍,这在 7 个多月的时间里都非常有效。然后,就开始自己动手了。一旦我开始工作,我就没有亲自更改任何配置。
如果它只报告单个服务器,我愿意接受受监控的服务器可能响应缓慢。但大多数情况下,它会在我的 3-4 台服务器关闭的情况下回来,然后同时备份。这使我认为问题实际上与 nagios 环境有关,而不是其他服务器。
提前感谢您帮我调试。
【问题讨论】: