监控状态
nagios监控的状态比较特殊,它包含两种状态共通定义。因此单独拎出来讲ios
两种状态
- 服务或主机的状态(即OK,WARNING,UP,DOWN等)
- 服务或主机所在的状态类型
状态类型有两种:SOFT 和 HARD
这些状态类型是监视逻辑的关键部分,由于它们用于肯定什么时候执行事件处理程序以及什么时候最初发出通知。
本文档介绍了SOFT和HARD状态之间的差别,它们如何发生以及什么时候发生。blog
服务和主机检查重试
为了防止因暂时性问题引发的误报,Nagios Core容许您定义在服务或主机被视为“实际”问题以前应被(从新)检查多少次。这由主机和服务定义中的max_check_attempts选项控制。了解主机和服务如何(从新)检查以肯定是否存在实际问题对于了解状态类型的工做方式很是重要。事件
SOFT States
Soft states 发生在如下场景:文档
- 当一个服务或者主机检测结果是是non-ok non-up state ,而且检测至今尚未达到max_check_attempts,这个就叫作SOFT state
- 当一个服务或者主机recovers从一个soft error, 这个就被认为是一个soft 恢复。
如下事情会发生,当主机或者服务经历了SOFT state变化时:io
- the SOFT state is logged
- event handlers are excuted to handle the SOFT state
仅当在主配置文件中启用了log_service_retries或log_host_retries选项时,才会记录SOFT状态。event
During SOFT state
当监控状态处于SOFT状态这段时间(毕竟有一个max_check_attempts)最最重要的是事情就是,event handlers的执行状况了。使用event handlers多是特别有用,若是你想去尝试或者主动去解决一个问题,在这个SOFT状态变为HARD状态以前。$HOSTSTATETYPE$ or $SERVICESSTATETYPE$ macros 将会是SOFT值当event handlers被执行时,这个时候就容许你的Event handler脚本知道这个时候应该作正确的action.class
HARD States
如下场景将会发生HARD State:监控
- 相对于SOFT state,当host or serivce已是non-OK non-UP且检测次数已经达到max_check_attempts选项值(host or service中定义的),此时就是HARD error state
- 当一个host or service 从hard error state状态迁移到另外一个错误状态时(如,WARNING to CRITICAL)
- 当一个service检查状态时non-ok而且它所在的host是DOWN or UNREACHABLE时
- 当一个host or service 从hard error state状态恢复时。这个也叫作hard恢复。
- 当一个passive host check 接收到。被动host checks会被看作是HARD,除非passive_host_checks_are_soft 选项是开启的
如下事情会发生,当主机或者服务经历了HARD state变化时:配置
- The HARD state is logged.
- Event handlers are executed to handle the HARD state.
- Contacts are notified of the host or service problem or recovery
执行事件处理程序时,$ HOSTSTATETYPE $或$ SERVICESTATETYPE $宏的值将为'HARD',这使您的事件处理程序脚本知道什么时候应采起纠正措施。有关事件处理程序的更多信息,请参见此处。service
状态变化分析示例