楼主所说的南北互联问题, 其实是个普遍问题。
其实现在好多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/
阅读(2649) | 评论(0) | 转发(0) |