运维百科

Nagios巧用escalations发送报警到不同联系人并限制报警次数

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

监控主机:
define host{
       use                          linux-server,host-pnp
       host_name                    localhost
       alias                           localhost
       address                       127.0.0.1
       contacts                               haojituan
       }
监控服务:
define service{
       use                          local-service,srv-pnp
       host_name                     localhost
       service_description               Host Alive
       check_command               check-host-alive
       contacts                      haojituan
       }
define service{
       use                          local-service,srv-pnp
       host_name                    localhost
       service_description             Users
       check_command               check_local_users!20!50
       contacts                      haojituan
       }
define service{
       use                          local-service,srv-pnp
       host_name                    localhost
       service_description             CPU
       check_command                 check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
       contacts                      haojituan
       }
定义联系人:
define contact{
        contact_name                    haojituan
        use                             generic-contact
        alias                           haojituan
        email                           478641330@qq.com
        }
define contact{
        contact_name                    sysadmin
        use                             generic-contact
        alias                           sysadmin
        email                           admin@idcyunwei.org
        }


escalations有自动调整;不断增加; 逐步上升等意思,本身配置文件的功能是当服务在某一告警次数前没有恢复,告警频率周期将会缩短,同时将告警信息发送至指定联系人。

其内容为:

然后创建一个配置文件:
# vim /usr/local/nagios/etc/objects/escalations.cfg

define hostescalation{  
        host_name localhost                 //被监控主机名称,与Hosts.cfg中一致  
        first_notification 4                // 第n条信息起,改变频率间隔  
        last_notification 0                 // 第n条信息起,恢复频率间隔  
        notification_interval 30            // 通知间隔(分)  
        contact_groups sysadmin             //新的告警邮件地址
}  
 
说明:从第4条告警信息起至服务器恢复前,告警信息发送至sysadmin组下的联系人,告警间隔为30分钟1条信息。
define serviceescalation{  
        host_name localhost                         //被监控主机名称,与Hosts.cfg中一致  
        service_description Uptime,CPU Load, Users  //被监控服务名称,与Services.cfg中一致  
        first_notification 4  
        last_notification 0  
        notification_interval 30  
        contact_groups sysadmin                      //新的告警邮件地址
 }
修改nagios.cfg
# vim /usr/local/nagios/etc/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的信息还是会发送至第一联系人:478641330@qq.com的),从而实现限制告警信息发送至手机的条数。这样,用Escalations限制Nagios报警次数并将重要信息发送给维护人员的功能就成功实现了。


本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

5
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址