设为首页 收藏本站
查看: 1041|回复: 0

nagios监控之依赖报警

[复制链接]

尚未签到

发表于 2019-1-14 13:09:30 | 显示全部楼层 |阅读模式
  简介:
  服务和主机依赖是nagios高级行为,它允许你利用主机和服务的状态来控制主机和服务。以下我将解释依赖报警是怎么工作以及主机和服务依赖之间的不同。
  一、服务依赖概述
  你需要知道的服务依赖的事情:
  1.一个服务可以依赖于一个或者多个其他服务
  2.一个服务可以依赖于不在同一个主机上的服务。
  3.服务依赖不能继承除非特殊配置
  4.服务依赖可以在不通情况下压制服务检测和服务通知
  5.服务依赖可以定义一定时间内有效
  定义服务依赖
  首先,最基础的事情是在objects配置文件中增加一个服务依赖。在你指定的依赖服务中定义压制执行失败或者通知失败的状态。
  你可以给个服务创建多个依赖,但你必须为你创造的每个依赖,添加定义一个单独的服务依赖的。

  以下举例说明服务依赖:
  下边这个图展示该例子服务的通知和执行依赖的逻辑结构。不同的服务都要依赖于其他服务通告和检查执行
  在这个例子中,定义一个主机C的服务F依赖关系:
  define servicedependency{
  host_name HostB
  service_description ServiceD
  dependent_host_name HostC
  dependent_service_description ServiceF
  execution_failure_criteria o
  notification_failure_criteria w,u
  }
  define servicedependency{
  host_name HostB
  service_description ServiceE
  dependent_host_name HostC
  dependent_service_description ServiceF
  execution_failure_criteria n
  notification_failure_criteria w,u,c
  }
  define servicedependency{
  host_name HostB
  service_description ServiceC
  dependent_host_name HostC
  dependent_service_description ServiceF
  execution_failure_criteria w
  notification_failure_criteria c
  }
  上面图中其他的依赖定义如下:
  define servicedependency{
  host_name HostA
  service_description ServiceA
  dependent_host_name HostB
  dependent_service_description ServiceD
  execution_failure_criteria u
  notification_failure_criteria n
  }
  
  define servicedependency{
  host_name HostA
  service_description ServiceB
  dependent_host_name HostB
  dependent_service_description ServiceE
  execution_failure_criteria w,u
  notification_failure_criteria c
  }
  
  define servicedependency{
  host_name HostB
  service_description ServiceC
  dependent_host_name HostB
  dependent_service_description ServiceE
  execution_failure_criteria n
  notification_failure_criteria w,u,c
  }
  怎样测试服务依赖哪?
  在nagios在执行一个服务检测和发送一个服务通知之前,nagios会检查一下该服务是否存在依赖关系。如果该服务没有任何依赖关系,
  那么nagios将正常检测和通知。如果该服务有一个或者多个依赖关系,那么nagios将按照依赖规则检查依赖:
  1.nagios取得该服务所依赖服务当前所有状态
  2.nagios 拿被依赖服务的当前状态与执行或者通知失败的选项对比。
  3.如果当前的被依赖的服务状态与失败选项中的其中一个匹配,那么这个依赖关系已经失败并且nagios将打破这个依赖检查循环
  4.如果当前的被依赖的服务状态与失败选项中的任何一项都不匹配,那么依赖通过,nagios将一如既往的检查下一个依赖关系。
  直到该服务的所有依赖被检查或者其中一个依赖失败这个循环检查才停止。
  
  注意:
  一个重要的事情需要注意,默认情况下,Nagios将使用被依赖服务的当前硬状态。
  如果你想使用当前服务的状态(不论其软、硬态),请使用soft_state_dependencies选项。
  执行依赖======》
  执行依赖用来限制服务的主动检查,被动检查不受限制。
  如果所有的执行依赖检查都通过了,那么nagios将像正常一样检查该服务。即使有一个执行依赖失败,
  那么Nagios将暂时阻止执行检查(依赖)服务.直到将来所有的执行依赖都共通过检测,这时,nagios将再次开始检查。
  以上例子中 如果Service B 的状态是WARNING or UNKNOWN 中的一种,那么service E的执行依赖将失败。
  通知依赖===========》
  如果该服务的所有通知依赖都检查通过,nagios正常发送通知。即使有一个通知依赖失败,那么nagios也将暂时抑制该服务的
  通知。将来该服务的所有的通知依赖都通过检测了,nagios将开始恢复正常的通知策略。
   以上的例子中 如果 Service C 处于 CRITICAL 状态,或者 Service D处于WARNING 或者 UNKNOWN 状态,
   或者是Service E 处于 WARNING, UNKNOWN, or CRITICAL状态
   那么 Service F 的通知依赖失败。这种情况下,这个服务的通知将不可能被发送出去。
  依赖的继承=========>
  就像上边说的一样,服务依赖默认是不能继承的。上边的例子可以看到 Service F依赖Service E,
  然后他们不能够自动进程 Service E与 ServiceB和C的依赖关系。为了能使Service F与C产生依赖关系,
  还需要添加一个F到C的依赖。这里没有定义F与B的依赖,那么F的服务将于B没有依赖关系。
  
  如果你真想让服务依赖产生继承,你必须使用inherits_parent指令在服务依赖的定义。当这个指令开启的时候,它指示表示依赖关系
  被继承下拉。换句话说,主服务依赖的其他的和任何其他的依赖都失败的情况下,依赖也将失败。
  
  就上边的例子讲,你想创建一个F与A之间的依赖。你可以创建一个依赖指定F 作为一个依赖服务并且指定A为一个主服务。
   你可以修改D和F的服务的依赖的定义如下:
  define servicedependency{
  host_name HostB
  service_description ServiceD
  dependent_host_name HostC
  dependent_service_description ServiceF
  execution_failure_criteria o
  notification_failure_criteria n
  inherits_parent 1
  }
  因为inherits_parent指令开启,所以A和D之间的依赖关系测试通过后,才会进行F和D之间的检查。
  依赖关系可以被多层继承。
  (注释:
  define servicedependency{
   dependent_host_namehost_name
   dependent_hostgroup_namehostgroup_name
   dependent_service_descriptionservice_description
   host_name host_name
   hostgroup_namehostgroup_name
   service_descriptionservice_description
   inherits_parent [0/1]
   execution_failure_criteria[o,w,u,c,p,n] o是在OK状态下失败.w是WARNING u是unknow,c是CRITICAL p是 pending state 未检查状态 n是none
   notification_failure_criteria[o,w,u,c,p,n]
   dependency_periodtimeperiod_name
   }
  )
  二、主机依赖=====================================》
  主机依赖和服务依赖很相似,都是不可以继承。主机依赖检查的是宕机 down 和不可达unreache. up
  一个主机可以依赖多个。
  主机依赖不继承。
  主机依赖可以压制执行和通知。
  主机依赖可以指定依赖期间。
  一下举例----------------------》

  define hostdependency{
  host_name HostA
  dependent_host_name HostC
  notification_failure_criteria d
  }
  
  define hostdependency{
  host_name HostB
  dependent_host_name HostC
  notification_failure_criteria d,u
  }
  
  define hostdependency{
  dependent_host_name host_name
  dependent_hostgroup_name hostgroup_name
  host_name host_name
  hostgroup_name hostgroup_name
  inherits_parent [0/1]
  execution_failure_criteria[o,d,u,p,n]  o是UP状态,d是down状态,u是unreache  p是pending 未检测状态
  notification_failure_criteria [o,d,u,p,n]
  dependency_period timeperiod_name
   }


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663221-1-1.html 上篇帖子: Nagios监控平台完全攻略 (三) 下篇帖子: Linux下Nagios的安装与配置 (一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表