![如果主机关闭,我可以停止监控,而当主机打开时,我可以打开监控吗?](https://linux22.com/image/729598/%E5%A6%82%E6%9E%9C%E4%B8%BB%E6%9C%BA%E5%85%B3%E9%97%AD%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%81%9C%E6%AD%A2%E7%9B%91%E6%8E%A7%EF%BC%8C%E8%80%8C%E5%BD%93%E4%B8%BB%E6%9C%BA%E6%89%93%E5%BC%80%E6%97%B6%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E6%89%93%E5%BC%80%E7%9B%91%E6%8E%A7%E5%90%97%EF%BC%9F.png)
我想知道 Nagios 是否有可能在主机关闭时停止监控,并在主机打开时打开监控?
我的想法是使用我的 Nagios 服务器,它将通过使用 API 的脚本来监控 CLIENT 服务器是否关闭,如果 CLIENT 服务器关闭,它将自动删除对它的监控,但如果服务器处于打开状态,它将自动将监控重新安装到模板中,
我之所以需要它,是因为我们还需要监控每小时的客户端服务器,当每小时的服务器关闭时,它就会向我们发送垃圾邮件警报。
我知道有更好的方法;我欢迎每一种解决方案。
答案1
我喜欢 Nagios 的一点是,该框架提供了足够的工具来解决复杂的监控问题。这更像是一种实现这一目标的方法,而不是解决方案。
正如 @kasperd 在上面指出的那样,Nagios 没有一种机制来确定主机是打开/关闭还是损坏。如果您可以编写脚本来确定主机是否“应该打开”,那么这种方法就可以奏效。
Nagios 支持主机和/或服务依赖关系的概念。该概念是,如果其中一个依赖项发生故障,则不会将主机或服务视为发生故障。鉴于此,您可以:
定义需要监控的客户端主机“A”
定义一个“开/关”主机“B”,用于确定主机是否关闭
- 开发一个自定义检查脚本,用于确定主机是否开启/关闭。如果主机关闭,则检查脚本为关键脚本。如果开启,则检查脚本为正常脚本。
使主机“A”依赖于主机“B”
使用此配置,仅当主机“B”正常时才会处理主机 A 的通知。请参阅文档中的主机依赖关系。作为替代方案,您可以使用自定义主机检查来执行此操作,该检查确定“应该开启”状态和实际状态并返回正确的状态。