Nagios+NRPE環境でサーバごとに監視の閾値変えたいなーと思ったんですが、nrpe.cfgをサーバごとに変えるのはちょっとダルい。
本体側の設定でなんとかできないかなと思って調べてると、こういうのがありました。
カスタム・オブジェクト変数
nagios.cfg内で自由に変数を定義できるみたいです。使ってみましょう!
サンプル設定
NRPE側の設定がこんな感じになってるとして、
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
サーバ側はこんな感じ
;テンプレート側でデフォルト値を定義する
define host{
name linux-server
...
_DISK_WARNING 20
_DISK_CRITICAL 10
}
;デフォルトでいいサーバはそのまま
define host{
use linux-server
host_name test01
hostgroups linux
address 192.168.1.61
}
;デフォルトから変更したいサーバだけ変数を上書き
define host{
use linux-server
host_name test02
hostgroups linux
address 192.168.1.62
_DISK_WARNING 99
_DISK_CRITICAL 98
}
define command{
command_name check_nrpe_arg
command_line $USER1$/check_nrpe -t 20 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
;監視引数で定義したカスタムオブジェクト変数を使う
define service{
use generic-service
hostgroup_name linux
service_description Disk Usage
; check_command check_nrpe_arg!check_disk!20% 10% /
check_command check_nrpe_arg!check_disk!$_HOSTDISK_WARNING$% $_HOSTDISK_CRITICAL$% /
}
デバッグログとか見てるととりあえずできてるっぽい。
まとめ
みんなこういう場合どうやってるのかな?もっとオシャレな方法あるんだろうか・・・