連載
» 2010年02月02日 00時00分 公開

ZABBIXで脱・人手頼りの統合監視(5):Web監視機能を利用する (1/2)

この連載では、オープンソースの運用監視ソフトウェア「ZABBIX」ではどんなことができるのかを、実際の使い方とともに紹介していきます(編集部)

[寺島広大,ミラクル・リナックス株式会社]

 前回の「テンプレートを使った効率的な監視」までで、ZABBIXを利用してシステムの稼働状況を監視し、障害として検知する方法やグラフ表示を行う方法を解説しました。今回はZABBIXの拡張的な監視機能であるWeb監視と、障害が発生した際にシステム管理者に障害通知を送付する方法を解説します。

Web監視はなぜ必要か

 前回までに行った監視設定はプロセスやポートの稼働確認、サーバのリソースの監視などを行うための設定ですが、システム管理を行っていると「プロセスやポートは稼働しているにもかかわらずサービスが正常に提供できていない」という状態になることがあります。

 例えば、Apacheのプロセスは稼働していてポートにもアクセスできるのにもかかわらず、ブラウザからはコンテンツが表示できないといった状態になったことはないでしょうか。そのような障害はサーバの負荷が増加していたり、内部的にコンテンツにアクセスできない、Webアプリケーションプログラムのバグ、設定ミスなど、さまざまな原因が考えられますが、いずれも複合的な問題であり、システム側から見た単純な監視では発見できない場合があります。

 上記のような場合、障害を検知するためにはユーザーと同じようにWebコンテンツにアクセスし、正常に表示できたかどうかを監視する方法が最も効果的です。ZABBIXは複数のURLに対してWebアクセスを行い、表示できたかどうかやダウンロード速度、レスポンス時間、ステータスコードなどを監視する「Web監視機能」を有しており、アプリケーションの動作をより的確に監視することができます。ここでは、このWeb監視機能を利用する方法を解説します。

図1 テンプレートの役割 図1 テンプレートの役割

Web監視の設定

 今回は例として、ZABBIXサーバからローカルにインストールされているZABBIXのWebインターフェイスが正常に動作しているかどうかを監視してみます。

 Web監視の設定はメニューの[設定]→[ウェブ]をクリックして表示される専用の画面を利用します。右上のホストドロップダウンから「ZABBIX Server」を選択し、「シナリオの作成」をクリックして設定画面を表示します。

画面1 シナリオ設定画面 画面1 シナリオ設定画面

 シナリオ設定画面では以下の設定を行います。

設定項目 設定値 説明
アプリケーション web アイテムの「アプリケーション名」を設定します
名前 ZABBIX Web Interface シナリオの設定名を設定します
更新間隔(秒) 300 監視間隔を設定します
エージェント 任意 アクセスする際に利用するユーザーエージェントを設定します
ステータス 有効 設定の有効/無効を設定します
変数 なし POSTデータで使用する変数を設定します。今回は解説しません
ステップ - 以降で解説します
表1 シナリオの設定

 シナリオは複数のURLを監視する一連の監視のまとまりであり、監視するそれぞれのURLや監視の条件はステップで設定します。ステップの設定項目にある「追加」ボタンをクリックすると以下のようなポップアップでステップの設定画面が表示されるため、次のように設定を行います。

画面2 ステップの設定画面 画面2 ステップの設定画面
設定項目 設定値 説明
名前 index.php ステップの設定名を設定します
URL http://localhost/zabbix/index.php 監視するURLを設定します
POST なし POST変数を設定します。今回は解説しません
タイムアウト 15 URLにアクセスする際のタイムアウト時間を設定します
要求文字列 なし アクセスしたページに表示される必要がある文字列を設定します
ステータスコード 200 URLにアクセスした際に返ってくる必要があるステータスコードを設定します
表2 ステップの設定

 以上で設定は完了です。複数のURLを監視する場合は、シナリオ画面で再度ステップの追加ボタンをクリックし、監視するURLを登録することができます。

 設定したWeb監視の状態はメニューの[監視データ]→[ウェブ]から閲覧することができます。Web監視画面では、上部にステップごとに監視結果が正常/障害のステータスで表示され、下部にダウンロード速度とレスポンス時間のグラフが表示されます。

画面3 Web監視画面 画面3 Web監視画面

 また、Web監視の設定を行ったホストには以下のアイテムが追加され、これらのアイテムを基にトリガーに設定を行うことで、通常のプロセスやポート監視などと同様に障害として検知することができます。

画面4 Web監視のトリガー設定 画面4 Web監視のトリガー設定
アイテム名 説明
Download speed for scenario 'ZABBIX Web Interface' シナリオ全体のダウンロード速度
Download speed for step 'index.php' of scenario 'ZABBIX Web Interface' ステップのダウンロード速度
Failed step of scenario 'ZABBIX Web Interface' シナリオが失敗した場合に1を返す
Response code for step 'index.php' of scenario 'ZABBIX Web Interface' ステップのレスポンスコード
Response time for step 'index.php' of scenario 'ZABBIX Web Interface' ステップのレスポンス時間
表3 アイテムに追加されるWeb監視の設定項目

 例としてシナリオ自体が最終的に失敗した際に障害として検知するトリガーの設定を解説します。メニューから[設定]→[トリガー]を選択し、右上のドロップダウンリストから「ZABBIX Server」を選択して「トリガーの作成」ボタンをクリックします。トリガーの設定は以下のように行います。

設定項目 設定値
名前 ZABBIX Web Interface is not accessible
条件式 {Zabbix Server:web.test.fail[Zabbix Web Interface].last(0)}=1
次のトリガーに依存 なし
イベント生成 ノーマル
深刻度 軽度の障害
コメント なし
URL なし
無効 チェックしない
表4 Web監視のトリガーの設定

 以上で設定は完了です。

 なお、今回は解説を行いませんでしたが、Web監視ではPOSTデータを送信して監視を行うことも可能です。例えば「トップ画面にアクセスし、ユーザーログインを行い、ログイン後に特定のページにアクセスできるかどうか」など複雑な監視を行うことができます。Web監視の詳細についてはZABBIXマニュアルを参照してください。


       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。