[comment]: # ({b1d937a1-f18b8ec4})
# 8 ブラウザアイテムでウェブサイトの監視

[comment]: # ({/b1d937a1-f18b8ec4})

[comment]: # ({fc6e7bc8-eda05db8})
#### はじめに

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

[comment]: # ({/fc6e7bc8-eda05db8})

[comment]: # ({b4ab39c1-0298d7f4})
**このガイドの対象者**

このガイドはZabbixの新規ユーザー向けに作成されており、BrowserアイテムでWebサイトの基本的な監視を有効にするために必要な最小限の手順が含まれています。
高度なカスタマイズやより詳細な設定をお探しの場合は、[Browserアイテム](/manual/config/items/itemtypes/browser)のページやZabbixマニュアルの[設定](/manual/config)セクションをご覧ください。

[comment]: # ({/b4ab39c1-0298d7f4})

[comment]: # ({7879a4ee-3a6a9a84})
**前提条件**

このガイドを進める前に、[ダウンロードとインストール](https://www.zabbix.com/download)の手順に従って、ZabbixサーバーとZabbix Webインターフェースをインストールする必要があります。

ご利用の環境によっては、このガイドの一部の手順が若干異なる場合があります。
このガイドは、Ubuntuが稼働している環境を前提としています。

[comment]: # ({/7879a4ee-3a6a9a84})

[comment]: # ({3498dadf-0b26bd12})
#### WebDriverの設定

ブラウザーアイテムには、Webテストのエンドポイントとして自動化フレームワーク（Selenium ServerまたはプレーンなWebDriver、たとえばChromeDriver）が必要です。これにより、ボタンのクリックやテキストの入力などのテストコマンドを実行し、ブラウザーを制御して操作します。
このガイドでは例として、Dockerコンテナ内でChromeを使用したSelenium Serverを使用します。

Dockerがすでに設定されていることを前提としています。このガイドではDockerの設定については説明しません。
インストール手順については、[Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/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](https://hub.docker.com/r/selenium/standalone-chrome)の最新バージョンです。

```bash
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）:

```bash
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](https://nmap.org/ncat/)でコンテナへの接続をテストします:

```bash
nc -zv 192.0.2.1 4444

# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
```

-   [curl](https://curl.se/)でSelenium ServerからWebページの内容を取得します:

```bash
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>
# ...
```

::: noteclassic
トラブルシューティングについては、[Docker documentation](https://docs.docker.com/engine/)を参照してください。
:::

[comment]: # ({/3498dadf-0b26bd12})

[comment]: # ({538d8706-a02ee5f3})
#### Zabbixサーバーの設定

ブラウザーアイテムは、*browser poller* Zabbixプロセスによって実行および処理されます。これらのプロセスは、[StartBrowserPollers](/manual/appendix/config/zabbix_server#startbrowserpollers)サーバー設定パラメーターを調整して有効にする必要があります。
さらに、[WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl)パラメーターで、前述のWebテストエンドポイントを指定する必要があります。

デフォルトでは、StartBrowserPollersパラメーターは1に設定されているため、Webテストエンドポイントを指定するだけで済みます。

1\. Zabbixサーバーの設定ファイルを開きます。

```bash
vi /etc/zabbix/zabbix_server.conf
```

2\. Zabbixサーバーの設定ファイルで[WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl)パラメーターを探して設定します。

```ini
### Option: WebDriverURL
#	WebDriverインターフェースのHTTP[S] URL。たとえば、Selenium WebDriverスタンドアロン サーバーで使用されるhttp://localhost:4444など。
#
# 必須: いいえ
# デフォルト:
# WebDriverURL=

WebDriverURL=192.0.2.1:4444
```

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

```bash
systemctl restart zabbix-server
```

[comment]: # ({/538d8706-a02ee5f3})

[comment]: # ({4f008ab9-6094e1b6})
#### Zabbix Webインターフェースの設定

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

2\. Zabbix Webインターフェースで[ホストを作成](/manual/config/hosts/host)します。

- *ホスト名* フィールドに、ホスト名を入力します（例: "git.zabbix.com"）。
- *テンプレート* フィールドで、"Website by Browser" テンプレートを入力または選択します。このテンプレートの詳細については、[Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.4) を参照してください。
- *ホストグループ* フィールドで、ホストグループを入力または選択します（例: 新しいホストグループ "Websites"）。

![](../../../assets/en/manual/guides/browser_host.png){width="600"}

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

![](../../../assets/en/manual/guides/browser_macros.png){width="600"}

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

[comment]: # ({/4f008ab9-6094e1b6})

[comment]: # ({9d4e66d5-b09d6e6d})
#### 収集されたメトリックを表示する

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

収集されたメトリックを表示するには、[*Monitoring → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) メニューセクションに移動し、ホストの横にある *Dashboards* をクリックします。

![](../../../assets/en/manual/guides/browser_monitored_hosts.png){width="600"}

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

![](../../../assets/en/manual/guides/browser_dashboard.png){width="600"}

[comment]: # ({/9d4e66d5-b09d6e6d})

[comment]: # ({4cead10e-11902dbb})
#### 障害アラートの設定

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

1\. [*ユーザー設定 → プロファイル*](/manual/web_interface/user_profile) に移動し、*メディア* タブに切り替えて、[メールアドレスを追加](/manual/quickstart/login#adding-user) します。

![](../../../assets/en/manual/quickstart/new_media.png){width="600"}

2\. [障害通知の受信](/manual/quickstart/notification) のガイドに従います。

次回 Zabbix が障害を検知したときに、メールでアラートを受信できるはずです。

[comment]: # ({/4cead10e-11902dbb})

[comment]: # ({98f0712b-7f332a36})
#### 設定をテストする

設定をテストするには、Zabbix Webインターフェースでホスト設定を更新し、実際の障害をシミュレートできます。

1\. Zabbixで対象のWebサイトホストの設定を開きます。

2\. *Macros* タブに切り替え、*Inherited and host macros* を選択します。

3\. たとえば、[前に設定した](#configure-zabbix-frontend) {$WEBSITE.DOMAIN} マクロ値の横にある *Change* をクリックし、誤ったドメイン名を設定します（例: /git.zabbix.com/projects/ZBX/repos/zabbix/browse）。

4\. *Update* をクリックしてホスト設定を更新します。

5\. しばらくすると、Zabbix は指定したWebサイトに接続できないため、"Failed to get JSON of the requested website" という障害を検出します。
この障害は [*Monitoring → Problems*](/manual/web_interface/frontend_sections/monitoring/problems) に表示されます。

![](../../../assets/en/manual/guides/browser_problem.png){width="600"}

アラートが [設定されている](#set-up-problem-alerts) 場合は、障害通知も受信します。

6\. マクロ値を元の値に戻して障害を解消し、Webサイトの監視を続行します。

[comment]: # ({/98f0712b-7f332a36})

[comment]: # ({458aaef8-5a9ff105})
#### 関連項目

- [アイテムの作成](/manual/config/items/item) - 追加のメトリクスの監視を開始する方法。
- [障害エスカレーション](/manual/config/notifications/action/escalations) - 複数ステップのアラートシナリオを作成する方法
  （例: まずシステム管理者にメッセージを送信し、次に障害が45分以内に解決されない場合は、データセンター管理者にメッセージを送信します）。
- [Browserアイテム](/manual/config/items/itemtypes/browser) - Browserアイテムを設定する方法。
- テンプレート [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.4) - *Website by Browser* テンプレートに関する追加情報。

[comment]: # ({/458aaef8-5a9ff105})
