Nagios 通知升级

Nagios 通知升级

我已经正确配置了 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 的转换也不会重置该计数器 - 这往往会致命。

相关内容