nagios 1.2 インストールメモ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− # 特徴 #--------------------------------------------------------------------------------------------- nagios はシステムとネットワークの監視アプリケーションです。特定のホストやサービスを監視し、障害が発生もしくは復旧の際に警告を発します。 また、nagios は通常ホストやサービスのチェックを行うためにプラグインを用います。プラグインにより監視のバリエーションを簡単に増やすことができます。 # インストール方法 #--------------------------------------------------------------------------------------------- nagios 専用のユーザー/グループを作成します。専用のユーザーはホームディレクトリをなしとし、ログインする必要もないので、シェルを無効としてください。 # groupadd monitor # useradd -g monitor -d /dev/null -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 にてサーバー監視を行う場合は、どのサーバーのどのサービスを監視するのか?もしくは、障害時、誰に連絡するのかを設定する必要があります。詳細な設定までは説明できませんが、どのようなファイルを用意すべきかについて説明します。 ● メイン設定ファイル (/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 はサービス監視を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 管理画面は 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」をクリックします。