我已经正确配置了 Nagios,并且希望使用通知做一些(稍微)奇怪的事情。
我们想要做的是,前三条通知每隔 5 分钟发出一次,如果没有人回应,则接下来的三条通知每隔 30 分钟发出一次,之后每隔 60 分钟发出一次。我已让所有这些运行正常。
我想要做的最后一部分是问题发生的地方。我希望这些重复的通知不会在夜间(23:00 到 08:00 之间)发送,但对于所有新通知,这些通知都应该发送。现在的情况是,对于第三次升级(60 分钟的升级),在 23:00 之前工作正常,然后它恢复到 5 分钟的级别,因为它超出了escalation_period
我设置的范围。
我以为我可以通过设置另一个在“夜间”运行的升级期来解决这个问题,但这也没用。这是我的配置:
define service{
use generic-service
host_name mercury
service_description ROB_TEST2
check_command check_pop
contact_groups robonly
}
define serviceescalation{
host_name mercury
service_description ROB_TEST2
first_notification 3
last_notification 5
notification_interval 30
contact_groups robonly
}
define serviceescalation{
host_name mercury
service_description ROB_TEST2
first_notification 6
last_notification 9999
notification_interval 60
contact_groups robonly
escalation_period daytime
}
define serviceescalation{
host_name mercury
service_description ROB_TEST2
first_notification 6
last_notification 9999
notification_interval 60
contact_groups nobody
escalation_period nighttime
}
有什么想法吗?
答案1
我认为,如果您在联系人上指定时间段,它就会起作用。定义联系人两次:一次在晚上通知,另一次仅在白天通知。
define service{
use generic-service
host_name mercury
service_description ROB_TEST2
check_command check_pop
contacts rob_daytime, rob_nighttime
}
define serviceescalation{
host_name mercury
service_description ROB_TEST2
first_notification 3
last_notification 5
notification_interval 30
contacts rob_daytime, rob_nighttime
}
define serviceescalation{
host_name mercury
service_description ROB_TEST2
first_notification 6
last_notification 9999
notification_interval 60
contacts rob_daytime
}
define contact{
contact_name rob_daytime
service_notification_period daytime
...
}
define contact{
contact_name rob_nighttime
service_notification_period nighttime
...
}
尽管升级已经持续了几天,这也能让你睡个好觉。
笔记:我自己还没有测试过;-)
答案2
是非常如果您决定通过 last_notification 限制任何内容,请务必小心。至少在我了解的版本中,升级不会重置该计数器,这相对无害。从 WARN 到 CRIT 的转换也不会重置该计数器 - 这往往会致命。