Назад | Перейти на главную страницу

Nagios - Можно ли принудительно проверить все хосты с помощью команды в любой момент?

Я исправил много проблем на серверах, которые указывали на ошибки в 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 для принудительной немедленной проверки нескольких хостов / служб.