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 $