Nagios-1.2
Nagios
※これを書いている時点での最新はnagios-3.0.4です。
※従って、ここの記述はかなり古いものとなっているので、最近のバージョンとは異なる箇所が多々あります。
最新版についてはNagiosのメモを参照。
インストール
nagios-1.2 の例です。
まず初めに、Nagios 用のユーザ、グループが必要となるので作成します。
# useradd nagios -d /usr/local/nagios # chmod 755 /usr/local/nagios
次に、Nagios 公式サイトよりアーカイブとプラグインを取得し、展開します。
% gzip -dc nagios-1.2.tar.gz | tar xvf - % gzip -dc nagios-plugins-1.3.1.tar.gz | tar xvf -
以下のように Nagios 本体をインストールします。
通常はデフォルトで問題ないですが、必要であれば configure 時にパラメータを指定します(ユーザ名とか)
make install-init は /etc/init.d に起動スクリプトをコピーしたくない場合(daemontools を使う場合とか)は実行しません。
make install-commandmode
はコマンドのパーミッションの設定、make install-config は設定ファイルのサンプルのインストールを行うので必ず実行します。
% ./configure % make all % su # make install # make install-init # make install-commandmode # make install-config
本体のインストール後、以下のようにプラグインをインストールします。
% ./configure % make % make check % su # make install
設定
Nagios の設定項目は非常に多いので、最初から全てを設定しようとするのは非常に不効率です。
従って、インストールされたサンプル設定ファイルを使用して設定を行います。
サンプル設定ファイルは $NAGIOSHOME/etc 下にあり、これをリネームして使用します。
各ファイルの概要と最低限の修正項目は以下の通り。
もっと細かい設定をしたい人は日本語ドキュメントを見ましょう。
nagios.cfg
Nagios のメイン設定ファイルです。
基本的にはここで各設定ファイルをインクルードする形になります。
通常は、このファイル自体はデフォルト状態でOKですが、使用しないファイルをcfg_file=...指定している場合にはコメントアウトしておくとよいでしょう
checkcommands.cfg
監視チェック用のコマンドの設定をします。
特殊な監視がなければ無変更でOKですが、Nagios が標準で libexec に用意しているコマンド以外を使う場合、もしくは標準で用意されていてもcheckcommands.cfg内で定義されていない方法で使う場合には、checkcommands.cfgで定義する必要があります。
例えば、check_aacraidを使ってRAIDの監視を行う場合には、以下のように記述します。
define command{ command_name check_aacraid command_line $USER1$/check_aacraid -H $HOSTADDRESS$ -C $ARG1$ }
contactgroups.cfg
通知グループの設定をします。
新規に作成します。
例えば koumei2,koumei3 という通知先を admin という通知グループに設定するには以下のような感じになります。
define contactgroup{ contactgroup_name admin alias Admin members koumei2,koumei3 }
contacts.cfg
通知の設定をします。
新規に作成します。
例えば、koumei2 という通知先を設定するには以下のような感じになります。
define contact{ contact_name koumei2 alias koumei2 service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-by-email host_notification_commands host-notify-by-email email koumei2@aaa.com }
hostgroups.cfg
ホストグループを設定します。
新規に作成します。
例えば、wwwとwww2をlightly.plala.jp というホストグループとして設定する場合には以下のような感じになります。
なお、下記の例だと、lightly.plala.jp ホストグループに障害が発生した場合にはadmin通知グループにアラートメールが送信されます。
define hostgroup{ hostgroup_name lightly.plala.jp alias Lightly and Leniently contact_groups admin members www,www2 }
hosts.cfg
ホストの設定をします。
新規に作成します。
ホストの設定は各ホスト共通の部分があることが多いので、以下のように共通設定を generic-host として設定しておくと管理しやすくなります。
define host{ name generic-host notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 notification_interval 0 notification_period 24x7 notification_options d,u,r register 0 }
以下、wwwというホストの設定例です。
define host{ use generic-host host_name www alias Web Server1 max_check_attempts 1 }
services.cfg
サービスの設定をします。
新規に作成します。
サービスの設定もホストの設定と同様に、各サービスで共通な部分があることが多いので以下のように共通設定を generic-serviceとしておくと管理しやすくなります。
define service{ name generic-service active_checks_enabled 1 passive_checks_enabled 1 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 contact_groups admin notification_period 24x7 notification_interval 0 retry_check_interval 1 register 0 }
以下、httpの監視をする時の例です。
define service{ use generic-service host_name www,www2 service_description HTTP is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 10 notification_options w,u,c,r check_command check_http }
無変更のもの
通常は無変更のまま使えばよいものは以下の通りです。
ファイル名 | 概要 |
---|---|
timeperiods.cfg | 時間帯設定 |
resource.cfg | リソースの設定 |
misccommands.cfg | その他のコマンド設定 |
cgi.cfg | CGI の設定 |
不使用なもの
通常は不使用でよいものは以下の通りです。
ファイル名 | 概要 |
---|---|
escalations.cfg | エスカレーション設定 |
dependencies.cfg | 依存関係の設定 |
実行
まず、設定ファイルを作成、修正した場合には、以下のようにして設定ファイルのチェックを行うようにしましょう。
# nagios -v nagios.cfg
設定ファイルが問題ないようであれば以下のようにして実行します。
# nagios -d nagios.cfg
-d はデーモンとして実行することを意味しています。
-d を付けなければ、foreground で起動されます。
また、make install-init で init ファイルをインストールした場合には、以下で実行した方がよいでしょう(この場合デーモンモードで起動されます)。
# /etc/init.d/nagios start
Apache の設定
Nagios での監視状態を Web 上で閲覧することが可能です。
そのための HTML と CGI が用意されているので、それらを参照可能にするように Web サーバを設定すればOKです。
ただし、これらの監視情報を閲覧するためのセキュリティのチェックに BASIC 認証を使用することが前提となっているので、こちらも合わせて設定する必要があります。
デフォルトの設定でインストールを行い、Web サーバに Apache が使われているとすると、以下のような設定を httpd.conf に追加します。
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/ <Directory "/usr/local/nagios/sbin/"> AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all </Directory> Alias /nagios/ /usr/local/nagios/share/ <Directory "/usr/local/nagios/share"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory>