我注册了Nagios的主机及其服务列表。 主机使用被动检查通知Nagios。 一切正常,但在主机和Nagios之间通信丢失时出现问题,所有服务保持相同状态(例如ok),并且没有迹象表明主机停止通知Nagios。
有什么想法吗?
提前致谢...
答案 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);