ナスです。

Nagios を使って Ubuntu Server を何台か監視しようとしたんですが、その時にツラい目に遭ったのでみなさんに共有します。

 

やりたかったこと

Nagios サーバから、Ubuntu Server に入れた NRPE に対して引数をつけてメトリクスを収集したい。ただそれだけ。

NRPE の設定

他にもいっぱいコマンド定義しましたが、とりあえず簡単に説明できる tcp ポートのチェックを例に。
設定ファイル:/etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,
dont_blame_nrpe=1
command[check_tcp]=/usr/lib/nagios/plugins/check_tcp -p $ARG1$

Nagios サーバから確認してみると

# /usr/lib64/nagios/plugins/check_nrpe -H 
NRPE v2.15

よし、通るな。

# /usr/lib64/nagios/plugins/check_nrpe -H  -c check_tcp -a 80
CHECK_NRPE: Received 0 bytes from daemon.  Check the remote server logs for error messages.

え、え? なんで??

Google で検索しまくった結果

なんかバグレポートが見つかりました。
#756479 – nagios-nrpe-server: Ignores dont_blame_nrpe=1 – Debian Bug report logs

NRPE が引数つきの問い合わせに対応できなくなったようです。 詳細な経緯までは追ってませんが、-enable-command-args オプションを外してパッケージングするようになったみたいで、今後も復活することはないようです。

対処内容

引数を使わずに、NRPE 側で固定値を書きました… 

allowed_hosts=127.0.0.1,
dont_blame_nrpe=1
command[check_tcp]=/usr/lib/nagios/plugins/check_tcp -p 80

たまたま Ubuntu Server は数台だけだったのでよかったですが、これがたくさんあったらもう最悪でした。 -enable-command-args オプションをつけてパッケージを作ればいいのですが、できればそんなことはしたくなかったので、今回はこれで落ち着きました。

 

普段 Amazon Linux とか CentOS しか触らないのでレアケースなんですが、もしかしたら Ubuntu 使うケースが増えてくるかもしれないので、誰かのお役に立てれば嬉しいです。

Zabbix とかならこんなことにはならなかったのかなぁ…

元記事はこちら

Nagios で Ubuntu を監視しようとしたらハマった [cloudpack OSAKA blog]