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" とすると、設定ファイルのどこでどのようなエラーが検出されたかが表示されるので、それを見て設定ファイルを修正します。