BrowserアイテムでWebサイトを監視する
はじめに
このページでは、Browserアイテムを使用してWebサイトの基本的な監視を開始するために必要な手順を説明します。
このガイドの対象者
このガイドは、Zabbixの新規ユーザー向けに作成されており、Browserアイテムを使用してWebサイトの基本的な監視を有効にするために必要な最小限の手順をまとめています。 より詳細なカスタマイズオプションや、さらに高度な設定が必要な場合は、ZabbixマニュアルのBrowserアイテムページまたは設定セクションを参照してください。
前提条件
このガイドを進める前に、OS向けの手順に従って ダウンロードしてインストール した Zabbix サーバーと Zabbix Webインターフェースが必要です。
環境によっては、このガイドの一部の手順が多少異なる場合があります。 このガイドは Ubuntu を実行している環境を前提としています。
WebDriverの設定
ブラウザーアイテムには、ブラウザーを制御して操作し、ボタンのクリックやテキスト入力などのテストコマンドを実行する Web テスト用エンドポイントとして、オートメーションフレームワーク(Selenium Server または通常の WebDriver、たとえば ChromeDriver のいずれか)が必要です。
このガイドでは例として、Docker コンテナ内の Chrome を使用した Selenium Server を使います。
Docker はすでに設定済みであることを前提としています。このガイドでは Docker の設定については扱いません。
インストール手順については、Ubuntu に Docker Engine をインストールするを参照してください。
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 イメージを指定します。この場合は、Chrome を使用した Selenium Server の最新バージョンです。
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 のドキュメントを参照してください。
Zabbixサーバーの設定
ブラウザーアイテムは、browser poller の Zabbix プロセスによって実行および処理されます。これらのプロセスは、StartBrowserPollers サーバー設定パラメータを調整して有効にする必要があります。
さらに、WebDriverURL パラメータには、事前に設定した Web テストのエンドポイントを指定する必要があります。
デフォルトでは、StartBrowserPollers パラメータは 1 に設定されているため、Web テストのエンドポイントのみを指定すれば十分です。
1. Zabbixサーバーの設定ファイルを開きます。
vi /etc/zabbix/zabbix_server.conf
2. Zabbixサーバーの設定ファイルで WebDriverURL パラメータを見つけて設定します。
### Option: WebDriverURL
# WebDriver interface HTTP[S] URL. For example, http://localhost:4444 used with Selenium WebDriver standalone server.
#
# Mandatory: no
# Default:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Zabbixサーバーを再起動します。
systemctl restart zabbix-server
Zabbix Webインターフェースの設定
1. Zabbix Webインターフェースにログインします。
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 サイトを監視しています。
収集されたメトリクスを表示するには、Monitoring > Hosts メニューセクションに移動し、ホストの横にある Dashboards をクリックします。

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

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

2. 障害通知の受信 のガイドに従います。
次回 Zabbix が障害を検出すると、メールでアラートを受け取るはずです。
設定をテストする
設定をテストするには、Zabbix Webインターフェースでホスト設定を更新し、実際の障害をシミュレートできます。
1. Zabbix で対象の Web サイトのホスト設定を開きます。
2. Macros タブに切り替え、Inherited and host macros を選択します。
3. たとえば、以前に設定した} マクロ値の横にある Change をクリックし、誤ったドメイン名を設定します(例: /git.zabbix.com/projects/ZBX/repos/zabbix/browse)。
4. Update をクリックしてホスト設定を更新します。
5. しばらくすると、Zabbix は「Failed to get JSON of the requested website」という障害を検出します。これは、指定した Web サイトに接続できないためです。 この障害は Monitoring > Problems に表示されます。

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