Я исправил много проблем на серверах, которые указывали на ошибки в Nagios, но по какой-то причине предупреждение все еще отображается, хотя проблема была устранена. Итак, мне было интересно, есть ли способ принудительно проверить все хосты?
Самый простой способ - просто перезапустить Nagios. После перезапуска начнется новый цикл проверки.
Так что мне было интересно, есть ли способ принудительно проверить все хосты?
SCHEDULE_FORCED_HOST_SVC_CHECKS
внешняя команда - это то, что вы ищете.
Чтобы получить всех своих хостов, взгляните на МК Livestatus:
# 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
Вот сценарий bash, основанный на образце сценария Nagios и внешней команде "SCHEDULE_FORCED_HOST_SVC_CHECKS":
#!/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
https://github.com/joshforcier/nagiosForceImmediateCheck
Вот компонент Nagios XI для принудительной немедленной проверки нескольких хостов / служб.