我正在寻找这方面的一个小方向。 我们有8台移动服务器,随时可以离线,移动到不同的位置。 如果系统脱机,我不希望Nagios发送警报。 我希望它只是发送一个服务的警报,CPU变热,等我现在一切工作正常,除了我得到警报时,系统停机的事实。
正如我所说,这些服务器在两周的时间内不断在线和离线。 所以在星期六的凌晨3点得到一个消息告诉我一个系统是离线的,我可以不在乎。 我更关心一些过热的事情。 所以,如何解决这个问题,任何意见将不胜感激?
您可能需要closures主机通知,而不是主机检查。 如果Nagios认为主机已启动,Nagios只会报告服务故障; 如果您closures主机检查,那么当主机离开时,您将收到大量的服务通知。
要closures主机通知,请将notification_options设置为n如下所示:
define host { use generic-host host_name example address 192.168.1.254 notification_options n }
(假设你有其他地方的generic-host的定义)
不知道我理解正确,但你只想要服务通知,而不是主机检查?
如果是这样的话,你可以在configuration中做,但是在过去我已经进入了Web界面,点击“主机详细信息”,然后是主机,然后“禁用该主机的通知”。
也许对于configuration,你只是不在主机定义中指定一个check_command ,或者主机定义inheritance的任何模板?
更新:
好的,也许你想在服务的notification_options中这么做,你不包括用于'以UNREACHABLE状态发送通知'的u 。 它也可能类似于service_notification_options ,请查看Nagios文档的这个对象定义部分。
我认为你可能能够采取的另一条路线是使服务成为主机检查的依赖,而不会得到主机检查的通知。 虽然不太确定这个选项。
这不是一个确切的答案,但希望指出你在正确的方向…
如果我的理解正确,你想监视附加到主机的服务,但不是主机本身。
关键是使用一个没有定义check_command的主机定义。 例如,你可以扩展主机定义的linux-server – 这个定义了check_command,因此是不合适的。 相反,你应该使用,例如, generic-host例如
define host{ name nocheck-host use generic-host }
需要注意的一点是,如果Nagios已经让主机处于“closures”状态,那么在Nagios重新启动之后,它可能会处于closures状态。 因为Nagios认为它不行,所以不会发送通知。 为了解决这个问题,你可以发送一个被动检查给主机,强制Nagios重置主机的状态(从web前端执行)。