nagios-statのインストールと基本設定
nagios-statを使用すると,ディスク使用量やプロセス数など,監視対象の内部を監視できる.そこで,nagios-statのインストールと設定方法を調査してみた.
nagiosをインストールしただけの状態だと,監視対象を「外から」監視する機能が使用できる.たとえば監視サーバからpingやhttpなどを使用して監視対象を監視する.一方,監視対象のディスク使用量,プロセス数など,ネットワークサービスからでは監視できない項目はnagios-statを使用して監視する(※).便宜上nagios-statと書いてしまったが,debパッケージ的には
- nagios-statd-client
- nagios-statd-server
まず監視対象にて以下を実行.
# apt-get install nagios-statd-servernagios-statd-serverは特に設定する必要がなく,起動するだけである.
/etc/init.d/nagios-statd-server start次に監視サーバにて以下を実行.
# apt-get install nagios-statd-clientnagios-statd-clientの内容は監視対象のnagios-statd-serverに接続して各種監視データを取得,チェックするnagios拡張プラグインである.すなわちnagios-statd-clientの設定は,これらの拡張プラグインを使用するserviceをservices.cfgに記述することで行う.
※ ただしnagiosではsshで接続して監視対象のディスクを監視する方法が提供されているようだ.具体的には
/etc/nagios-plugins/config/disk.cfgにssh_diskというcommandがある.
nagios-statd-clientの拡張プラグインは以下である.
/usr/share/nagios/plugins/nagios-statこの配下のプラグインを使用するcommandは
/etc/nagios-plugins/config/statd_commands.cfgに記述されている.ここではnagios-statを使用する監視設定をいくつか記述する.前提条件として,すでにnagios-statd-serverが稼働しているマシンがhost,hostgroupに登録されていることとする.まずディスク使用量チェックのテンプレート.
define service{
name slave-disk-check
use generic-service
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups router-admins
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_all_disks_statd_level!80!85
register 0
}
このテンプレートは入れ子状にテンプレートgeneric-service(※)を使用している.ポイントはcheck_all_disks_statd_levelである.パラメータとして80と85を指定している.前者は警告閾値となるディスク使用率,後者は異常閾値となるディスク使用率である.次にプロセスの死活監視のテンプレート.
define service{
name slave-proc-inetd-check
use generic-service
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups router-admins
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_named_proc_statd_level_l!/usr/sbin/inetd!1!1
register 0
}
check_commandで指定しているcommandであるcheck_named_proc_statd_level_lは
/etc/nagios-plugins/config/statd_commands.cfgにて定義されていない.これは以下のファイルに記述した定義である.
/etc/nagios/checkcommands.cfgこのファイルはユーザ独自にcommand定義を記述するための設定ファイルである.定義内容は以下.
define command {
command_name check_named_proc_statd_level_l
command_line /usr/share/nagios/plugins/nagios-stat\
-l -n $ARG1$ -w $ARG2$ -c $ARG3$ proc $HOSTADDRESS$
}
statd_commands.cfgではcheck_named_proc_statd_levelが定義されているが,それに-lオプションを付加したのがcheck_named_proc_statd_level_lである.-lオプションがないと,プロセス数が-wあるいは-cで指定した値であるn個以上なら警告,あるいは異常とする処理になる.-lオプションがあるとプロセス数がn個以下なら警告,あるいは異常とする.
※ デフォルトで記述されているテンプレート
nagiosではcommandの定義の項目command_lineにて記述したコマンドを実行し,返り値でステータスを判定する.したがって,コマンドプロンプトにてcommand_lineの記述をもとにコマンドを実行し,serviceのcheck_commandの記述(特にパラメータ)を決定すると作業しやすい場合がある.例えば,上記のcheck_named_proc_statd_level_lでは
$ /usr/share/nagios/plugins/nagios-stat\ -l -n /usr/sbin/inetd -w 1 -c 1 proc targethostなどと実行して動作確認できる.

