≡菜单

如何为维护时段定义Nagios时间周期排除

问: 我已经设置了nagios来监视我的服务器。但是,我对该服务器执行一些常规的日常维护。我不’希望Nagios在此每日常规停机时间窗口内向我发送任何通知。我该如何实现?

A: 您可以使用此处显示的任何一种方法来处理这种情况。默认情况下,您’会看到以下24×timeperiod.cfg文件中的7个时间段。

这24×您的服务定义中可以将7个timeperiod用于check_period和notification_period。默认情况下,如果您不’t定义check_period和notification_period,它继承了这24个×默认服务模板的7个时间段。

$ vi /usr/local/nagios/etc/objects/timeperiod.cfg
define timeperiod{
        timeperiod_name 24x7
        alias           24 Hours A Day, 7 Days A Week
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
        }

方法1:定义具有特定时间范围的新时间段

第一种选择是使用您希望Nagios每天监视服务的特定时隙来定义一个新的时间段。

In the following example, it includes 2 a.m until midnight for every day. So, this 排除s midnight until 1:59 a.m.

$ vi /usr/local/nagios/etc/objects/timeperiod.cfg
define timeperiod{
        timeperiod_name 24x7-except-night-12-2
        alias           24x7 Except 00:00 - 02:00
        sunday          02:00-23:59
        monday          02:00-23:59
        tuesday         02:00-23:59
        wednesday       02:00-23:59
        thursday        02:00-23:59
        friday          02:00-23:59
        saturday        02:00-23:59
}

例如,如果您每天午夜至凌晨1:59之间的某个时间关闭HTTP服务器,则可以指定以上内容“24×7-except-night-12-2”服务定义中check_period和notification_period的时间周期,如下所示,用于您的特定服务定义。

$ vi /usr/local/nagios/etc/servers/devserver.cfg
define service{
        use                             generic-service
        host_name                       devserver
        service_description             HTTP
        contacts                        ramesh
        check_command                   check_http
        check_period                    24x7-except-night-12-2
        notification_period             24x7-except-night-12-2
        }

方法2:使用排除指令

First define a timeperiod for the time that you like to 排除. This is defined just like any other timeperiod. In this example, this timeperiod covers from 23:01 p.m until 2:00 a.m 上 ly for Friday.

$ vi /usr/local/nagios/etc/objects/timeperiod.cfg
define timeperiod{
        timeperiod_name 每周维护
        alias           Weekly Maintenance Windows
        friday          23:01-02:00
}

接下来,定义另一个要排除上述时间段的时间段。在以下示例中,我’ve created “24x7_except_maintenance”时间段,类似于24×7个时间段。除了这个还有“exclude” directive, which 排除d the above “weekly-maintenance” time period.

define timeperiod{
        timeperiod_name 24x7_except_maintenance
        alias           24x7 Except Weekly Maintenance
        排除         每周维护
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
}

这里的想法是,如果您使用“24x7_except_maintenance”您的服务定义中针对check_period和notification_period的timeperiod,它将在检查期间不检查或发送任何通知“weeekly-maintenance”该特定服务的时间段。

$ vi /usr/local/nagios/etc/servers/devserver.cfg
define service{
        use                             generic-service
        host_name                       devserver
        service_description             HTTP
        contacts                        ramesh
        check_command                   check_http
        check_period                    24x7-except_maintenance
        notification_period             24x7-except_maintenance
        }

警告:出于某些原因,我无法’使这种方法始终如一地工作。在某些情况下,我可以正常工作;在某些情况下,它无法正常工作’工作。经过进一步研究,我发现这是 已知错误.

方法3:定义具有多个时间范围的新时间段

您还可以使用逗号分隔的值为每天指定多个时间范围。在以下示例中,我’ve指定了几天的不同时间范围。

$ vi /usr/local/nagios/etc/objects/timeperiod.cfg
define timeperiod{
        timeperiod_name 多时隙
        alias           Multiple Time Slots
        sunday          00:00-18:00,20:00-24:00
        monday          00:00-18:00,20:00-21:00,23:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-20:00,22:00-24:00
        saturday        00:00-23:00
}

例如,如果您要按照上述多个时隙的规定,每天在不同时间关闭HTTP服务器。即如果您在上述未提及的时间段内将其降低“multiple-time-slots”值,您可以在HTTP服务定义的check_period和notification_period中指定这些值,如下所示。

$ vi /usr/local/nagios/etc/servers/devserver.cfg
define service{
        use                             generic-service
        host_name                       devserver
        service_description             HTTP
        contacts                        ramesh
        check_command                   check_http
        check_period                    多时隙
        notification_period             多时隙
        }

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 2 评论… 加一 }

  • 迪力·瓦尔玛 2013年9月27日,上午12:28

    你好
    很有用。

    您能告诉我如何在rehdat linux 64bit上配置nagios吗?

    提前致谢
    双唇

  • e 2015年12月10日,上午11:53

    嗨,很棒,但是我是GUI用户,我需要安排一项服务每晚关闭几个小时,我可以通过GUI来做到这一点吗?

发表评论