使用 Nagios 被动检查检测断开连接的主机

Detecting disconnected host with Nagios passive check

我向 Nagios 注册了主机列表及其服务。 主机使用被动检查通知 Nagios。 一切正常,但当主机和 Nagios 之间的通信丢失时出现问题,所有服务都保持相同状态(例如 ok)并且没有迹象表明主机停止通知 Nagios。

有什么想法吗?

提前致谢...

您正在寻找 "Freshness checking"。

当最后收到的检查变为 'stale' 时执行新鲜度检查。

define service{
    use                     generic-service
    host_name               My_Server
    service_description     CPU Load
    active_checks_enabled   1
    passive_checks_enabled  1
    check_command           check_active
    check_interval          99999999
    check_period            24x7
    check_freshness         1
    freshness_threshold     600
    }

值得一提的是,当服务违反新鲜度阈值时,会使用 check_command 参数中定义的命令对该服务执行主动检查。

我创建了一个自定义命令,可以立即向 Nagios 发出严重警报,而无需实际执行任何检查。 (不需要,因为命令只会在最后一次检查变为 'stale' 时触发)。

#!/usr/bin/perl
print "CRITICAL: Server has not checked in"\n; exit(2);

以上内容应保存在您的 "libexec" 文件夹下 "check_active"。

在您的 commands.cfg 文件下定义一个命令,如下所示:

define command{
     command_name      check_active
     command_line      $USER1$/check_active 
     }

只要 Nagios 有权 运行 您的新命令,如果超过新鲜度阈值,该服务就会变得关键。

是的,我发现了同样的问题,在更新了新鲜度检查并实施了虚拟脚本之后,它现在可以正常工作了。 谢谢。

#!/usr/bin/perl 打印“严重:服务器尚未检查 in\n”;退出(2);