Chinaunix首页 | 论坛 | 博客
  • 博客访问: 596783
  • 博文数量: 118
  • 博客积分: 2114
  • 博客等级: 大尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 00:02
文章分类

全部博文(118)

文章存档

2019年(1)

2018年(4)

2017年(1)

2016年(6)

2015年(1)

2014年(1)

2013年(5)

2012年(4)

2011年(17)

2010年(13)

2009年(65)

分类: LINUX

2009-07-16 10:55:08

巧用escalations限制Nagios报警次数 - [Nagios]

Tag:

:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://vincent-nan.blogbus.com/logs/36900981.html

Nagios是非常强大的一款监控工具,尤其是它的告警功能,现在网上实现的形式多种多样如结合移动139邮箱、Fetion、MSN等, 但是如果服务器出现故障而未能及时的解决,Nagios就会不断的发送告警信息,实在令人头疼。现在用如下方法可以解决Nagios的告警次数问题。

系统环境:CentOS 5.2
Nagios版本:3.0.6
Nagios安装路径:/usr/local/nagios
配置文件内容定义:#基本的配置就不再进行注释了。

hosts.cfg
define host{

        host_name                       WWW-Server
        alias                                 WWW-Server
        address                            193.1.16.100
        check_command                check-host-alive
        max_check_attempts         5
        check_period                     24x7
        notification_interval           10
        notification_period             24x7
        notification_options            d,u,r
        notifications_enabled          1
        contact_groups                 chengnan
        }

Services.cfg
define service{
        host_name                        WWW-Server
        service_description             Check_HTTP
        check_command                 check_http
        max_check_attempts          10
        normal_check_interval         3
        retry_check_interval            2
        check_period                      24x7
        notification_interval             5
        notification_period              24x7
        notification_options            w,u,c,r
        contact_groups                  admin
        }
       
define service{
        host_name                      WWW-Server
        service_description           Check_Jetty
        check_command               check_tcp!8080
        max_check_attempts        10
        normal_check_interval       3
        retry_check_interval          2
        check_period                    24x7
        notification_interval           5
        notification_period            24x7
        notification_options          w,u,c,r
        contact_groups                admin
        }

Contacts.cfg
define contact{

        contact_name                          chengnan
        alias                                        chengnan
        service_notification_period         24x7
        host_notification_period             24x7
        service_notification_options        w,u,c,r
        host_notification_options           d,u,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                                        chengnan@139.com           //手机邮箱

        }

define contactgroup{
        contactgroup_name       chengnan
        alias                             Nagios Administrators
        members                      chengnan
        }

除此之外再定义一个联系人
define contact{
        contact_name                           chengnan_cor
        alias                                         chengnan_cor
        service_notification_period         24x7
        host_notification_period             24x7
        service_notification_options        w,u,c,r
        host_notification_options           d,u,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                                        chengnan@company.com     //公司邮箱
        }

define contactgroup{
        contactgroup_name       sysadmin
        alias                             sysadmin
        members                      chengnan_cor
        }


然后创建一个配置文件:
vi escalations.cfg
escalations有自动调整;不断增加; 逐步上升等意思,本身配置文件的功能是当服务在某一告警次数前没有恢复,告警频率周期将会缩短,同时将告警信息发送至指定联系人。
其内容为:
define hostescalation{
host_name               WWW-Server            //被监控主机名称,与Hosts.cfg中一致
first_notification         4                            // 第n条信息起,改变频率间隔
last_notification          0                            // 第n条信息起,恢复频率间隔
notification_interval    30                          // 通知间隔(分)
contact_groups          sysadmin               
}

说明:从第4条告警信息起至服务器恢复前,告警信息发送至sysadmin组下的联系人,告警间隔为30分钟1条信息。


define serviceescalation{
host_name                WWW-Server                           //被监控主机名称,与Hosts.cfg中一致
service_description     Check_HTTP,Check_Jetty           //被监控服务名称,与Services.cfg中一致
first_notification         4
last_notification          0
notification_interval    30
contact_groups          sysadmin
}


保存

修改nagios.cfg
vi nagios.cfg
添加:
cfg_file=/usr/local/nagios/etc/objects/escalations.cfg

检查nagios配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

重新启动nagios服务:
service nagios restart

测试:
服务器启动后停掉被监控测试机的相应服务,确认告警信息是否按照设置发送至不同信箱

后记
escalations 这个功能官方给的定义是notification的扩充,使notification变得更加灵活,方便。文中我使用的方法算是耍了个小聪明,将第四条告 警信息后的所有信息全部发送至我公司邮箱直至服务器恢复(recovery的信息还是会发送至手机的),从而实现限制告警信息发送至手机的条数。

官方文档地址:

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