Как заставить check_nrpe ждать завершения выполнения удаленного скрипта?

Как заставить check_nrpe ждать завершения выполнения удаленного скрипта?

У меня есть скрипт python, который используется как плагин для NRPE. Этот скрипт проверяет, запущен ли процесс на виртуальной машине, выполняя однострочный SSH с прикрепленным "ps ax | grep process". При ручном запуске скрипта он работает так, как и ожидалось, и возвращает одну строку вывода для NRPE, а также статус, основанный на том, запущен ли процесс.

Когда я пытаюсь запустить команду setup для выполнения этого скрипта (с моего сервера Nagios), янемедленнополучаю вывод "NRPE: Невозможно прочитать вывод", однако когда я запускаю скрипт вручную, проходит около секунды, прежде чем он возвращает вывод. Другие команды выполняются нормально, так что, похоже, NRPE нужно подождать секунду или две для вывода, а не сразу давать сбой, но я не смог найти способа сделать это; есть какие-нибудь советы?

PS: Виртуальные машины доступны только с хост-машины, поэтому для проверки процесса необходим плагин nrpe для подключения по SSH с хоста на виртуальную машину.

решение1

Вы можете изменить время ожидания, следуя инструкциямздесьили поиск тайм-аута вдокументация nrpe, хотя я не думаю, что это ваша проблема, иначе вы бы увидели такую ​​ошибку:

CHECK_NRPE: Socket timeout after 270 seconds.

Вероятно, также существует плагин Nagios, который вернет нужные вам данные, которые уже были записаны.

решение2

Почему бы не использоватьпроверка_процедурыплагин?

На виртуальной машине определите команду для вашей службы в /etc/nagios/nrpe.cfg:

command[check_<service_name>]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C <service_name>

и с сервера Nagios:

define service{
    use                     critical-service
    host_name               xx
    service_description     <service_name>
    check_command           check_nrpe!check_<service_name>
    event_handler           autostart_<service_name>!xx
    process_perf_data       0
    contact_groups          admin
}

пример результата:

# su - nagios -s /bin/bash
-bash-3.2$ /usr/local/nagios/libexec/check_nrpe -H xx -c check_<service_name>
PROCS OK: 1 process with command name '<service_name>'

решение3

Я думаю, что тайм-аут по умолчанию составляет около 10 секунд, так что, вероятно, это не то.

Если вы используете ssh для выполнения проверки, помните, что nrpe, вероятно, запущен как пользователь "nagios" (в зависимости от параметров установки). Имеет ли этот пользователь правильные ключи и параметры ssh?

Связанный контент