Nagios 根据服务状态检查服务频率

Nagios 根据服务状态检查服务频率

我正在尝试通过监控 si 来检测磁盘抖动,因此使用 vmstat 命令。我正在使用 nagios 监控其他服务,服务检查每 5 分钟进行一次。对于此抖动服务,我希望 nagios 每 20 分钟检查一次,如果返回的状态不正常(即警告或严重),则每 3 分钟检查一次抖动服务,直到服务返回的状态变为正常。所有其他服务的服务检查时间保持不变。

我是 Nagios 的新手,如能得到任何帮助我将非常感谢。

答案1

假设该interval_length指令默认设置为 60:

$ grep interval_length /usr/local/nagios/etc/nagios.cfg 
# This value works of the interval_length you specify later.  If you leave
# actual seconds rather than a multiple of the interval_length variable.
interval_length=60

对于特殊服务,您需要在以下位置为其定义不同的模板/usr/local/nagios/etc/objects/templates.cfg

define service{
        name                            special-service    
        ...
        max_check_attempts              3           
        normal_check_interval           20         
        retry_check_interval            3           
        notification_interval           60   
        ...   
        }

注意:

  • normal_check_interval:此服务正常情况下每20分钟检查一次
  • retry_check_interval:当服务变为非正常状态时,在安排重新检查之前要等待的分钟数。请注意,如果服务已重试max_attempts多次而其状态没有变化,它将恢复为按check_interval速率安排。

并将此模板用于您的服务:

define service{
    use                     special-service
    host_name               xx
    service_description     yy
    check_command           zz
    contact_groups          admins
    }

您可能还需要定义一个服务升级根据服务状态进行更改notification_interval,如下所示:

define serviceescalation{
    host_name               xx
    service_description     yy
    last_notification       0
    notification_interval   10
    escalation_options      [w,u,c]
    contact_groups          admins
    }

这意味着当服务处于“警告”、“未知”或“严重”状态时,将使用此服务升级。现在您有了新的通知间隔:10 分钟。

相关内容