nagios-1.2 インストールメモ
#---------------------------------------------------------------------------------------------
# nagios 概要
#---------------------------------------------------------------------------------------------
nagios はシステムとネットワークの監視アプリケーションです。特定のホストやサービスを監視し、障害が発生もしくは復旧の際に警告を発します。
また、nagios は通常ホストやサービスのチェックを行うためにプラグインを用います。プラグインにより監視のバリエーションを簡単に増やすことができます。
#---------------------------------------------------------------------------------------------
# nagios のインストール方法
#---------------------------------------------------------------------------------------------
nagios 専用のユーザー/グループを作成します。
# groupadd monitor
# useradd -g monitor -d /usr/local/nagios -s /bin/false nagios
nagios のソース、およびプラグインをインターネットよりダウンロード後、ソースを解凍します。
# su root
# cd /usr/local/src/
# wget nagios-1.2.tar.gz
# wget nagios-plugins-1.3.1.tar.gz
# tar zxvf nagios-1.2.tar.gz
# tar zxvf nagios-plugins-1.3.1.tar.gz
nagios を解凍後、ディレクトリに入りインストール作業を行います。
# cd nagios-1.2
# ./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin \
# --with-htmlurl=/nagios --with-nagios-user=nagios --with-nagios-grp=monitor
# make all
# make install
# make install-init ← nagios 起動スクリプトをインストール
# make install-config ← nagios 設定ファイルをインストール
続けてnagios のサービス監視に必要なプラグインをインストールします。
# cd nagios-plugins-1.2
# ./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin
# make all
# make install
プラグインは、/usr/local/nagios/libexec 直下にインストールされます。
また、外部コマンドを実行するために必要なディレクトリを作成し、必要なオーナー、権限を与えます。
# cd /usr/local/nagios/var
# mkdir ./rw
# chown nagios:monitor ./rw
# chown 777 ./rw
# chmod g+s ./rw
次に、nagios 管理画面のセットアップを行います。nagios 管理画面の動作環境を下記とします。
FQDN :nagios.test.com
サーバーIP アドレス :000.000.000.000
ドキュメントルート :/home/httpd/nagios
nagios CGI 動作領域 :/usr/local/nagios/sbin
nagios HTML 領域 :/usr/local/nagios/share
BASIC 認証ID :admin
BASIC 認証PW ファイル :/usr/local/nagios/.htpassword
apache のhttpd.conf にnagios 管理画面を動作させるために下記の設定を追加します。同時に、nagios インストールディレクトリに対してBASIC 認証をかけます。
# cd /usr/local/apache/conf
# vi httpd.conf
↓ ココから ------------------------------------------------
DocumentRoot /home/httpd/nagios
ServerName nagios.test.com
ServerAdmin root@test.com
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin/"
Alias /nagios "/usr/local/nagios/share/"
Options ExecCGI
AllowOverride AuthConfig
AuthName "Member Only"
AuthType Basic
AuthUserFile /usr/local/nagios/.htpassword
order deny,allow
deny from all
Satisfy any
require valid-user
allow from [nagios 管理画面の閲覧を許可する参照元IP アドレス]
↑ ココまで ------------------------------------------------
# /usr/local/apache/bin/htpasswd -c /usr/local/nagios/.htpassword admin
また、念のため、nagios ドキュメントルートには空のインデックスファイルを置きます。
# cd /usr/local/nagios
# touch index.html
次に、nagios 自体のセットアップを行います。nagios 設定ファイル格納ディレクトリに移動し、次の操作により、設定ファイルを編集します。設定ファイルは例の通りになるよう編集してください。なお、設定ファイルの詳細は次の章を参照してください。
# cd /usr/local/nagios/etc
# cp nagios.cfg-sample nagios.cfg
# vi nagios.cfg
↓ ココから ------------------------------------------------
#cfg_file=/usr/local/nagios/etc/minimal.cfg
cfg_file=/usr/local/nagios/etc/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/contacts.cfg
#cfg_file=/usr/local/nagios/etc/dependencies.cfg
#cfg_file=/usr/local/nagios/etc/escalations.cfg
cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/timeperiods.cfg
check_external_commands=1
↑ ココまで ------------------------------------------------
# cp cgi.cfg-sample cgi.cfg
# vi cgi.cfg
↓ ココから ------------------------------------------------
default_user_name=guest
authorized_for_system_information=admin
authorized_for_configuration_information=admin
authorized_for_system_commands=admin
authorized_for_all_services=admin
authorized_for_all_hosts=admin
authorized_for_all_service_commands=admin
authorized_for_all_host_commands=admin
↑ ココまで ------------------------------------------------
※ 注意 )
admin は、BASIC 認証で認証されたユーザーです。上記設定はadmin に対して実行できる処理を制限するために行います。
contacts.cfg、contactgroups.cfg、hosts.cfg、hostgroups.cfg、services.cfg、timeperiods.cfg については必要に応じて設定してください。中身についてはminimal.cfg-sample を参照にして作成しましょう。
また、次のファイルについては nagios.cfg 同様、サンプルファイルをコピーして用意してください。
# cp checkcommands.cfg-sample checkcommands.cfg
# cp resource.cfg-sample resource.cfg
# cp misccommands.cfg-sample misccommands.cfg
nagios 設定ファイルをすべて編集した後、次のコマンドで設定ファイルの正当性をチェックしてください。エラーであった場合は直ちに修正し、エラーがなくなるまで続けます。
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
設定ファイルをすべて設定した後、nagios を起動してください。再起動が失敗した場合は /usr/local/nagios/var/ 直下にログが出力されるので、それを元に原因を追求します。
起動方法:/etc/rc.d/init.d/nagios start
停止方法:/etc/rc.d/init.d/nagios stop
#---------------------------------------------------------------------------------------------
# nagios の動作設定
#---------------------------------------------------------------------------------------------
nagios にてサーバー監視を行う場合は、どのサーバーのどのサービスを監視するのか?もしくは、障害時、誰に連絡するのかを設定する必要があります。詳細な設定までは説明できませんが、どのようなファイルを用意すべきかについて説明します。
● メイン設定ファイル (/usr/local/nagios/etc/nagios.cfg)
nagios 自体の挙動に関するいくつかのディレクティブが含まれています。この設定ファイルはnagios プロセスとCGI の両方に読み込まれます。このファイルをまず初めに作成もしくは編集します。
● オブジェクト設定ファイル
オブジェクト設定ファイルはホスト・サービスなどを定義するファイル群です。これは、何をどのように監視するのかを定義します。主に次のファイルをオブジェクトファイルとして作成します。
・hosts.cfg
監視するホストを設定します。
・hostgroup.cfg
hosts.cfg で指定したホストをグループ化し、他の設定ファイルでホストをグループ指定することができます。ここでは、ホストのグループを設定します。
・services.cfg
監視対象となるサービスを設定します。
・timeperiods.cfg
監視頻度(時間) を設定します。
・checkcommands.cfg
サービスを監視するための実行コマンドを定義します。ここでは、プラグインよりインストールされたlibexec 直下のプログラムを指定してサービスを監視する定義を記述します。
・contacts.cfg
サービスのステータス障害を通知する通知先を設定します。
・contactgroup.cfg
contacts.cfg で指定した通知先をグループ化し、他の設定ファイルで通知先をグループ指定することができます。ここでは、通知先のグループを設定します。
● CGI 設定ファイル (/usr/local/nagios/etc/cgi.cfg)
CGI の挙動に関する数々のディレクティブが含まれています。特に、CGI 認証に関するディレクティブを設定しなければnagios のMonitor 機能は正常に表示されません。
#---------------------------------------------------------------------------------------------
# nagios によるサービス監視の仕組み
#---------------------------------------------------------------------------------------------
nagios はサービス監視をservice.cfg で定義されたサービスごとのホストに対して行われます。基本的にサービス監視はservice.cfg で指示された次のフラグを元に実行されます。
max_check_attempts :通知するまでのチェック回数
normal_check_interval :通常時のチェック間隔(分)
retry_check_interval :異常時のチェック間隔(分)
notification_interval :ステータス異常を通知後、状態に変化がない場合、再通知する間隔(分)
● サービス監視の仕組み
通常、nagios は normal_check_interval 間隔でサービスを監視します。サービスに障害があった場合、retry_check_interval 間隔で復旧監視をし、 max_check_attempts 回繰り返しても復旧しない場合は管理者にメールします。
● 死活監視の仕組み
nagios はサーバーへの直接的なPING 監視はサーバー正常時には行いません。サービスに障害が発生するたびに check-host-alive コマンドが実行され、その実態である PING コマンドによる監視が初めて実行されます。
#---------------------------------------------------------------------------------------------
# nagios 管理画面の使い方
#---------------------------------------------------------------------------------------------
nagios 管理画面は http://nagios.test.com/nagios にアクセスすることで利用します。通常BASIC 認証により管理画面の利用を制限してあるはずです。
● 日常監視でみるべき項目
ここでは、nagios 管理画面のうち、日頃の監視における重要と思われる項目のみ説明します。
Monitoring > Service Detail
services.cfg ファイルで設定したサービス一覧と現在の状態が確認できます。「Status」が現在のサービスの状態、「Status Infomation」は監視結果です。
Monitoring > Host Detail
hosts.cfg に設定したホスト一覧と現在の状態が確認できます。「Status」が現在のサービスの状態、「Status Infomation」はPING 死活監視結果です。。
Reporting > Alert History
日にちごとのnagios 監視結果が時系列に表示されます。この一覧を確認することで現在どのような障害が起きているかが一目で分かります。
● サービスの監視を一時的に止めるには?
サービスの監視を一時的に止めるには、Monitoring > Host Detail にて監視を止めるホストを選択します。画面最右に表示されるメニューのうち、「Disable checks of all services on this host」をクリックしてください。逆に、開始するときは「Enable checks of all services on this host」をクリックします。