ファイヤープロジェクト
nagios-statのインストールと基本設定
2005-01-02T15:30+09:00   matsu
nagios-statを使用すると,ディスク使用量やプロセス数など,監視対象の内部を監視できる.そこで,nagios-statのインストールと設定方法を調査してみた.
nagiosをインストールしただけの状態だと,監視対象を「外から」監視する機能が使用できる.たとえば監視サーバからpingやhttpなどを使用して監視対象を監視する.一方,監視対象のディスク使用量,プロセス数など,ネットワークサービスからでは監視できない項目はnagios-statを使用して監視する(※).便宜上nagios-statと書いてしまったが,debパッケージ的には
  • nagios-statd-client
  • nagios-statd-server
の二つである.前者を監視サーバ,後者を監視対象にインストールする.
まず監視対象にて以下を実行.
# apt-get install nagios-statd-server
nagios-statd-serverは特に設定する必要がなく,起動するだけである.
/etc/init.d/nagios-statd-server start
次に監視サーバにて以下を実行.
# apt-get install nagios-statd-client
nagios-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
などと実行して動作確認できる.
matsu(C)
Since 2002
Mail to matsu