Nagiosの設定をつらつらと書いていたときに、Serviceのチェックはしたいけれど、IPアドレスにPingを打って死活チェックして欲しくないケースに直面した。例えば、ICMPパケットが通らないけど、HTTPは通るようなネットワーク(例えば、イントラネットからルーターを経由して、データセンターに置いてあるWebサーバを監視したいけど、そのルータがご丁寧にICMPパケットを落としてくれる設定になっていていじれない…みたいな)を経由して、Webサーバの死活チェック(とレスポンスタイムのチェック)をやりたいようなケースとか。こんなケースでHostCheckすると、ネットワークが原因でPingのレスポンスが帰ってこないもんだから、DOWNと判断してくれるのでうっとうしいなぁと。
で、Nagiosのドキュメントを読んでみると、max_check_attemptsの項目のところにさりげなく
To bypass the host check, just leave the check_command option blank.
って書いてあったが、blankにしても、「blank」って書いても設定ファイルチェックでエラーが検出されて、さっぱり先にすすまない(汗)ので、仕方ないので「check_dummy」プラグインを使って、とりあえずOKを返すコマンドを自作した。
とりあえず、こんなコマンドを定義。
# ‘return_ok’ command definition
define command{
command_name return_ok
command_line $USER1$/check_dummy 0
}
define host{
use linux-server
host_name HOGE
alias HOGE
address XXX.XXX.XXX.XXX
check_command return_ok
max_check_attempts 1
}
みたいな感じで呼び出してあげると、HostCheckの結果はとりあえずOKになる。こんな対処でいいのか疑問はあるけれど、とりあえず、ま、いっか(汗)
*1:例えば、イントラネットからルーターを経由して、データセンターに置いてあるWebサーバを監視したいけど、そのルータがご丁寧にICMPパケットを落としてくれる設定になっていていじれない…みたいな
コメントを残す