Nagios - 是否可以在任何给定时刻使用命令强制检查所有主机?

Nagios - 是否可以在任何给定时刻使用命令强制检查所有主机?

我已经修复了许多服务器上的问题,这些问题表明 Nagios 上存在错误,但由于某种原因,即使问题已修复,警报仍然出现。所以我想知道,有没有办法强制检查所有主机?

答案1

目前为止最简单的方法就是重启 Nagios。重启后它将开始新的检查周期。

答案2

所以我想知道,有没有办法强制检查所有主机?

SCHEDULE_FORCED_HOST_SVC_CHECKS外部命令就是您正在寻找的。

要获取所有主机,请查看MK 实时状态

# echo -e 'GET hosts\nColumns: host_name' | unixcat /usr/local/nagios/var/rw/live

然后通过管道传输SCHEDULE_FORCED_HOST_SVC_CHECKS命令:

echo -e 'GET hosts\nColumns: host_name' | unixcat /usr/local/nagios/var/rw/live | while read host; do echo "[$(date +%s)] SCHEDULE_FORCED_HOST_SVC_CHECKS;$host;$(date +%s)\n" $(date +%s) >> /usr/local/nagios/var/rw/nagios.cmd; done

答案3

下面是基于 Nagios 示例脚本和外部命令“SCHEDULE_FORCED_HOST_SVC_CHECKS”的 bash 脚本:

#!/bin/sh
# This is a sample shell script showing how you can submit the SCHEDULE_HOST_SVC_CHECKS command
# to Nagios. Adjust variables to fit your environment as necessary.

now=`date +%s` commandfile='/usr/local/nagios/var/rw/nagios.cmd'

for i in hosts/*.cfg
        do
                SITE=$(grep host_name $i | head -1 | sed 's/host_name//' | tr -d '[:blank:]')
                /usr/bin/printf "[%lu] SCHEDULE_HOST_SVC_CHECKS;${SITE};1110741500\n" $now > $commandfile
        done

答案4

https://github.com/joshforcier/nagiosForceImmediateCheck

这是一个 Nagios XI 组件,用于强制立即检查多个主机/服务。

相关内容