nagios实现定时发送通知

来源:互联网 发布:mac无法正常关机 编辑:程序博客网 时间:2024/05/13 01:00

最近在做nagios监控,需要实现定时通知功能。找了一些资料,后边加上了自己配置的详细过程。

这个是原文:

在Nagios配置基础中,我已介绍了通知配置方法.当某个受监控系统不再可达时,Nagios会发送告警通知.默认情况下,Nagios以邮件方式,将通知发送给指定联系人.在本章中,你将学会如何配置系统,实现在不同时间段,发送通知给不同管理员.    Nagios通知默认配置介绍    在学习如何配置之前,我们先简单介绍一下默认配置.配置文件位于/etc/nagios/objects/contacts.cfg,默认情况下,文件中包含一个联系人与一个联系组.具体内容如下所示:    efine contact{    contact_name   nagiosadmin    use        generic-contact    alias          Nagios Administration    email          nagios@localhost    }    define contactgroup{    contactgroup_name  admins    alias              Nagios Administrators    members        nagiosadmin    }    在默认配置中,告警几乎不怎么起作用.要让系统将通知发送至某个收件箱,用户需要有指定的电子邮箱,并经常检查通知邮件.在通知邮件发出,到用户打开邮箱阅读,可能会经过很长的时间.    让Nagios在不同时间段发送通知    默认情况下,所有告警会昼夜不停的发送.你可以通过建立多种方案来实现在不同时间段发送通知.我们从/etc/nagios/objects/timeperiods配置文件开始介绍,此文件用于设定时间段.举例说明,你可以通过以下设置,定义“夜晚”的时间段:    define timeperiod{    timeperiod_name    night    alias              do not disturb    sunday             00:00-06:00    monday             00:00-06:00    tuesday            00:00-06:00    wednesday          00:00-06:00    thursday           00:00-06:00    friday             00:00-06:00    saturday           00:00-06:00    }    我们可以利用这些时间段,给不同用户帐号设置不同值守时间,并为不同事件设置不同的动作.这样可以确保告警在半夜也可以发送给适当的人.    如果已经通过定义contacts.cfg定义了多个通信帐号,并按照上面介绍的方法定义了时间段,我们现在可以设置让任何主机或者服务,在特定时间段内,将通知发送给不同的人.    因此,你可以根据一天的时间段,为不同的主机定义不同的动作,将事件信息发送给不同的管理员.例如,以下配置信息可以让你将“check-host-alive”(检测主机在线情况)检查任务设置成在夜里每一小时检查一次,当然,你可以调整检查频率,实现每15分钟检查一次:    define host{    host_name                my-server    hostgroups               linuxservers    ...    check_command            check-host-alive    ...    check_period    night    contact  nagiosadmin    notification_interval   60    notification_period      night    notification_options     d,u    此配置与默认配置一起使用,可以针对夜晚时间段进行主机监控.    现在,你已经知道如何利用多Nagios联系名单与时间段定义,建立自定义告警通知.活用这些技巧可以让你确保适合的人在适合的时间,收到正确的Nagios通知.

下面是一些配置过程:

指定服务,指定联系人,指定通知方式。

为了实现对指定服务,实现指定联系人的通知方式,

在 timeperiods.cfg 中加入发送通知时间

define timeperiod{

        timeperiod_name notify_at_8

        alias once_a_day

        sunday 08:00-09:00

        monday 08:00-09:00

        tuesday 08:00-09:00

        wednesday 08:00-09:00

        thursday 09:00-10:00

        friday 08:00-09:00

        saturday 08:00-09:00

}

定义需要通知的联系人:

define contact {

        contact_name notifyadmin

                alias wu

                use generic-contact

                service_notification_commands   notify-service-by-qqemail   #通知命令

                email XXXX@163.com

}

我们在指定的主机中加入服务

define service{

        host_name localhost

                use local-service

                service_description notify_at_800 

                contacts   notifyadmin   # 指定联系人

                check_command   notify_at_800  #定义一个服务检查命令来触发通知发送。

                check_period    notify_at_8   #定义检测时间。 

                notification_period  notify_at_8  #检测间隔

   

}

重启服务就可以实现在指定时间段发送消息。




0 0
原创粉丝点击