я использую плагин 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
Так же это работает от Ведущего устройства 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$
}
энергия/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 номер порта имя пользователя passwd 15 50
было бы более правильным, но это будет работать, только если вы настроили NRPE для соответствия. Он должен принимать аргументы команды, и ваше определение команды check_nrpe должно использовать в конце -a $ ARG1
.
Кроме того, вам необходимо определить команду check_mysql_slavestatus
, которая использует все эти аргументы в конфигурации NRPE на удаленном конце, а не на сервере Nagios.
Может быть полезно еще раз прочитать документацию NRPE .