カスタム可変マクロについて
Nagiosの意外と使われない小技紹介
本日はカスタム可変マクロです。通常Nagiosはプラグインなどに必要な引数を渡して実行しています。たとえば簡単なURL監視だと、check_http -H www.quickguard.net -u /image/logo.gif -e 200 -t 20 といった感じです。
ここで同じようなURL監視を複数台のサーバで実施したいが、/image/の部分が複数パターンに分かれてるケースがあるとします。/image/ /img/ /logo/の3パターンがあるとしたら、hosts定義で、下記のようにパターン別の定義を用意します。
テンプレートとして認識させるため、registerの値を0にしています。
define host {
name pattern1
register 0
_image_dir /image/
}
define host {
name pattern2
register 0
_image_dir /img/
}
define host {
name pattern3
register 0
_image_dir /logo/
}
下記のようにservices定義はhostgroupで一括で記述しておき、
define service {
hostgroup_name webserver
service_description URL
check_command check_http!-H www.quickguard.net -u $_HOSTIMAGE_DIR$logo.gif -e 200 -t 20
}
個別のhost定義ではマクロパターンのテンプレートを追加すると
$_HOSTIMAGE_DIR$がhost毎に可変の値に設定される。
define host {
host_name web101
address 192.168.1.1
hostgroups webserver
use pattern1,generic-host
}
…
define host {
host_name web202
address 192.168.2.2
hostgroups webserver
use pattern2,generic-host
}
こうすると、パターン別にService定義をせずにuseを使って指定するだけで、複数パターンの設定が記述可能です。ぜひともお試しあれ。