Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5286693
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2007-11-04 22:31:53

楼主所说的南北互联问题,  其实是个普遍问题。
其实现在好多IDC都是双线或者多线机房,一般网络延时的问题,不会有楼主所说的那么大。

如果真的是网络状况很糟,抖动的非常厉害的话,就只能像open所说的,对告警进行一下压制,达到设定的次数后,才会让Nagios形成真正的告警信息。
(当然,这样做肯定会对告警的及时性产生一些影响)

Nagios利用一下几个参数来实现对告警信息的压制处理:

以下是Nagios Version 3.0a4 中,generic-service 模板中配置的默认值。
以下参数在各个service的配置中,都可以按需更改的。

        max_check_attempts              3                       ; Re-check the service up to 3 times in order to determine its final (hard) state
        normal_check_interval           10                      ; Check the service every 10 minutes under normal conditions
        retry_check_interval            2                       ; Re-check the service every two minutes until a hard state can be determined

其中,
max_check_attempts为形成真正告警信息前,需要check的次数;
retry_check_interval为在确定告警时,check的时间间隔;
normal_check_interval为正常情况下,check的时间间隔。

这样,就可以对网络状况不好地点所在主机的Service的 max_check_attempts设置稍大一些,以达到压制的目的。
不过具体的情况要根据实际的经验值反复测试才行,否则过大或过小都难以满足要求。


解决此问题的方式应该很多,只要大家开动脑筋,仔细研究的话,一定会有很多好的方法的。
比如说,可以自定义Notification 的脚本,在脚本中自己实现的对不同类型的告警信息进行压制处理。
此处只是抛砖引玉,期望有高手参与讨论。:)

 

 

nagios hotst和server关系配置

Host and Service Dependencies

当监控的host或者service之间有依赖关系的时候,可以通过定义dependence来让nagios知道应该通知什么。

比如我这里的服务器都在idc托管,而我的nagios却是运行在公司的一台服务器上面。这样,有时候可能就需要考虑依赖关系了。比如当公司的网络出问题的时候(事实上经常出现),比如断网,总不能让他也认为是idc托管的服务器出问题了而给你发通知吧。host dependence正好可以解决这个问题。

比如 A 是idc的,B 是公司的网关(或者某个应该一直在线的服务器,比如sina.com.cn)。当nagios检测到A连不上的时候,他会根据dependence来检测B,如果B也连不上了,那么就只通知你B连不上了。

大概的配置如下

   1.
      define hostdependency{
   2.
              host_name                       B
   3.
              dependent_host_name             A
   4.
              notification_failure_criteria   d,u
   5.
              }

Notification Escalations

escalations 的意思就是扩大。整个这个的意思应该就是扩大通知范围。之前一直没理解是什么意思,今天看了才明白。其实就是定义出问题的时候,什么时候扩大通知。

比如A服务器挂了,他对应的contactgroup就会立刻得到通知。但是,如果这个组里面的人在睡觉或者在做什么事情忽略了这个通知,怎么办呢?当然nagios会通知多次,但是如果这些都忽略掉了或者没有收到怎么办?这样这个escalations就有作用了,他可以定义几次通知 contatgroup之后就开始通知别的人。还有一些别的功能,就不多说了。
http://blog.wdicc.com/wordpress/nagios-conf/



 

阅读(2608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~