当 Nagios 主机对象添加到多个主机模板(每个模板分配了不同的时间段)时,Nagios 似乎仅选择该使用列表中的第一个模板。
您可以根据时间为主机指定不同的 check_interval 吗?
答案1
当 Nagios 主机对象添加到多个主机模板(每个模板分配了不同的时间段)时,Nagios 似乎仅选择该使用列表中的第一个模板。
主机对象不会“添加到”模板,而是读取模板并将其应用到主机对象,合并任何设置,除非它们被对象本身(或另一个模板)“本地”覆盖。运行时期间无法更改值。
您可以根据时间为主机指定不同的 check_interval 吗?
这是一个典型的XY问题。不要假设您所描述的是正确的做法,而是解释您想要解决的根本问题。为什么您希望在某些时期减少运行检查的频率?这不是 Nagios 的常见用法,因此请首先解释您想要解决的实际问题 - 可能有更好的方法来做到这一点。
答案2
您可以根据时间为主机指定不同的 check_interval 吗?
不会。一台主机(通过任何模板继承最终都会得到一个 check_interval 和 check_period。
我尝试在晚上应用较少的主机检查频率,而在下午应用更频繁的主机检查。
我不建议这样做。Nagios 检查主机状态:
- 按照主机定义中的 check_interval 和 retry_interval 选项定义的定期间隔。
- 当与主机关联的服务更改状态时按需。
- 作为主机可达性逻辑的一部分按需提供。
- 根据需要进行预测性主机依赖性检查。
您唯一可以控制的是通过 check_interval 和 retry_interval 进行定期检查。 check_command 以 check_interval 运行,因此您可以为该主机创建一个自定义 check_command,然后检查一天中的时间来决定是否运行(如果决定不运行该怎么办?返回“未知”?),但您不希望 Nagios 可能想要检查主机的其他实例跳过该主机检查(或让它返回虚假数据)。
我不确定你为什么想要查看较少出现,因为 check_command 通常只是一个 ping。如果 ping 流量由于其他原因在晚上引起问题,那么这可能是一个需要解决的不同问题。如果您不希望主机在非工作时间发出警报,您可以定义停机时间窗口或为主机设置自定义 notification_period。请注意,停机时间窗口和自定义通知期限也可能会抑制服务该主机上的警报。
如果你真的,真的如果愿意,您可以在外部安排手动配置文件更改;例如,sed
更改主机的 check_interval 的脚本,或者复制“白天”hosts.cfg 与“晚上”hosts.cfg 的脚本,然后重新加载 Nagios。