我正在尝试通过监控 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 分钟。