web-dev-qa-db-ja.com

check_mysql_slavestatus RPE:出力を読み取ることができません

私はnagiosexchangecheck_mysql_slavestatusからUbuntuでNrpeプラグインを使用しています。

手動でその作業から:

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$
}

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

vim/etc/sudoers

nagios ALL= NOPASSWD: Sudo /usr/lib/nagios/plugins/check_mysql_slavestatus
2
Ashish Karpe

NRPEがどのように機能するかを完全に理解していないようです。 Nagiosサーバーにcheck_nrpeプラグインがインストールされていないか、プラグインへのパスが間違っています。 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を使用する必要があります。

さらに、Nagiosサーバーではなく、リモートエンドのNRPE構成で、これらすべての引数を使用するcheck_mysql_slavestatusコマンドを定義する必要があります。

NRPEドキュメント をもう一度読むと役立つ場合があります。

2
Keith