我的值班轮换根据人员的地理位置来定义时间段。但是我们的升级需要传达给整个团队,无论何时发生。目前我发现在 nagios 中配置此功能的唯一方法是为每个人创建两个联系人
一个是特定时间段,另一个是 24x7,然后在升级中使用 24x7 联系人。我希望每个人只保留 1 个联系人。
define contact {
contact_name bobjones
service_notification_period ops-shift4-oncall
host_notification_period ops-shift4-oncall
host_notification_options d,u,r
service_notification_commands service-notify
host_notification_commands host-notify
email [email protected]
pager bjones
}
define contact {
contact_name bobjones_24x7
service_notification_period 24x7
host_notification_period 24x7
host_notification_options d,u,r
service_notification_commands service-notify
host_notification_commands host-notify
email [email protected]
pager bjones
}
答案1
您可以使用 escalation_period 来定义升级何时发生。因此,您可以执行以下操作:
define serviceescalation{
hostname host.example.com
service_description this service
first_notification 1
last_notification 1
notificaiton_interval 15
escalation_period opps-shift4-oncall
contact_groups shift4
}
define serviceescalation{
hostname host.example.com
service_description this service
first_notification 1
last_notification 1
notification_interva 15
escalation_period opps-shift3-oncall
contact_groups shift3
}
ETC。
然后确保联系人组包含适当的人员。这将根据时间段向适当的组发送第一条通知。因此,您可以创建一个虚拟组“无人”或类似名称,并将其放入服务声明中,这样它实际上就不会发送给任何人。
答案2
你退房了吗http://nagios.sourceforge.net/docs/1_0/escalations.html?
我认为您只需将一个用户添加到多个联系人组即可执行您想要的操作。
答案3
这可能不适合你的情况,但我通过使用发行版组解决了 Nagios 中同一个人拥有多个联系人的问题。我没有设置个人,而是设置了交换组。Nagios 联系人永远不会改变,但发行版组一直在变化。