使用 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);
我向 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);