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

时间:2016-06-05 15:44:01

标签: nagios

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

有什么想法吗?

提前致谢...

2 个答案:

答案 0 :(得分:1)

您正在寻找“新鲜度检查”。

当收到的最后一张支票变得“陈旧”时,会执行新鲜度检查。

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写出严重警报。 (它不需要,因为命令只会在最后一次检查变为“陈旧”时触发。)

#!/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有权运行您的新命令,如果违反新鲜度阈值,该服务将变得至关重要。

答案 1 :(得分:0)

是的,我发现了同样的问题,在更新新鲜度检查并实现虚拟脚本后,它现在按预期工作。 谢谢。

#!/usr/bin/perl 打印“关键:服务器尚未签入\n”;退出(2);