ZabbixのWeb監視設定手順(Webサイトの死活や応答時間を監視)
Zabbixでは、Web監視機能を使ってWebサイトを監視できます。
今回は、ZabbixのWeb監視の概要と設定手順を紹介します。
Web監視の概要では、Web監視でできることや取得できる値について説明します。
設定手順では、Webシナリオの新規作成やステップの設定方法を紹介します。
また、Webサイトの死活や応答時間を監視するためのトリガーの設定方法も紹介します。
※手順確認には、Zabbix7.0LTS(7.0.24)を使用しています。
ZabbixのWeb監視の概要(できること、自動作成されるアイテム)
ZabbixのWeb監視概要
ZabbixのWeb監視は、Webサイトに対して定期的にHTTP/HTTPSアクセスを行い、応答内容や応答時間などを監視する機能です。
アクセス結果を収集する仕組みのため、監視対象であるWebサイト側にZabbixエージェントをインストールする必要はありません。
Web監視の設定は、Webシナリオの作成から行います。
Webシナリオの設定は主に、監視間隔など全体に関する設定を行うシナリオと、アクセスするWebサイトのURLやレスポンスコードなどを定義するステップで構成されます。
その他に認証やタグの設定があります。
| Webシナリオの構成要素 | |
| シナリオ | Web監視の基本設定を行います。 監視間隔、User Agent、HTTPプロキシ、認証などをWebシナリオ単位で設定します。 |
| ステップ | 監視対象のURLや、確認するステータスコード、レスポンス内容などを設定します。 1つのWebシナリオに複数のステップを登録することができます。 |
| 認証 | HTTP認証に関する設定や、WebサーバーのSSL証明書に関する設定を行います。 |
WebサイトへのアクセスはZabbixサーバーまたはZabbixプロキシから行われる
Web監視の設定はホストに対して行いますが、Webサイトへのアクセス元はZabbixサーバーまたはZabbixプロキシになります。
そのため、ZabbixサーバーやZabbixプロキシからWebサイトにHTTP/HTTPSでアクセスできる必要があります。
※Zabbix上でWeb監視の設定を行ったホストが停止していても、Web監視は継続されます。
Web監視で収集されるデータ(自動作成されるアイテム)
Web監視設定を作成すると、データ収集のためのアイテムが自動的に作成されます。
Webシナリオに対して自動作成されるアイテムと、ステップごとに自動作成されるアイテムがあります。
トリガーを設定することで、応答時間やHTTPステータスコードに基づいてWeb監視を行うことができます。
Webシナリオに対して自動作成されるアイテムは3つです。
| Webシナリオに対して自動で作成されるアイテム | |
| Download speed for scenario | シナリオ全体のダウンロード速度の平均値を取得します。 |
| Failed step of scenario | 失敗したステップ番号を取得します。 すべてのステップが成功した場合は0となります。 |
| Last error message of scenario | シナリオの実行時に発生した最後のエラーメッセージを取得します。 |
ステップごとに自動で作成されるアイテムは3つです。
作成されるアイテム数はステップ数×3となります。
| ステップごとに自動で作成されるアイテム | |
| Download speed for step | ステップのダウンロード速度を取得します。 |
| Response time for step | ステップの応答時間(秒)を取得します。 |
| Response code for step | ステップで取得したHTTPステータスコード(200、301、404、500など)を取得します。 |
※自動で作成されるアイテムは、Web監視設定を削除すると一緒に削除されます。
監視間隔が短すぎるとZabbixサーバーや監視対象のWebサーバーに負荷がかかる
Web監視はZabbixサーバー(またはZabbixプロキシ)からHTTPアクセスを行うため、監視対象が多い場合や監視間隔が短すぎる場合、Zabbixサーバーなどの負荷が大きくなります。
Webサイトの重要度に応じて、監視間隔を調整することが推奨されます。
Web監視で利用できる認証設定(Basic、NTLM、Kerberos、Digest認証をサポート)
Basic認証やNTLM認証が設定されたWebサイトも監視できます。
認証タブで認証方式、ユーザー名、パスワードを設定します。
ZabbixのWeb監視では、Basic、NTLM、Kerberos、Digest認証を利用できます。
HTTPSサイトの証明書検証(SSLピア検証、SSLホスト検証)
認証タブで、SSLピア検証やSSLホスト検証を有効化することで、WebサイトのSSL証明書の検証を行うことができます。
SSLピア検証では、HTTPS接続先のサーバー証明書自体が信頼できるかどうかを確認します。
証明書が信頼されたCA(認証局)によって署名されているか、証明書が失効または不正でないかなどを確認することができます。
自己署名証明書などを利用している場合、ZabbixサーバーまたはZabbixプロキシ側でその証明書を信頼していないと、SSLピア検証は失敗します。
信頼するCA証明書を設定するか、必要に応じてSSLピア検証を無効にします。
SSLホスト検証では、サーバー証明書に記載されているホスト名と、実際にアクセスしているURLのホスト名が一致するかどうかを確認します。
| Webシナリオの認証設定画面 | |
| 認証タブの設定画面例です。 HTTP認証の種類、SSL検証の設定や、SSL関連のファイル設定などができます。 |
![]() |
HTTPエージェントアイテムとの使い分け
同様にWeb監視を行う方法としてHTTPエージェントがあります。
HTTPエージェントは、1アイテムにつき1つのHTTPリクエストを監視する方式です。
Webシナリオを利用した場合は複数ステップ作成して監視できるのに対して、HTTPエージェントは1つづつアイテムを作成する必要があります。
1つのURLに対する応答だけを監視したい場合はHTTPエージェントが適しています。
一方、複数のステップを順番に実行するシナリオ監視を行いたい場合や、シナリオ単位で失敗ステップを管理したい場合はWeb監視が適しています。
—広告—
Web監視の設定手順(Webシナリオからステップの設定手順)
Webシナリオを作成するホストを選択
WebシナリオはZabbixのホストに対して作成します。
対象のホストにZabbixエージェントがインストールされている必要はありません。
※監視対象のWebサイトと、Web監視を設定するZabbix上のホストは関連しないため、別のサーバーでも問題ありません。Web監視専用のホストを作成するなど、わかりやすい設定をしておくことが推奨されます。
Webシナリオの作成手順
ホストにWebシナリオを作成する手順です。
例としてHTTPSのWebサイトのトップページを監視するシナリオを作成します。
作成したWebシナリオの設定値です。
今回は設定手順確認目的のため、監視間隔や試行回数はデフォルト値のままとしています。
| 設定項目 | 設定内容 | 設定値 |
| 名前 | Webシナリオの名前 | Test_Web_Monitoring_ |
| 監視間隔 | Webシナリオを実行する間隔 | 1m (デフォルト値) |
| 試行回数 | エラー時にステップを再試行する回数 | 1回 (デフォルト値) |
| エージェント | アクセス時に使用するUser Agent | Chrome 80 (Windows) |
ホストからWebシナリオを作成する場合の設定手順です。
| Webシナリオの作成手順 | |
| 対象ホストを表示します。 Webを選択します。 |
![]() |
| Webシナリオの作成を選択します。 | ![]() |
| 新規Webシナリオの作成画面が表示されます。 シナリオ名、監視間隔、エージェント(User Agent)などを設定します。 |
![]() |
![]() |
|
ステップの作成手順
監視するWebサイトのURLなどをステップとして追加します。
1つのステップにつき、1つのURLへのアクセスを設定します。
1つのWebシナリオ内で複数のステップを指定することができますが、今回は設定手順の確認を目的として1ステップのみとしています。
今回作成したステップの設定値です。
なお、期待するステータスコードを空白にした場合、403などのエラーコードが返された場合でも正常と判断されてしまうため注意が必要です。
| 設定項目 | 設定内容 | 設定値 |
| 名前 | ステップの名前 | Top_Page |
| URL | 監視するWebサイトのURL | https://www.example.com/ (アクセスするURLを指定) |
| タイムアウト | Webサイトアクセス時のタイムアウト時間 | 15s (デフォルト値) |
| 要求文字列 | レスポンス本文に含まれている必要のある文字列 正規表現も利用可能 特定の文言が表示されることを確認したい場合に利用 |
未設定 (デフォルト値) |
| 要求ステータスコード | 正常と判断するHTTPステータスコードを設定 カンマ区切りで複数指定が可能 |
200 |
Webシナリオでステップを追加する場合の手順です。
収集されたWeb監視データを確認
作成したWebシナリオで、データが正しく収集されているかを確認します。
監視データにある最新データから確認できます。
| 収集されたWeb監視データを確認 | |
| 最新データで、Webシナリオで自動作成されたアイテムが確認できます。 Response code、Response time、Download speedなどの値が収集されていることを確認できます。 |
![]() |
|
ホストでWebを選択します。 |
![]() |
![]() |
|
![]() |
|
※今回は1ステップのみで作成しています。
—広告—
Web監視のトリガー設定手順(アラート検知設定)
Webシナリオの失敗を検知する場合(トリガーの作成例)
Webシナリオの実行が失敗した場合にアラートを検知するトリガーを作成します。
自動作成されるFailed step of scenarioというアイテムを利用します。
このアイテムの値が0以外の場合は障害として検知するように設定します。
すべてのステップが正常な場合、Failed step of scenarioの値は0となります。
したがって、0以外の値になった場合は、いずれかのステップが失敗した状態であると判断できます。
今回は手順確認を目的としているため、1回の失敗で障害と判断する設定にしています。
※正常イベントの生成(復旧条件)を条件式としています。そのためFailed step of scenarioの値が0になったときに復旧扱いとなります。
※障害イベント生成モードは単一としています。単一の場合は最初に障害が検知された時のみにイベント(障害検知)されます。
各ステップでHTTPステータスコードが200以外を検知する場合(トリガーの作成例)
各ステップでHTTPステータスコードが200以外になった場合に検知するトリガーの例です。
| HTTPステータスコードに対するトリガーを作成 | ||
| トリガー条件式の設定画面でアイテムを選択します。 Response code for step “Top_Page" of scenario “Test_Web_Monitoring_"を選択します。 関数にはlast() – 最新値を選択します。 結果には<>200を設定します。 最後に挿入を選択します。 |
![]() |
|
![]() |
||
| 条件式が設定されていることが確認できます。 条件式を追加します。 トリガー名、深刻度などを設定し、追加を選択します。 トリガー名を"Web_Monitoring_Response_Code"としています。 深刻度は"軽度の障害"としています。 |
![]() |
|
|
トリガー条件式の例
|
||
|
追加されたトリガーを確認することができます。 |
||
※各ステップの"要求ステータスコード"で200を指定している場合、200以外を取得した時点でそのステップは失敗扱いになります。その場合は"Failed step of scenario"も0以外(失敗扱い)となります。今回の設定の場合は、両方のトリガーで検知されます。
応答時間が遅い場合に検知するトリガーを作成
応答時間が一定以上になった場合に検知するトリガーの例です。
ステップごとに自動作成される"Response time for step"のアイテムを利用します。
ここでは、直近3回の平均応答時間が3秒を超えた場合に障害として検知する例としています。
| 応答時間に対するトリガーを作成 | ||
| トリガー条件式の設定画面でアイテムを選択します。 Response time for step “Top_Page" of scenario “Test_Web_Monitoring_"を選択します。 関数にはavg() – 平均値を選択します。 結果には>3を設定します。 最後に挿入を選択します。 |
![]() |
|
![]() |
||
| 条件式が設定されていることが確認できます。 条件式を追加します。 トリガー名、深刻度などを設定し、追加を選択します。 トリガー名を"Web_Monitoring_Response_Time"としています。 深刻度は"軽度の障害"としています。 |
![]() |
|
|
トリガー条件式の例
|
||
|
追加されたトリガーを確認することができます。 |
||
※閾値となる応答時間は、対象のWebサイトの要件に合わせて設定します。
障害検知の確認
意図的にWebサイトへのアクセスを遮断して、障害が検知できるかを確認します。
| 障害検知を確認 | |
| 監視データの障害画面で確認します。 作成したトリガーで障害が検知されていることが確認できます。 |
![]() |
| 最新データの"Last error message of scenario"のアイテムから、失敗時のエラーメッセージを確認できます。 | ![]() |
![]() |
|
—広告—
最後に
今回は、ZabbixのWeb監視を利用して、Webサイトの死活やHTTPステータスコードを監視する手順を確認しました。
Webシナリオとステップを作成し、自動で作成されるアイテムに対してトリガーを設定するだけで、Webサイトの基本的な監視を行うことができました。
簡単に設定でき、応答速度なども監視できるため、便利な機能かと思います。
引き続き、いろいろ試してみたいと思います。
Zabbixでログを監視するための手順については、こちらで紹介しています。
WindowsのイベントログやLinuxのMessagesの場合などを例に紹介しています。
Zabbix エージェントのインストールや暗号化通信の有効化手順については、こちらで紹介しています。
ZabbixサーバーやZabbixプロキシなどの構築手順については、こちらで紹介しています。
































