Я обновил сервер с Debian 8 до Debian 9. На сервере был запущен Nagios 3 для выполнения некоторых проверок, но эта работа была прекращена. Естественная замена - Icinga (версия 1).
Я установил ее, скопировал и скорректировал файлы конфигурации. Большая часть работала напрямую, но удаленные проверки NRPE не работают.
Прежде всего я использовал команду check_nrpe_1arg
, но она, похоже, была изменена на check_nrpe
, чтобы было ясно, что она не принимает аргументы (единственный аргумент - удаленный имя команды).
Это исправило конфигурацию для запуска icinga. Но все проверки NRPE находятся в состоянии unknown с таким сообщением:
CHECK_NRPE: Receive header underflow - only -1 bytes received (4 expected).
Я выполнил команду из командной строки bash, чтобы проверить, работает ли она правильно, и это так кажется.
$ /usr/lib/nagios/plugins/check_nrpe -H 192.168.4.1 -c check_users
USERS OK - 0 users currently logged in |users=0;5;10;0
Но почему-то из Icinga команда не работает.
Что ж, я нашел проблему.
Я использовал SSL из командной строки, но не из конфигурации Icinga. Я перепутал исполняемый файл check_nrpe
с определением команды с тем же именем.
Это конфигурация NRPE из версии 3 (поставлялась с Debian 9):
# this command runs a program $ARG1$ with no arguments and disables SSL support
define command {
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -n
}
# this command runs a program $ARG1$ with no arguments and enables SSL support
define command {
command_name check_nrpe_ssl
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Обратите внимание на -n
параметр на первом. Я перевел все Nagios 3 использования check_nrpe_1arg
на check_nrpe
, но это должно быть check_nrpe_ssl
.
Я сделал это, и теперь это работает.