8 ブラウザアイテムでウェブサイトの監視
はじめに
このページでは、ブラウザアイテムを使用してウェブサイトの基本的な監視を開始するために必要な手順について説明します。
このガイドの対象者
このガイドはZabbixの新規ユーザー向けに作成されており、BrowserアイテムでWebサイトの基本的な監視を有効にするために必要な最小限の手順が含まれています。 高度なカスタマイズやより詳細な設定をお探しの場合は、BrowserアイテムのページやZabbixマニュアルの設定セクションをご覧ください。
前提条件
このガイドを進める前に、ダウンロードとインストールの手順に従って、ZabbixサーバーとZabbix Webインターフェースをインストールする必要があります。
ご利用の環境によっては、このガイドの一部の手順が若干異なる場合があります。 このガイドは、Ubuntuが稼働している環境を前提としています。
WebDriverの設定
ブラウザーアイテムには、Webテストのエンドポイントとして自動化フレームワーク(Selenium ServerまたはプレーンなWebDriver、たとえばChromeDriver)が必要です。これにより、ボタンのクリックやテキストの入力などのテストコマンドを実行し、ブラウザーを制御して操作します。 このガイドでは例として、Dockerコンテナ内でChromeを使用したSelenium Serverを使用します。
Dockerがすでに設定されていることを前提としています。このガイドではDockerの設定については説明しません。 インストール手順については、Install Docker Engine on Ubuntuを参照してください。
1. 次のオプションでDockerコンテナ内でChromeを使用したSelenium Serverを起動します。
- docker run --name browser - "browser"という名前の新しいDockerコンテナを実行します。
- -p 4444:4444 - ホストマシンのポート4444をコンテナのポート4444にマッピングします(これはSelenium Serverがコマンドを受け付けるために使用するポートです)。
- -p 7900:7900 - ホストマシンのポート7900をコンテナのポート7900にマッピングします(これはVirtual Network Computing(VNC)サーバーが使用するポートで、VNCクライアントが必要ですが、リモートでブラウザーのGUIを表示できます)。
- --shm-size="2g" - コンテナに2GBの共有メモリを割り当てます(Chromeが正常に動作するために重要で、クラッシュを回避するために大量の共有メモリが必要になる場合があります)。
- -d - コンテナをデタッチドモードで実行します。つまり、バックグラウンドで実行されます。
- selenium/standalone-chrome:latest - 使用するDockerイメージを指定します。この場合は、Selenium Server with Chromeの最新バージョンです。
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest
2. browser Dockerコンテナが実行中でアクセス可能であることを確認します。
- コンテナのIPアドレスを取得します(この例では192.0.2.1):
ip addr
# 1: lo: <LOOPBACK,UP,LOWER_UP>
# ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
# inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
# ...
- Ncatでコンテナへの接続をテストします:
nc -zv 192.0.2.1 4444
# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
- curlでSelenium ServerからWebページの内容を取得します:
curl -L 192.0.2.1:4444
# <!DOCTYPE html>
# <html lang="en">
#
# <head>
# <meta charset="utf-8"/>
# <link href="favicon.svg" rel="icon" type="image/svg">
# <meta content="width=device-width, initial-scale=1" name="viewport"/>
# <link href="logo192.png" rel="apple-touch-icon"/>
# <link href="manifest.json" rel="manifest"/>
# <title>Selenium Grid</title>
# </head>
#
# <body>
# ...
トラブルシューティングについては、Docker documentationを参照してください。
Zabbixサーバーの設定
ブラウザーアイテムは、browser poller Zabbixプロセスによって実行および処理されます。これらのプロセスは、StartBrowserPollersサーバー設定パラメーターを調整して有効にする必要があります。 さらに、WebDriverURLパラメーターで、前述のWebテストエンドポイントを指定する必要があります。
デフォルトでは、StartBrowserPollersパラメーターは1に設定されているため、Webテストエンドポイントを指定するだけで済みます。
1. Zabbixサーバーの設定ファイルを開きます。
vi /etc/zabbix/zabbix_server.conf
2. Zabbixサーバーの設定ファイルでWebDriverURLパラメーターを探して設定します。
### Option: WebDriverURL
# WebDriverインターフェースのHTTP[S] URL。たとえば、Selenium WebDriverスタンドアロン サーバーで使用されるhttp://localhost:4444など。
#
# 必須: いいえ
# デフォルト:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Zabbixサーバーを再起動します。
systemctl restart zabbix-server
Zabbixフロントエンドの設定
1. Zabbixフロントエンドにログインします。
2. ZabbixのWebインターフェースでホストを作成します:
- ホスト名フィールドにホスト名(例:"git.zabbix.com")を入力します。
- テンプレートフィールドに「Website by Browser」テンプレートを入力または選択します。このテンプレートの詳細については、Website by Browserを参照してください。
- ホストグループフィールドにホストグループ(例:新しいホストグループ「Websites」)を入力または選択します。

- マクロタブで継承およびホストマクロに切り替え、以下のマクロを探してマクロ値の横にある変更をクリックし、値を更新します:
- {$WEBSITE.DOMAIN} - ドメイン名(例:git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - アイテムデータの更新間隔(例:15m)

3. 追加ボタンをクリックしてホストを作成します。このホストは監視したいWebサイトを表します。
収集されたメトリクスの表示
おめでとうございます!この時点で、Zabbixはすでに指定したWebサイトを監視しています。
収集されたメトリクスを表示するには、監視 → ホストメニューセクションに移動し、ホストの横にあるダッシュボードをクリックします。

この操作により、Webサイトから収集された最も重要なメトリクスを含むホストダッシュボード(テンプレートレベルで設定)に移動します。

問題アラートの設定
Zabbixは、さまざまな方法でインフラストラクチャの問題について通知できます。 このガイドでは、メールアラートを送信するための基本的な設定手順を説明します。
1. ユーザー設定 → プロファイルに移動し、メディアタブに切り替えてメールアドレスを追加します。

2. 問題通知の受信のガイドに従います。
次回、Zabbixが問題を検出したときに、メールでアラートを受信できるはずです。
設定をテストする
設定をテストするために、Zabbixフロントエンドでホスト設定を更新して実際の問題をシミュレートできます。
1. Zabbixでウェブサイトホストの設定を開きます。
2. マクロタブに切り替え、継承およびホストマクロを選択します。
3. 例えば以前に設定した}マクロ値の横にある変更をクリックし、誤ったドメイン名(例:/git.zabbix.com/projects/ZBX/repos/zabbix/browse)を設定します。
4. 更新をクリックしてホスト設定を更新します。
5. しばらくすると、Zabbixは「要求されたウェブサイトのJSONの取得に失敗しました」という問題を検出します。これは、指定されたウェブサイトに接続できないためです。 この問題は監視 → 問題に表示されます。

アラートが設定されている場合は、問題通知も受信します。
6. 問題を解決し、ウェブサイトの監視を継続するには、マクロ値を元の値に戻します。
関連項目
- アイテムの作成 - 追加のメトリクスの監視を開始する方法。
- 問題のエスカレーション - 複数ステップのアラートシナリオの作成方法 (例: 最初にシステム管理者にメッセージを送信し、45分以内に問題が解決しない場合はデータセンターのマネージャーにメッセージを送信)。
- ブラウザーアイテム - ブラウザーアイテムの設定方法。
- テンプレート Website by Browser - Website by Browser テンプレートに関する追加情報。