ksaitoの日記

日々試したことの覚え書き

監視の仕組み

移転しました。

自動的にリダイレクトします。

ping監視の設定で/etc/nagios2/conf.d/services.cfgに下記のように設定しました。
ここに設定したcheck_commandがnagiosの監視のポイントになります。
check_pingの後ろ"!"区切りの文字列は引数でping応答時間とパケットロスの閾値を設定しています。
一つ目の引数は、応答が100.0ms以上かパケットロスが20%を越えると警告として扱います。
二つ目の引数は、応答が500.0ms以上かパケットロスが60%を越えると致命的として扱います。

define service {
  hostgroup_name                  ping-servers
  service_description             PING
  check_command                   check_ping!100.0,20%!500.0,60%
  use                             generic-service
  notification_interval           0 ; set > 0 if you want to be renotified
}

仕組み

check_commandのcheck_pingは、/etc/nagios-plugins/config/ping.cfgに下記のように設定されています。

define command{
  command_name    check_ping
  command_line    /usr/lib/nagios/plugins/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
}

serviceのcheck_commandは、commandのcommand_nameに定義されています。command_lineには、実際に監視で使われるコマンドが指定されています。
$ARG1$は、"!"区切りの引数が設定され$HOSTADDRESS$のような組み込みの変数も準備されています。
実行してみると普通のコマンドです。さまざまなプラグインが準備されていますが独自のものを作ることも簡単そうです。

$ /usr/lib/nagios/plugins/check_ping
check_ping: Could not parse arguments
Usage:check_ping -H  -w ,% -c ,%
 [-p packets] [-t timeout] [-L] [-4|-6]
$ /usr/lib/nagios/plugins/check_ping localhost -w 100.0,20% -c 500.0,60%
PING OK - Packet loss = 0%, RTA = 0.15 ms
$