介绍
主机检查的基本工作在此处介绍。
何时执行主机检查?
主机由Nagios Core守护程序检查:
- 由主机定义中的check_interval和retry_interval选项定期定义。
- 与主机关联的服务更改状态时按需。
- 作为主机可达性逻辑的一部分,按需提供。
- 根据需要进行预测性主机依存关系检查。
定期安排的主机检查是可选的。如果将主机定义中的check_interval选项设置为零(0),则Nagios Core将不会定期执行主机检查。但是,它将仍然根据监视逻辑的其他部分的需要对主机执行按需检查。
当与主机关联的服务更改状态时,将进行按需检查,因为Nagios Core需要知道主机是否也更改了状态。更改状态的服务通常是主机可能也已更改状态的指示。例如,如果Nagios Core检测到与主机关联的HTTP服务刚刚从CRITICAL更改为OK状态,则可能表明该主机刚刚从重新启动中恢复,并且现在已备份并正在运行。
主机的按需检查也作为主机可达性逻辑的一部分进行。Nagios Core旨在尽快检测网络中断,并区分DOWN和UNREACHABLE主机状态。这些状态非常不同,可以帮助管理员快速定位网络中断的原因。
按需检查也作为预测性主机依赖性检查逻辑的一部分执行。这些检查有助于确保依赖性逻辑尽可能准确。
缓存的主机检查
通过实现缓存检查的使用,可以显着提高按需主机检查的性能,这使Nagios Core可以在确定相对较新的检查结果的情况下放弃执行主机检查。有关缓存的支票的更多信息,请参见此处。
依赖关系和检查
您可以定义主机执行依赖性,以防止Nagios Core根据一个或多个其他主机的状态检查主机的状态。有关依赖关系的更多信息,请参见此处。
主机检查的并行化
计划的主机检查是并行运行的。当Nagios Core需要运行计划的主机检查时,它将启动主机检查,然后返回执行其他工作(运行服务检查等)。主机检查在从主Nagios Core守护程序进行fork()处理的子进程中运行。主机检查完成后,子进程将把检查结果通知主Nagios Core进程(其父进程)。然后,主要的Nagios Core流程将处理检查结果并采取适当的措施(运行事件处理程序,发送通知等)。
如果需要,还可以并行运行按需主机检查。如前所述,Nagios Core如果可以使用相对较新的主机检查中的缓存结果,则可以放弃按需主机检查的实际执行。
当Nagios Core处理计划的和按需的主机检查结果时,它可能会启动(辅助)其他主机的检查。可以出于两个原因启动这些检查:预测依赖性检查和使用网络可达性逻辑确定主机的状态。启动的辅助检查通常并行运行。但是,您应该意识到一个大例外,因为它可能会对性能产生负面影响…
将max_check_attempts值设置为1的主机可能会导致严重的性能问题。原因?如果Nagios Core需要使用网络可达性逻辑来确定其真实状态(以查看它们是DOWN还是UNREACHABLE),则它将必须启动对主机的所有直接父级的串行检查。重申一下,这些检查是串行运行的,而不是并行运行的,因此可能会严重影响性能。因此,我建议您始终在主机定义中为max_check_attempts伪指令使用大于1的值。
主机状态
被检查的主机可以处于三种不同状态之一:
- Up
- Down
- 不可达
确定主机状态
主机检查由插件执行,插件可以返回OK,WARNING,UNKNOWN或CRITICAL状态。Nagios Core如何将这些插件返回代码转换为UP,DOWN或UNREACHABLE的主机状态?让我们来看看。
下表显示了插件返回代码如何与初始主机状态相对应。完成一些后处理(将在后面进行描述),然后可以更改最终主机状态。
插件结果 | 初步主办国 |
---|---|
好 | 向上 |
警告 | 上或下* |
未知 | 下 |
危急 | 下 |
注意:警告结果通常表示主机已启动。但是,如果启用了use_aggressive_host_checking选项,则将警告结果解释为主机已关闭。
如果主机的初始状态为DOWN,Nagios Core将尝试查看主机是否真的为DOWN或是否为UNREACHABLE。DOWN和UNREACHABLE主机状态之间的区别很重要,因为它使管理员可以更快地确定网络中断的根本原因。下表显示了Nagios Core如何根据主机父级的状态做出最终状态确定。主机的父母在主机定义的Parents指令中定义。
初步主办国 | 家长所在州 | 最终主办国 |
---|---|---|
下 | 至少有一位父母 | 下 |
下 | 所有父母都不在家或无法联系 | 无法到达 |
有关Nagios Core如何区分DOWN和UNREACHABLE状态的更多信息,请参见此处。
主机状态更改
如您所知,主机并非总是保持一种状态。事情中断了,补丁被应用了,服务器需要重启。当Nagios Core检查主机的状态时,它将能够检测到主机何时在UP,DOWN和UNREACHABLE状态之间切换,并采取适当的措施。这些状态更改导致不同的状态类型(HARD或SOFT),这可以触发事件处理程序的运行和通知的发送。检测并处理状态更改是Nagios Core的全部目的。
当主机更改状态的频率太高时,它们被视为“拍打”。主机波动的一个很好的例子是服务器,一旦操作系统加载,该服务器就会自发重启。这总是很有趣的情况。Nagios可以检测主机何时开始震荡,并且可以抑制通知,直到震荡停止并且主机的状态稳定为止。可以在此处找到有关襟翼检测逻辑的更多信息。