Zabbixウェブ監視は以下を目標に開発されています:
Zabbixウェブ監視機能は、効率的に動作し、非常に柔軟な機能が備わっています。ウェブシナリオを定期的に実行して、収集したデータをデータベースに保存します。保存されたデータはグラフ、トリガー、および通知に反映されます。
ウェブシナリオの各ステップで収集される情報を以下に示します。
Zabbixは、あらかじめ指定された文字列が、取得したHTMLページに含まれているかどうかもチェックします。
Zabbixウェブ監視は、HTTPとHTTPSをサポートします。
シナリオは複数のHTTP要求(ステップ)で構成され、Zabbixサーバによって定期的に実行されます。通常は、ウェブアプリケーションの機能の特定部分に対して1つのシナリオを定義します。シナリオを使用すると、ユーザエクスペリエンスを非常に簡単に監視できるようになります。ウェブシナリオは、ホストアプリケーションにリンクしてグループ化します。ウェブシナリオは定期的に実行され、1つまたは複数のステップで構成されます。1つのシナリオの実行中は、Cookieは全て保存されます。
Zabbix GUIの監視
Zabbix GUIの可用性とパフォーマンスを監視する場合、まずログインしてから[概要]スクリーンと[トリガー]スクリーンの応答速度を調べて、最後にログアウトする必要があります。
このシナリオは以下のステップに分解できます。
いずれかのステップの実行に失敗すると、シナリオの実行は異常終了します。
| パラメータ | 説明 |
|---|---|
| アプリケーション | ウェブシナリオをリンクするアプリケーションを指定します。指定できるのは既存のアプリケーションだけです。 例: Zabbix Server |
| 名前 | ウェブシナリオの名前。 [監視データ]→[ウェブ]を選択すると、この名前が表示されます。 例: Zabbix GUI |
| 更新間隔(秒) | シナリオの更新頻度(秒単位)を指定します。 例: 60 |
| エージェント | ZABBIXがユーザエージェントとして使用するブラウザを指定します。ウェブブラウザごとに異なるコンテンツを生成するウェブサイトを監視する場合に使用します。 例: Opera 9.02 on Linux |
| ステータス | 有効: シナリオは有効で、実行されます。 無効: シナリオは無効で実行されません。 |
| 変数 | ステップを設定する際に使用するマクロのリストです。 構文: {macro}=value マクロ{macro}は、ステップのURLやPostの変数で置き換えられます。 例: {user}=guest {password}=guest |
| ステップ | シナリオのステップ |
シナリオを作成すると、以下の監視用アイテムが自動的に追加され、選択したアプリケーションにリンクされます。「Scenario」は、実際のシナリオ名で置き換えられます。
| アイテム | 説明 |
|---|---|
| Download speed for scenario 'Scenario' | シナリオ全体、すなわち全ステップの平均の、ダウンロード速度(1秒あたりのバイト数)に関する情報を収集するアイテムです。アイテムのキー: web.test.in[Scenario,,bps] タイプ: 浮動小数 |
| Failed step of scenario 'Scenario' | シナリオのステップのうち失敗したステップの数をカウントするアイテムです。全てのステップが正常に実行された場合、0を返します。 アイテムのキー: web.test.fail[Scenario] タイプ: 整数 |
上記のアイテムは、トリガーの作成および通知コンディションの定義に使用できます。
ウェブシナリオの異常終了を検出するトリガー
このトリガー条件式は以下のように定義することができます:
{host: web.test.fail[Scenario]}.last(0)#0
「Scenario」は実際のシナリオ名で置き換えることを忘れないでください。
ウェブアプリケーションのパフォーマンス低下を検出するトリガー
このトリガー条件式は以下のように定義することができます:
{host: web.test.in[Scenario,,bps]}.last(0)<10000
「Scenario」は実際のシナリオ名で置き換えることを忘れないでください。
ステップとは、簡単に言えば1つのHTTP要求のことです。ステップの実行順序はあらかじめ指定しておきます。
| パラメータ | 説明 |
|---|---|
| 名前 | ステップの名前。 例: Login |
| URL | URL 例: www.zabbix.com |
| Post | HTTP POST変数(存在する場合に指定)。 例: id=2345&userid={user} {user}がウェブシナリオのマクロとして定義されている場合、ステップ実行時にその値で置き換えられます。 置き換えられた情報がそのまま送信されます。 |
| タイムアウト | ステップは、ここで指定した時間(秒単位)以内に完了する必要があります。実際には、このパラメータが定義するのは、URLへの接続にかかる最大時間およびHTTP要求の処理にかかる最大時間です。したがって、ZABBIXは1つのステップでここで指定した時間の2倍の秒数以内に処理を完了する必要があります。例: 15 |
| 要求文字列 | 文字列(Posix形式の正規表現で指定)は取得したコンテンツ内に含まれている必要があります。 含まれない場合、このステップは失敗します。何も指定しない場合、このステップは常に成功します。 例: Homepage of Zabbix |
| ステータスコード | 成功とみなすHTTPステータスコードのリストを指定します。リストに含まれていないステータスコードが返された場合、このステップは失敗します。 何も指定しない場合、このステップは常に成功します。 例: 200、210 |
ステップを作成すると、以下の監視用アイテムが自動的に追加され、選択したアプリケーションにリンクされます。「Scenario」と「Step」はそれぞれ、実際のシナリオ名とステップ名で置き換えられます。
| アイテム | 説明 |
|---|---|
| Download speed for step 'Step' of scenario 'Scenario' | ステップのダウンロード速度(1秒あたりのバイト数)に関する情報を収集するアイテムです。アイテムのキー: web.test.in[Scenario,Step,bps] データ型: float |
| Response time for step 'Step' of scenario 'Scenario' | ステップの応答時間(秒単位)に関する情報を収集するアイテムです。 アイテムのキー: web.test.time[Scenario,Step] データ型: float |
| Response code for step 'Step' of scenario 'Scenario' | ステップの応答コードを収集するアイテムです。 アイテムのキー: web.test.rspcode[Scenario,Step] データ型: integer |
上記のアイテムは、トリガーの作成および通知コンディションの定義に使用できます。
ZABBIX GUIのログインに時間がかかりすぎることを検出するトリガー
トリガー条件式を次のように設定します:
{zabbix: web.test.time[ZABBIX GUI,Login]}.last(0)>3
ここでは、Zabbixウェブ監視機能を使用して、Zabbixウェブインタフェースを監視する手順について説明します。具体的には、その可用性、生成するコンテンツの正当性、および応答速度を監視します。最初にユーザ名とパスワードを使ってログインします。
新しいホストアプリケーションの追加
すでに適切なアプリケーションが動作している場合は、このステップを実行する必要はありません。ホストが存在しない場合は、ホストの作成も行う必要があります。[設定] → [ホスト]を開き、ウェブ監視を行いたいホストの隣にある「アプリケーション」をクリックします。アプリケーションの画面で「アプリケーションの作成」をクリックします。
新しいウェブシナリオの追加
Zabbixウェブインタフェースを監視するための新しいシナリオを追加します。このシナリオは複数のステップから構成されます。
[設定] → [ウェブ]をクリックし、ホストを選択して「シナリオの作成」ボタンをクリックします。アプリケーションフィールドのとなりの「選択」をクリックし、さきほど作成したアプリケーションを選択します。
また、{user}と{password}の2つのマクロも作成します。
シナリオのステップの定義
監視するためのステップを追加します。
シナリオのステップ1。{user}と{password}の2つのマクロを使用します。
<note important>ZabbixのWebインターフェースはログイン後にJavaScriptによるリダイレクトを使用しています。上記のように最初のステップでログインを行ってから他のステップでログインしたかどうかを確認する必要があります。さらに、ログインのステップではURLにindex.phpファイルを含めたフルパスを設定する必要があります。
すべてのpost変数は1行で記載し、&記号で連結しなければいけません。ZabbixのWebインターフェースにログインするための設定例:
name=Admin&password=zabbix&enter=Enter
シナリオのステップ2。