仕事でNAGIOS+nrpeの設定をしていたとき少しハマりました。


NAGIOS監視サーバー側でnrpeを利用してエージェントサーバー側を監視しようとしたのですが、タイトルの通り「Could not complete SSL handshake」エラーが出て接続できない、、、。


nrpeのバージョンは2.0


SSLに原因があると思って、監視サーバー側の呼び出しコマンドに -n オプションを付けてSSL無効にしたが×。

エージェントサーバー側にも -n オプションを付けたが×。



エージェント側のログ(/var/log/messages)を見てみてると、

Host xxx.xxx.xxx.xxx is not allowed to talk to us!

というログが、、、。



原因は、、

nrpe.cfgファイルのallowed_hosts=の項目に、CIDR形式(xxx.xxx.xxx.0/28みたいな形式)で許可するIPアドレスを書いていました、、。

というか、それでOKだと思ってました、、、。

だって、そこに

I would highly recommend adding entries in your /etc/hosts.allow file to allow .....

て書いてあるから。。。

正解は、

allowd_hosts=127.0.0.1,xxx.xxx.xx.xxx,yyy.yyy.yyy.yyy(←許可するIPをカンマでつなぐ)



ちなみにエージェントサーバー側で

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

と打ってnrpeを起動する場合は、nrpe.cfgファイルのallowd_hosts=項目を見て許可IPを決めますが、


デーモンに登録し

# /sbin/service nrpe start

みたいに起動する場合は、/etc/xinetd.d/nrpe(ファイル名は任意)内のonly_from=の項目が有効になります。


以上でーす。