在监视服务器的健康状况时,一些故障或警告是立即紧急的,但其他故障或警告只有在它们持续存在时才重要。我在想这样的事情:
- 一些软件需要更新
- 时间偏移与 NTP 不同
如果不加以解决,这些可能会成为真正的问题,但已经有后台服务可以处理它们 - 无人值守升级、NTP 客户端服务等。在问题出现和这些后台进程开始解决它们之间总会有短暂的延迟,我们的监视器在那个间隙发送了一系列电子邮件 - 然后一分钟后问题得到解决。我通常会在一大堆“问题”电子邮件中醒来,每封电子邮件都会在一分钟后发送相应的“解决”电子邮件。危险在于,在忽略一百个不相关的警告时,我可能会错过真正的警告。
那么是否有任何方法可以指示 Icinga 或 Nagios 仅在问题持续超过一定时间(例如 5 分钟)时才报告问题?
SvW 在他所写的内容中没有错,但是您还应该调查变量
max_check_attempts
,它定义了在出现 HARD 错误和通知之前服务必须失败的检查次数。对于我的一些触发式服务,我有
这意味着 NAGIOS 会比平时更频繁地检查,一旦发现有问题,它会等待 1 分钟,再检查一次,然后通知。对于其他服务,我不关心,直到它关闭了一段时间,我有
这意味着一旦 NAGIOS 发现某些东西出现故障,它会像往常一样每 5 分钟检查一次,直到它出现一个小时才告诉我。
绝对值得调整您的NAGIOS,直到它告诉您您关心的事情,您关心的时间,仅此而已;发出大量误报(即,向您发送大量您并不真正关心的通知)的监控系统几乎与具有误报(即,未能注意到真正的问题)的监控系统一样无用。
您可以定义详细的配置来告诉 Nagios 有关检查服务的每个细节。
查找
check_interval
和retry_interval
配置选项,当你在它的时候,了解一般的时间段。