监控系统Nagios系列(五) 检查类型(active_check & passive_check)

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

1. active_check

activechecks
active_check的触发条件:

  • 定时触发
  • 按需触发

按照host或service中定义的 check_interval, retry_interval 属性来确定触发执行的检查,就是定时触发。

还有一些情况下,比如service状态由OK变为Critical,那么会触发该service所关联的Host的状态检查,这种就是按需触发。
一种更典型的按需触发的场景是 reachable 可达性检测。可达性检测是一种网状依赖关系下的Host状态检测(关于可达性检测后续会说明)。如果Host网中某个Host状态变化,会触发执行网中所有其他Host的状态检查,以保证其状态的准确性。

active_check 是由Nagios的Dameon进程调度执行的,Deamon进程根据配置的插件command,执行此command并获取到结果,根据结果判定下一步动作(调用事件处理函数,发送通知等)。

2. passive_check

passive_check 是由外部程序提交数据给Nagios Deamon处理,获得Host或Service的状态。

passivechecks

pasive_check 针对的场景:

  • 无法通过定时执行命令的方式获取检查结果(典型的如SNMP Trap)
  • 组网上的限制,被检查的设备在防火墙内部,外部无法连接,但是内部可以出来。

passive_check 的工作流程:

  • 外部程序将数据写到Nagios指定的文件中(默认是 /usr/local/nagios/var/rw/nagios.cmd )
  • Nagios Deamon定义了一个rape(收割)事件(还记得 监控系统Nagios系列(三) 运行时 中描述的Nagios的线程和事件吗?),该事件定时被触发执行,读取文件中的内容,然后清除文件的内容。
  • 读取到的数据,与active_check获得的数据同样处理。

在Nagios的主配置文件和每个Host,Service的定义文件中,通过 accept_passive_service_checks = 1 来启用 passive_check ,默认是不启用。

还需要注意的是,passive_check提交的结果,其对应的Service或Host必须在Nagios的Objects中定义,否则数据会被丢弃。

2.1 Service 的 passive_check 结果文件格式定义


[<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host_name>;<svc_description>;<return_code>;<plugin_output>"

  • timestamp, 时间戳秒值
  • PROCESS_SERVICE_CHECK_RESULT, 固定填写
  • host_name, Service关联的Host的 host_name属性
  • svc_description, Service对象定义中的svc_description
  • return_code, 返回值,与插件返回值一致
  • plugin_output 插件的输出

2.2 Host 的 passive_check 结果文件格式定义


[<timestamp>] PROCESS_HOST_CHECK_RESULT;<host_name>;<host_status>;<plugin_output>

参数的解释,与上面的 Service passive_check 输出结果类似。

最后需要注意的两点:

  • passive_check 的状态类型,默认是 Hard 类型,除非在主配置文件中将 passive_host_checks_are_soft 值配置为1。
  • passive_check 导致的Host状态变化,不会触发可达性检测(active_check中的按需检测)。

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部