Nagios で ping 応答しないホストを監視しないようにする

SETUP


Nagios でサービスを監視するときに、そのサービスを稼働しているホストを登録しておく必要があります。

既存のテンプレートを使ってホストを登録した場合、そのホストを check-host-alive (check_ping) で監視するように定義されることになりますが、たとえば Microsoft Azure Web サービスのように ping に応答しないホスト上の Web を監視したい場合に、このままだと "Host Down" としてレポートされてしまいます。

Web サービスだけ監視して、ping に応答しないホストの監視を無視したい場合は、check_dummy を使ってホストの監視をしないようにします。

 

check_dummy を使うために、まずは次のような check-none コマンドを "/etc/nagios/objects/commands.cfg" に定義します。

define command {

command_name    check-none

command_line    $USER1$/check_dummy 0

}

このようなコマンドを定義したら、ping 監視をしたくないホストの check_command としてこれを指定します。

define host {

use    host

host_name    AZURE1

alias    ez-net.jp

address    192.168.1.1

check_command    check-none

}

このようにすることで、このホストに対しては ping によるチェックはせずに、常に OK を返すようになります。このホスト上で稼働しているサービスは ping の応答に関係なく、正しく動作していれば OK が、ホストが停止すれば Timeout になるので、ホストの監視を止めても特に問題はありません。

『ホストは動いているけれど、サービスが停止している』という状況は検知できなくなりますけど、Microsoft Azure Web サービスのようにホストの生存を相手側が確実にみてくれる場合は、ホストの生死が対応策を分けることがないので、このような状況の検知が必要になることはないでしょう。

 

設定を調整したら、CentOS 5.10 の場合は次のようにして、設定に間違いがないかを確認します。

service nagios configtest

問題がなければ、次のようにして nagios サービスを再起動すると、設定が有効になります。

service nagios restart

"service nagios configtest" で問題が発生した場合は "/usr/bin/nagios -v /etc/nagios/nagios.cfg" とすると、設定ファイルのどこでどのようなエラーが検出されたかが表示されるので、それを見て設定ファイルを修正します。