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 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")。

  • Macros タブで、Inherited and host macros に切り替え、次のマクロを探して、更新するにはマクロ値の横にある Change をクリックします。
    • {$WEBSITE.DOMAIN} - ドメイン名(例: git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    • {$WEBSITE.GET.DATA.INTERVAL} - アイテムデータの更新間隔(例: 15m)

3. Add ボタンをクリックしてホストを作成します。このホストは、監視対象のWebサイトを表します。

収集されたメトリックを表示する

おめでとうございます。ここまでで、Zabbix はすでに指定した Web サイトを監視しています。

収集されたメトリックを表示するには、Monitoring → Hosts メニューセクションに移動し、ホストの横にある Dashboards をクリックします。

この操作により、テンプレートレベルで設定されたホストダッシュボードが開き、Web サイトから収集された最も重要なメトリックが表示されます。

問題アラートの設定

Zabbixは、さまざまな方法でインフラストラクチャの問題について通知できます。 このガイドでは、メールアラートを送信するための基本的な設定手順を説明します。

1. ユーザー設定 → プロファイルに移動し、メディアタブに切り替えてメールアドレスを追加します。

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分以内に問題が解決しない場合はデータセンターのマネージャーにメッセージを送信)。
  • ブラウザーアイテム - ブラウザーアイテムの設定方法。
  • テンプレート Website by Browser - Website by Browser テンプレートに関する追加情報。