質問: いくつかの引数を指定して check_nrpe コマンドを実行すると、「CHECK_NRPE:デーモンから 0 バイトを受け取りました。リモート サーバー ログでエラー メッセージを確認してください。」この問題を解決するにはどうすればよいですか?
答え: 問題は非常に簡単です。デフォルトでは、check_nrpe は引数を取りません。以下に示すように、check_nrpe のコマンド ライン引数を有効にする必要があります。
check_nrpe エラー メッセージを確認する
テスト目的で、「CHECK_NRPE:デーモンから 0 バイトを受信しました。」を表示する次の check_nrpe コマンドを実行していると仮定します。 」エラー メッセージ。
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
リモート ホスト (上記の例では 192.168.1.20) で /var/log/messages を表示すると、nrpe エラー「エラー:含まれているコマンド引数を要求します!」が表示されます。 これは、check_nrpe がコマンド引数を受け取ることが有効になっていないことを示しています。
$ tail -f /var/log/messages Dec 5 11:11:52 dev-db xinetd[2536]: START: nrpe pid=24187 from=192.168.101.108 Dec 5 11:11:52 dev-db nrpe[24187]: Error: Request contained command arguments! Dec 5 11:11:52 dev-db nrpe[24187]: Client request was invalid, bailing out... Dec 5 11:11:52 dev-db xinetd[2536]: EXIT: nrpe status=0 pid=24187 duration=0(sec)
check_nrpe コマンド引数を有効にする
NRPE でコマンド引数を有効にするには、次の 2 つのことを行う必要があります。
1. –enable-command-args で NRPE を構成します
通常、NRPE をリモート ホストにインストールするときは、引数なしで ./configure を実行します。 NRPE デーモンでコマンド引数のサポートを有効にするには、以下に示すように –enable-command-args を使用してインストールする必要があります。
[remotehost]# tar xvfz nrpe-2.12.tar.gz [remotehost]# cd nrpe-2.12 [remotehost]# ./configure --enable-command-args [remotehost]# make all [remotehost]# make install-plugin [remotehost]# make install-daemon [remotehost]# make install-daemon-config [remotehost]# make install-xinetd
2. nrpe.cfg を変更し、dont_blame_nrpe を設定します
以下に示すように、リモート サーバーの /usr/local/nagios/etc/nrpe.cfg を変更し、dont_blame_nrpe ディレクティブを 1 に設定します。
$ /usr/local/nagios/etc/nrpe.cfg dont_blame_nrpe=1
コマンド引数で check_nrpe を実行
上記の 2 つの変更の後、この特定のリモート ホストに対して check_nrpe を実行すると、以下に示すようなエラー メッセージは表示されなくなります。
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 DISK OK - free space: / 111199 MB (92% inode=99%);| /=9319MB;101662;114370;0;127078
セキュリティ警告
NRPE コマンド ライン引数を有効にすると、セキュリティ リスクが生じます。何をしているのかわからない場合は、これを有効にしないでください。
おそらく、何か問題が発生した場合に NRPE を責めることはできないことをすでに理解しているでしょう。結局、dont_blame_nrpe を 1 に設定しました。