花蜻宽 发表于 2019-1-16 10:23:00

巧用escalations限制Nagios报警次数 - [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          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的信息还是会发送至手机的),从而实现限制告警信息发送至手机的条数。
  官方文档地址:http://nagios.sourceforge.net/docs/3_0/escalations.html

页: [1]
查看完整版本: 巧用escalations限制Nagios报警次数 - [Nagios