8 ブラウザアイテムでウェブサイトの監視

はじめに

このページでは、ブラウザアイテムを使用してウェブサイトの基本的な監視を開始するために必要な手順について説明します。

このガイドの対象者

このガイドは、Zabbix を初めて利用するユーザー向けに作成されており、Browserアイテムを使用してWebサイトの基本的な監視を有効にするために必要な最小限の手順を説明しています。
詳細なカスタマイズオプションを探している場合や、より高度な設定が必要な場合は、Zabbix マニュアルの Browserアイテム ページまたは 設定 セクションを参照してください。

前提条件

このガイドを進める前に、お使いのOS向けの手順に従って、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) サーバーが使用するポートで、ブラウザGUIをリモートで表示できます。VNCクライアントが必要です)。
  • --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 パラメータを見つけて設定します。

### オプション: WebDriverURL
#   WebDriver インターフェースの HTTP[S] URL。たとえば、Selenium WebDriver スタンドアロンサーバーとともに使用する http://localhost:4444 です。
#
# 必須: いいえ
# デフォルト:
# WebDriverURL=

WebDriverURL=192.0.2.1:4444

3. Zabbixサーバーを再起動します。

systemctl restart zabbix-server

Zabbix Webインターフェースの設定

1. Zabbix Webインターフェースにログインします。

2. Zabbix Webインターフェースでホストを作成します。

  • Host name フィールドに、ホスト名を入力します(例: "git.zabbix.com")。
  • Templates フィールドで、「Website by Browser」テンプレートを入力または選択します。このテンプレートの詳細については、Website by Browserを参照してください。
  • Host groups フィールドで、ホストグループを入力または選択します(例: 新しいホストグループ「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サイトの監視をすでに開始しています。

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

この操作により、ホストダッシュボード(テンプレートレベルで設定)に移動し、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. しばらくすると、指定したWebサイトに接続できないため、Zabbixは「要求されたWebサイトのJSONの取得に失敗しました」という問題を検出します。 この問題は、Monitoring → Problems に表示されます。

アラートが設定されている場合は、問題通知も受信します。

6. 問題を解決してWebサイトの監視を継続するには、マクロ値を元の値に戻します。

関連項目

  • アイテムの作成 - 追加のメトリクスの監視を開始する方法。
  • 障害のエスカレーション - 複数ステップのアラートシナリオを作成する方法
    (例: まずシステム管理者にメッセージを送信し、その後、障害が45分以内に解決されない場合は、データセンターマネージャーにメッセージを送信します)。
  • ブラウザアイテム - ブラウザアイテムを設定する方法。
  • テンプレート Website by Browser - Website by Browser テンプレートに関する追加情報。