Я использую плагин Nrpe на Ubuntu из обмена nagios check_mysql_slavestatus.
Вручную работает с:
root@Bastion-01:/usr/local/nagios/libexec# ./check_mysql_slavestatus -H Slave-ip -P 3306 -u root -p xxxxx -w 10 -c 20
OK: Slave SQL running: Yes Slave IO running: Yes / master: 172.31.20.9 / slave is 0 seconds behind master | delay=0s
Аналогично работает из Master DB
root@DB-01:/usr/lib/nagios/plugins# ./check_mysql_slavestatus -H Slave-ip -P 3306 -u root -p xxxxx -w 10 -c 20
OK: Slave SQL running: Yes Slave IO running: Yes / master: 172.31.20.9 / slave is 0 seconds behind master | delay=0s
Получение ошибки
root@Bastion-01:/usr/local/nagios/libexec# ./check_nrpe -H Master-ip -c check_mysql_slavestatus
NRPE: Unable to read output
На сервере Nagios
В Command.cfg
define command{
command_name check_mysql_slavestatus
command_line $USER1$/check_mysql_slavestatus -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$ -w $ARG4$ -c $ARG5$
}
vim /usr/local/nagios/etc/objects/nagios_DB1.cfg
define service{
use generic-service
host_name DB-01
service_description check_mysql_slavestatus
check_command check_nrpe!check_mysql_slavestatus!hostname!portnumber!username!passwd!15!50
}
Вывод на Nagios
check_mysql_slavestatus
CRITICAL 06-09-2015 13:51:51 0d 2h 45m 12s 3/3 (No output on stdout) stderr: execvp(/check_nrpe, ...) failed. errno is 2: No such file or directory
Пожалуйста, дайте мне знать, где я ошибаюсь
Подписан документ по устранению неполадок https://assets.nagios.com/downloads/nagiosxi/docs/NRPE-Troubleshooting-and-Common-Solutions.pdf
nagios ALL= NOPASSWD: sudo /usr/lib/nagios/plugins/check_mysql_slavestatus
Похоже, вы не совсем понимаете, как работает NRPE. У вас нет check_nrpe
плагин установлен на вашем сервере Nagios, или путь к нему неверен. Трудно сказать наверняка, не увидев определение вашей команды check_nrpe.
Кроме того, вы несколько сбиты с толку тем, как передавать макросы в check_nrpe ...
check_nrpe!check_mysql_slavestatus!hostname!portnumber!username!passwd!15!50
средства:
ARG1 = check_mysql_slavestatus
ARG2 = hostname
ARG3 = port
ARG4 = user
ARG5 = pass
ARG6 = 15
ARG7 = 50.
Это почти наверняка не то, что вы собираетесь / хотите, если ваша команда check_nrpe не принимает 7 аргументов (маловероятно).
Измените это на что-то вроде check_nrpe!check_mysql_slavestatus hostname portnumber username passwd 15 50
было бы более правильно, но это будет работать, только если вы настроили NRPE для соответствия. Он должен принимать аргументы команды, и ваше определение команды check_nrpe должно использовать -a $ARG1
в конце.
Кроме того, вам необходимо определить check_mysql_slavestatus
команда, которая использует все эти аргументы в конфигурации NRPE на удаленном конце, а не на сервере Nagios.
Было бы полезно прочитать Документация NRPE очередной раз.