QUICKGUARD ホームページ >

カスタム可変マクロについて

2014.06.18

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を使って指定するだけで、複数パターンの設定が記述可能です。ぜひともお試しあれ。