我有一个被动服务没有像我希望/预期的那样工作。这是一个异步服务。它在状态改变时发送NRDP被动消息。因此,如果警报响起,它会发出警告信息,当警报得到纠正时,状态会发生变化,并发出OK消息。发出警报后,会将问题通知负责人。
问题是,在3分钟的freshness_threshold之后,nagios将其重置回OK状态,并向负责人发送OK通知(根据通知页面)。根据我读到的一篇文章,我认为它会变成批判性的(但这可能是积极的)。
我的服务缓存配置如下:
define service {
host_name sensorshost
service_description sensor-116
display_name sensor-116
check_period 24x7
check_command check_dummy!0
contact_groups sensor-116-contact-group
notification_period 24x7
initial_state o
importance 0
check_interval 5.000000
retry_interval 1.000000
max_check_attempts 1
is_volatile 0
parallelize_check 1
active_checks_enabled 0
passive_checks_enabled 1
obsess 1
event_handler_enabled 1
low_flap_threshold 0.000000
high_flap_threshold 0.000000
flap_detection_enabled 0
flap_detection_options a
freshness_threshold 180
check_freshness 1
notification_options r,w,u,c
notifications_enabled 1
notification_interval 60.000000
first_notification_delay 0.000000
stalking_options n
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
}
一个好的起点总是Nagios文档:
新鲜度检查是如何工作的
Nagios定期检查所有主机的结果是否新鲜启用了新鲜度检查的服务。
- 为每个主机或服务计算新鲜度阈值
- 对于每个主机/服务,将其最后一次检查结果的年龄与新鲜度阈值进行比较
- 如果最后一次检查结果的期限大于新鲜度阈值,则该检查结果被视为"过时">
- 如果发现检查结果过时,Nagios将通过执行指定的命令强制对主机或服务进行活动检查在主机或服务定义中通过
提示:即使在程序范围内或主机或服务特定的基础上禁用了活动检查,也会执行活动检查。
在您的情况下,如果被动检查结果早于180
时间单位(通常为秒,但这是可配置的),则将运行"主动检查"(表示您的check_command
)来尝试纠正这种情况。
Nagios将退出代码映射到服务状态,因此如果check_dummy!0
退出时代码为0
,这将解释为什么服务返回正常