読者です 読者をやめる 読者になる 読者になる

Nagiosでカスタム・オブジェクト変数を使って、サーバごとに監視の閾値を変える

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$% /
  }


デバッグログとか見てるととりあえずできてるっぽい。

まとめ

みんなこういう場合どうやってるのかな?もっとオシャレな方法あるんだろうか・・・