主机检测就是对主机的运行情况进行检测,查看主机当前处于的状态。
1.主机检测履行的时间
Nagios守护过程在以下情况会履行主机检测:
1)定期检测是在主机定义中应用 check_ interval和 retry_interval选项指定的检测。
2)当与主机相干的服务产生状态转变时会产生主机检测。
3)当属于主机可达性检测逻辑中的一部分时。
4)当进行预测性主机依附性检测时。
其中后3种属于经请求检测,而有规律地进行主机检测是可选项,如果在配置中将选项 check interval的值设置为0,那么 Nagios将不会对主机履行定期检测,而经请求检测的主机检测仍然会进行,因为它是属于监控逻的一部分。
当与主机相干的服务产生变更时,经请求检测将会被履行,因为Na-os需要知道主机是不是也产生了状态转变。服务状态的转变往往会反响出主机状态也产生了转变,就是说,主机及服务状态的转变往往是有关系的,例如,如果 Nagios检测到了一个与HITP产生了从 CRITICAL到OK的状态转变,那么表明与之相干的主机可能刚刚恢复重新启动,并正在恢复运行。
经请求检測也是网络主机检測可达性逻辑的一部分, Nagios被设计为尽可能快地检网络中断,并且要区別DOWN和 UNREACHABLE主机状态,通过这些不同的状态,能够赞助管理员快速地定位引发网络中断的原因。经请求检測也会作为预测依附性检測逻辑的一部分而履行,这些检测有助于确保依附的逻辑尽可能正确。
2.缓存主机检测
通过应用缓存检测能够进步经请求主机检测的性能,应用了缓存检测,那么与之相干的最近成果将会被应用,从而也会使得 Nagios放弃主机检测。
3.依附性和检测
可以定义主机依附定义( hostdependency)禁止 Nagios在检测主机状态时对一个或者多个主机状态的依附。
4.并行主机检测
定期主机检测是并行运行的,当 Nagios履行预定的主机检测时,那么它将会开端履行主机检测并返回成果,然后再履行其他的工作,例如运行主机检测,等等。
主机检测是由 Nagios主过程派生出来的子过程进行检测的,当一个主机检测完成时,子过程将会通知 Nagios主过程(也就是父过程)检测的成果,然后 Nagios主过程将会处理这个检測成果并采用适当的举动例如,运行事件处理程序、发送通知,等等。
如果需要经请求主机检測也可以并行运行,如同前面提到的,如果能够应用相干的最近的主机检测成果,那么 Nagios将会应用这个缓存的成果,从而放弃了实际履行的经请求检测的主机检测。
在 Nagios处理定时和经请求主机检測时,可能会对其他主机进行检测(可以称为二次检测)。进行这些主机检測有两个原因:预测依附性检测和通过应用网络可达性逻辑决定主机状态。发起二次检测通常是并行运行的,然而也有例外的情况,如果是这种情况,那么将会在检测性能上受到负面影响。
下面来看一下这种情况
如果将 max_check _ attempts的值设置为1,那么将会造成严重的性能问题。下面解释一下原因。
如果 Nagios需要应用网络可达性逻辑(以便查看服务器是DOWN还是 UNREACHABLE)来决定检测对象的真正状态,那么 Nagios将不得不进行一系列检测,检测该主机最接近的父节点主机。
需要强调的是,这些检测都是持续运行的,而不是并行运行的,因此,在检测性能上会有较大的丧失。也正是由于这个原因,在host定义中推荐将选项max_ check_attempts的值设置为一个大于1的值
5.主机状态
被检测主机的状态有以下三种。
1.Upo
2.DOWN-
3.UNREACHABLE。
6.主机状态定义
主机的状态检测是通过插件来进行的,履行检测的插件会返回OKWARNING、 UNKNOWN或 CRIMCAL。 Nagios如何将插件返回的代码转换为UP、DOWN或 UNREACHABLE?
表1显示了插件返回代码与预定主机状态的对应关系。
有些还需要后期加工才会转换为最终的主机状态。
需要注意的是, WARNING成果通常意味着主机处于UP状态,然而如果启用了选项use_ aggressive_host_ checking,那么 WARNING成果会被解释为主机处于DOWN状态。如果转化后的主机状态,也就是转换为“预定主机状态”值为DOWN,那么 Nagios将试图“查看”该主机是不是真的为DOWN还是UNREACHABRE状态。
找出DOWN和 UNREACHABLE主机状态的特点却别很重要,表2显示了 Nagios如何基于该节点的父节点主机状态来决定该节点状态在host定义中有一个 parent?选项,也就是通过这个选项指定主机的状态作为参考,决定该主机的最终状态。
7.主机状态转变
正如你想到的,即使在正常情况下,主机也不可能总是处于一个状态,就是说要考虑到中断、打补丁以及根据服务的需要进行重新启动主当 Nagios检测这类主机状态时。
Nagios将会检测到主机在UPDOWN和 UNREACHABLE状态之间转变,并且会采用适当的动作。根据这些状态转变成果的状态类型不同,也就是SOFT状态和HARD状态(即软状态和硬状态),将会触发事件处理程序运行,并且会发送通知。检测和处理状态转变的是 Nagios的所有工作。
当主机转变频繁时,它会被认定为“摆动”,一个范例的主机产生“摆动”状态的例子就是当主机一入操作系统就产生重启。这种情况总是会遇到的而且也是必需要处理的, Nagios将会检测到主机开端产生“摆动”,并且会克制通知的发送,直到“摆动”结束并且等到主机状态趋于稳固。