[comment]: # ({b1d937a1-f18b8ec4})
# 8 Monitorar sites com itens do Browser

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

[comment]: # ({fc6e7bc8-eda05db8})
#### Introdução

Esta página orienta você nas etapas necessárias para iniciar o monitoramento básico de sites com items do tipo Browser.

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

[comment]: # ({b4ab39c1-0298d7f4})
**Para quem é este guia**

Este guia foi desenvolvido para novos usuários do Zabbix e contém o conjunto mínimo de etapas necessárias para habilitar o monitoramento básico de sites com items do tipo Browser.
Se você procura opções de personalização avançadas ou precisa de uma configuração mais detalhada, consulte a página [Items do tipo Browser](/manual/config/items/itemtypes/browser) ou a seção [Configuração](/manual/config) do manual do Zabbix.

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

[comment]: # ({7879a4ee-3a6a9a84})
**Pré-requisitos**

Antes de prosseguir com este guia, você precisa [baixar e instalar](https://www.zabbix.com/download) o Zabbix server e o Zabbix frontend de acordo com as instruções para o seu sistema operacional.

Dependendo do seu ambiente, algumas etapas deste guia podem ser ligeiramente diferentes.
Este guia é baseado em um ambiente rodando Ubuntu.

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

[comment]: # ({3498dadf-0b26bd12})
#### Configurar o WebDriver

Os items de navegador requerem um framework de automação (Selenium Server ou um WebDriver simples, por exemplo, ChromeDriver) como um endpoint de teste web que controla e interage com um navegador, executando comandos de teste como clicar em botões ou inserir texto.
Como exemplo, este guia usará o Selenium Server com Chrome em um container Docker.

Pressupõe-se que o Docker já esteja configurado. Este guia não aborda a configuração do Docker.
Para instruções de instalação, consulte [Instalar Docker Engine no Ubuntu](https://docs.docker.com/engine/install/ubuntu/).

1\. Inicie o Selenium Server com Chrome em um container Docker com as seguintes opções:

-   **docker run --name browser** - executa um novo container Docker chamado "browser";
-   **-p 4444:4444** - mapeia a porta 4444 da sua máquina host para a porta 4444 do container (esta é a porta usada pelo Selenium Server para aceitar comandos);
-   **-p 7900:7900** - mapeia a porta 7900 da sua máquina host para a porta 7900 do container (esta é a porta usada pelo servidor Virtual Network Computing (VNC), permitindo que você visualize a interface gráfica do navegador remotamente; requer um cliente VNC);
-   **--shm-size="2g"** - aloca 2GB de memória compartilhada para o container (isso é importante para o Chrome funcionar corretamente, pois pode exigir uma quantidade significativa de memória compartilhada para evitar falhas);
-   **-d** - executa o container em modo destacado, ou seja, ele será executado em segundo plano;
-   **selenium/standalone-chrome:latest** - especifica a imagem Docker a ser usada; neste caso, a versão mais recente do [Selenium Server com 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\. Certifique-se de que o container Docker `browser` está em execução e acessível.

-   Recupere o endereço IP do container (neste exemplo, 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
#    ...
```

-   Teste a conexão com o container usando o [Ncat](https://nmap.org/ncat/):

```bash
nc -zv 192.0.2.1 4444

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

-   Recupere o conteúdo da página web do Selenium Server usando o [curl](https://curl.se/):

```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
Para solução de problemas, consulte a [documentação do Docker](https://docs.docker.com/engine/).
:::

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

[comment]: # ({538d8706-a02ee5f3})
#### Configurar o Zabbix server

Os itens do navegador são executados e processados pelos processos *browser poller* do Zabbix, que precisam ser habilitados ajustando o parâmetro de configuração do server [StartBrowserPollers](/manual/appendix/config/zabbix_server#startbrowserpollers).
Além disso, o parâmetro [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) deve especificar o endpoint de teste web configurado anteriormente.

Por padrão, o parâmetro StartBrowserPollers é definido como 1, portanto, você só precisa especificar o endpoint de teste web.

1\. Abra o arquivo de configuração do Zabbix server.

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

2\. Localize e defina o parâmetro [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) no arquivo de configuração do Zabbix server:

```ini
### 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\. Reinicie o Zabbix server.

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

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

[comment]: # ({dd3e9b8c-6094e1b6})
#### Configurar o frontend do Zabbix

1\. Faça login no frontend do Zabbix.

2\. [Crie um host](/manual/config/hosts/host) na interface web do Zabbix:

- No campo *Nome do host*, insira um nome de host (por exemplo, "git.zabbix.com").
- No campo *Templates*, digite ou selecione o template "Website by Browser". Para mais informações sobre este template, consulte [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser).
- No campo *Grupos de hosts*, digite ou selecione um grupo de hosts (por exemplo, um novo grupo de hosts "Websites").

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

- Na aba *Macros*, alterne para *Macros herdadas e do host*, procure as seguintes macros e clique em *Alterar* ao lado do valor da macro para atualizá-lo:
    - {$WEBSITE.DOMAIN} - Nome do domínio (por exemplo, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    - {$WEBSITE.GET.DATA.INTERVAL} - Intervalo de atualização dos dados do item (por exemplo, 15m)

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

3\. Clique no botão *Adicionar* para criar o host. Este host representará o site que você deseja monitorar.

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

[comment]: # ({b5c590c2-b09d6e6d})
#### Visualizar métricas coletadas

Parabéns! Neste ponto, o Zabbix já está monitorando o site que você especificou.

Para visualizar as métricas coletadas, navegue até a seção de menu [*Monitoramento → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) e clique em *Dashboards* ao lado do host.

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

Esta ação o levará ao dashboard do host (configurado no nível do template) com as métricas mais importantes coletadas do site.

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

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

[comment]: # ({12e704dc-11902dbb})
#### Configurar alertas de problema

O Zabbix pode notificá-lo sobre um problema em sua infraestrutura usando vários métodos.
Este guia fornece etapas básicas de configuração para o envio de alertas por e-mail.

1\. Navegue até [*Configurações do usuário → Perfil*](/manual/web_interface/user_profile), alterne para a guia *Mídia* e [adicione seu e-mail](/manual/installation/quick_guides/basic_config/login#adding-user).

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

2\. Siga o guia para [Receber uma notificação de problema](/manual/installation/quick_guides/basic_config/notification).

Da próxima vez que o Zabbix detectar um problema, você deverá receber um alerta por e-mail.

[comment]: # ({/12e704dc-11902dbb})

[comment]: # ({06163b26-7f332a36})
#### Teste sua configuração

Para testar sua configuração, podemos simular um problema real atualizando a configuração do host no frontend do Zabbix.

1\. Abra a configuração do host do seu site no Zabbix.

2\. Mude para a guia *Macros* e selecione *Macros herdadas e do host*.

3\. Clique em *Alterar* ao lado, por exemplo, do valor da macro {$WEBSITE.DOMAIN} [configurado anteriormente](#configure-zabbix-frontend) e defina um nome de domínio incorreto (por exemplo, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).

4\. Clique em *Atualizar* para atualizar a configuração do host.

5\. Em alguns instantes, o Zabbix detectará o problema "Falha ao obter o JSON do site solicitado", pois não conseguirá se conectar ao site especificado.
O problema aparecerá em [*Monitoramento → Problemas*](/manual/web_interface/frontend_sections/monitoring/problems).

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

Se os alertas estiverem [configurados](#set-up-problem-alerts), você também receberá a notificação do problema.

6\. Altere o valor da macro de volta ao valor anterior para resolver o problema e continuar monitorando o site.

[comment]: # ({/06163b26-7f332a36})

[comment]: # ({41652867-5a9ff105})
#### Veja também

- [Criando um item](/manual/config/items/item) - como começar a monitorar métricas adicionais.
- [Escalonamentos de problemas](/manual/config/notifications/action/escalations) - como criar cenários de alerta em várias etapas
  (por exemplo, primeiro enviar mensagem ao administrador do sistema, depois, se o problema não for resolvido em 45 minutos, enviar mensagem ao gerente do data center).
- [Itens de navegador](/manual/config/items/itemtypes/browser) - como configurar itens de navegador.
- Template [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser) - informações adicionais sobre o template *Website by Browser*.

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