用Escalations限制Nagios报警次数


 

用Escalations限制Nagios报警次数:

Nagios是一款强大的监控工具,特别是他的报警功能,但是如果服务器出现故障未及时解决,那么Nagio就不断得发送消息。该通过怎么样的方式限制Nagios报警次数呢?本文讲述的是限制Nagios报警次数技巧(Escalations)。

AD:

 

 

巧用escalations限制Nagios报警次数

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                                ysadmin 

 } 

 说明:从第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的信息还是会发送至手机的),从而实现限制告警信息发送至手机的条数。这样,用Escalations限制Nagios报警次数的功能就成功实现了。

相关内容

    暂无相关文章