escalations限制Nagios报警次数

如果服务器出现故障而未能及时的解决,Nagios就会不断的发送告警信息,通过escalations可以限制Nagios报警次数
我在学习Nagios时基本通过配置文件来定义监控服务,host和service都定义在一个配置文件里,很少使用NagiosQL
以下为一个监控机的配置文件内容:

######以上省略N行######
define host{
        host_name                       WWW-Server
        alias                                 WWW-Server
        address                            10.15.72.76
        check_command                check-host-alive
        max_check_attempts         5    ;检查多少次,依然有问题时告警。nagios3.0.3配置里是没有这行的,默认就是3。好像2.x版本的有,不过我没用过2.x
        check_period                     24x7
        notification_interval           10
        notification_period             24x7
        notification_options            d,u,r
        notifications_enabled          1
        contact_groups                 admin1   ;这行也是默认情况下没有的。可填可不填,这里是为了区分出错可以给给chengnan组里的用户发短信发邮件。
        }
######中间省略N行######
define service{
        host_name                        WWW-Server
        service_description             Check_HTTP
        check_command                 check_http
        max_check_attempts          10
        normal_check_interval         3  ;监控周期。有的文档里描述这行的单位是秒,但我试出来的是分钟。这行默认配置里也没有,默认好像是10分钟。
        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
        }
######以下省略N行######

Contacts.cfg内容:

定义联系人和联系人组。我定义了三个人,两个组。前两个人在第一组里,第三个人在第二组里。

#### 定义第一个联系人
define contact{            ;     
        contact_name      user1
        use               generic-contact
        alias              Nagios Admin
        service_notification_commands   service-by-sms,notify-service-by-email  ;短信和邮件告警。
##service-by-sms是我用来发短信的命令,默认情况下,这个命令是commands.cfg里没有的。
##所以加完这个配置后,在commands.cfg定义这个命令之前,nagios是无法正常restart的。
        host_notification_commands      host-by-sms,notify-host-by-email  
        email           [email protected]
        pager             150    ;手机号码
        }
### 定义第二个联系人
define contact{            ;     
        contact_name       user2
        use               generic-contact
        alias              Nagios Admin   
        service_notification_commands   service-by-sms,notify-service-by-email
        host_notification_commands      host-by-sms,notify-host-by-email      
        email            [email protected]
        pager             137xxxxxxxx
        }
#### 定义第三个联系人
define contact{            ;     
        contact_name      user3
        use               generic-contact
        alias              Nagios Admin    
        service_notification_commands   service-by-sms,notify-service-by-email
        host_notification_commands      host-by-sms,notify-host-by-email      
        email            [email protected]
        pager             139
        }
#### 定义联系人组
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 user1,user2 
        }
define contactgroup{
        contactgroup_name       test_group
        alias                   Test
        members                 user3
        }


创建一个配置文件escalations.cfg
在/usr/local/nagios/etc/objects/目录下新建文件escalations.cfg,文件内容如下:

define hostescalation{                  //hostescalation 控制 notify-host-by-email
host_name               Nagios-linux      //被监控主机名称,与Hosts.cfg中一致
first_notification         4               // 第n条信息起,改变频率间隔
last_notification          0              // 第n条信息起,恢复频率间隔,0代表远不恢复
notification_interval    5                         // 通知间隔(分)
contact_groups          admins        //这个组跟contactgroups.cfg里面要一致
}
//说明:从第4条告警信息起至服务器恢复前,告警信息发送至sysadmin组下的联系人,告警间隔为30分>钟1条信息。
define serviceescalation{      //serviceescalation 控制 notify-service-by-email
host_name                Nagios-linux      //被监控主机名称,与Hosts.cfg中一致
service_description     Check_HTTP,Check_Jetty     //被监控服务名称,与Services.cfg中>一致
first_notification         4
last_notification          0
notification_interval    5
contact_groups          admins
}

改配置文件nagios.cfg
在配置文件中添加如下内容

######以上省略N行######
cfg_file=/usr/local/nagios/etc/objects/escalations.cfg
######以下省略N行######

检查配置文件是否有错误

[root@localhost objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


你可能感兴趣的:(nagios,escalations)