URL監視用のツールをインストールする〜前回「Webサーバの監視〜コンフィグとICMPの設定〜」は、監視ツール「Nagios」による基本的なICMP(ping)での疎通監視の設定までを解説した。そこで、今回はWebサーバ監視の最終目的である「HTTPサービスの稼働監視」の設定を解説する。});■cgi.cfgの設定NagiosのWebインターフェイスはCGIを多用する。このCGIを利用するにはApacheなどのWebサーバアプリケーションと、Nagiosが用意しているCGIプログラムが必要である。CGIプログラムを実行するために、「cgi.cfg」というコンフィグファイルを設定しなければならない。コンフィグファイルの話でうんざりしている読者もいらっしゃると思うが、これもオープンソースコミュニティで発展するソフトウェアの宿命とあきらめてほしい。使用するWebサーバアプリケーションにおいて、次の点が設定されるようにしてほしい。ディレクトリ以下に、Webサーバアプリケーションの指示による所定の認証用ファイル(例htpasswd.users)のファイル名で保存する。次にNagiosが用意しているCGIプログラムを確認する。インストール時(Webサーバの監視?監視ツールの導入?)に同時にNagiosのホームディレクトリ以下(デフォルトでは/usr/local/nagios/sbin)へインストールされているはずである。trends.cgicgi.cfgは、Nagios本体をインストールしたときに、サンプルがNagiosのディレクトリ以下(デフォルトでは/usr/local/nagios/etc)に保存される。サンプルのcgi.cfgファイルを開き、次のように設定する。ここでは必要最小限の設定と説明を示すので、より詳細な内容は各設定部分に記述されている英文を参照してほしい。USAGE認証の設定。ACCESSNagios自身のコンフィグ情報へのアクセス権限を設定する。カンマ区切りで複数ユーザー設定可能。すべてのユーザーに許可する場合には“*”を設定。ACCESS監視対象、サービスなどの情報を参照する権限を設定する。METHODステータスマップの表示方法を選択する。RATEステータス、ステータスマップなどの表示をリフレッシュする間隔を、秒単位で設定する(例)refresh_rate=90WebサーバアプリケーションとNagiosの設定後、Webサーバアプリケーションを再起動して、設定したURLへアクセスする。Nagiosのトップページが認証画面とともに表示され,作成したアカウントで認証が成功すれば設定は完了である。認証画面に作成したアカウントでログインする■URLの監視を設定するでは、実際のHTTPサービスの稼働監視を設定してみよう。今回の監視対象には、@ITのトップページ「www.atmarkit.co.jp」を設定することにした。1分、異常と判断するのは、5分間連続してトップページをGETできない場合とし、異常を検知したらNagiosの管理者へメールを送信させる。管理者のメールアドレスnagios@localhost●services.cfgの設定services.cfgファイルをエディタで開き、次のような設定を追加する。host_nameには、監視対象の識別名を記述する。今回は監視対象のURLと同じに設定したが、ここは任意の文字列で構わない。check_commandには、監視に使用するコマンドを記述する。今回は指定URLのサービス稼働状況を監視するので、libexecディレクトリ以下の「check_http」コマンドをオプションなしで使用する。check_httpコマンドは、指定したURLの80番ポートへアクセスし、STATE_OKを返すことを確認するコマンドである。-hを実行すればコマンドオプションの説明が表示される。check_http}●escalations.cfgの設定escalations.cfgファイルに、次のような設定をする。services.cfgファイルと同様に、host_nameに監視対象の識別名を記述する。contact_groupsには、異常を検知した場合にアラートを通知する先のグループを設定する。ここで設定しているtest-adminsは、前回のICMPによる疎通監視と同じ通知先である。0}●hosts.cfgの設定hosts.cfgには、次のような設定を追加する。host_nameに監視対象の識別名、addressには監視対象のURLを記述する。このコンフィグファイルの設定内容から、check_httpコマンドによってwww.atmarkit.co.jpを監視することが判断できる。中の既存のグループ“test”のmembersに、今回設定する監視対象の識別名“www.atmarkit.co.jp”を追加する。contact_groupsに設定されたグループ名“test-admins”は、すでにcontactgroups.cfgに登録されているので、hostgroups.cfgのmembersに今回の識別名を設定するだけで、前回と同じ管理者へアラートが通知されるようになる。違う管理者へ通知をしたい場合は、contacts.cfgファイルとcontactgroups.cfgファイルの設定を変更し、これまでに設定したコンフィグファイルの中のcontact_groupsの設定も変更する必要がある。speech,www.yahoo.co.jp,www.atmarkit.co.jp}●設定の確認ここまでで監視設定は終了しているが、監視を開始する前に-vオプションでコンフィグファイルの整合性を確かめておく必要がある。あれば設定は終了である。設定内容に問題がなければ、早速Nagiosにコンフィグファイルをリロードさせて監視を開始する。Detail」を選択する。今回新たに追加された「www.atmarkit.co.jp」という識別名の監視グループが確認できるはずである。yet」と表示される。これは、実際に監視を開始してから、最初に稼働(または異常な状態)を判断するまでは、監視対象が正常に稼働していることをNagios自身が判断できないためである。監視間隔は5分の設定なので、監視の開始から5分以上経過してからブラウザをリロードすると、監視対象の現在のステータスを確認することができる。画面(画面をクリックすると拡大表示します)■Nagiosによる監視の状況確認Nagiosが通知したアラートの履歴などのステータスは、Webインターフェイスから確認できる。Historyをクリックすると、発生したアラートの状況やNagiosへの監視設定追加によるリスタート状況を確認できる。アラートの履歴(画面をクリックすると拡大表示します)ここまでで、フリーの監視ツール「Nagios」による監視設定は終了である。多くのコンフィグファイルの設定は非常に困難で、1つの監視を設定するだけでも非常に手間が掛かる。設定の煩雑さは多機能であることの証明ともいえる。Nagiosは、この連載では紹介できなかった数多くの機能を実装している。Nagiosに付属するドキュメントを参照して、より理解を深めていただければと思う。■まとめ「最終回でやっと本題に入った」と思われた方もいらっしゃるかもしれないが、本来システムの監視・運用は、実際の監視設定よりも、セキュリティポリシーや監視・運用ポリシー策定、監視ツールの選択などの段階の方がより重要である。監視設定後は、ポリシーに従って運用されているか、あるいはポリシーに無理がないかを常に検討する必要がある。システムを24時間×365日にわたって運用するには、ただツールを導入して監視すればいいわけではなく、適切な監視と障害発生時の適切な対応の方がより重要なのだということを、この連載を機にご理解いただければ幸いである。最後に読者の方々に対して、おわびとお断りをさせていただきたい。この連載は当初、DNSサーバや、データベースサーバの監視・運用についても解説する予定でいた。実際に連載を始めてみると「フリーの監視ツールによる監視」で解説することが非常に困難である点に気付いたため、Webサーバという非常に需要の高いサーバの監視・運用のみの解説で連載を終わらせていただくこととなった。期待されていた読者の方には大変申し訳ないことであり、この場を借りて深くおわび申し上げる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。