check_mysql_slavestatus RPE: Не мог считать вывод

я использую плагин 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

энергия/etc/sudoers

nagios ALL= NOPASSWD: sudo /usr/lib/nagios/plugins/check_mysql_slavestatus
2
задан 9 September 2015 в 09:24
1 ответ

Похоже, вы не совсем понимаете, как работает 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 .

2
ответ дан 3 December 2019 в 11:37

Теги

Похожие вопросы