我正在尝试通过监视 si 来检测磁盘抖动,因此来自 vmstat 命令。我正在使用 nagios 监控其他服务,并且每 5 分钟后进行一次服务检查。对于此抖动服务,我希望 nagios 应每 20 分钟检查一次,如果返回的状态不正常(即警告或严重),则应每 3 分钟检查一次抖动服务,直到服务返回的状态变为 OK。所有其他服务的服务检查时间保持不变。
我是 Nagios 的新手,对此的任何帮助将不胜感激。
qua*_*nta 15
假设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
Run Code Online (Sandbox Code Playgroud)
对于特殊服务,您需要在 中为其定义不同的模板/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
...
}
Run Code Online (Sandbox Code Playgroud)
注意以下几点:
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
}
Run Code Online (Sandbox Code Playgroud)
您可能还需要定义服务升级以notification_interval
根据服务状态更改,如下所示:
define serviceescalation{
host_name xx
service_description yy
last_notification 0
notification_interval 10
escalation_options [w,u,c]
contact_groups admins
}
Run Code Online (Sandbox Code Playgroud)
这意味着当服务处于 WARNING、UNKNOWN 或 CRITICAL 状态时使用此服务升级。您现在有一个新的通知间隔:10 分钟。