8 Monitorar sites com itens do Browser
Introdução
Esta página orienta você nas etapas necessárias para iniciar o monitoramento básico de sites com items do tipo Browser.
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 ou a seção Configuração do manual do Zabbix.
Pré-requisitos
Antes de prosseguir com este guia, você precisa baixar e instalar 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.
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.
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.
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):
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:
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:
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>
# ...
Para solução de problemas, consulte a documentação do Docker.
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. Além disso, o parâmetro 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.
vi /etc/zabbix/zabbix_server.conf
2. Localize e defina o parâmetro WebDriverURL no arquivo de configuração do Zabbix server:
### 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.
systemctl restart zabbix-server
Configurar o frontend do Zabbix
1. Faça login no frontend do Zabbix.
2. Crie um 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.
- No campo Grupos de hosts, digite ou selecione um grupo de hosts (por exemplo, um novo grupo de hosts "Websites").

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

3. Clique no botão Adicionar para criar o host. Este host representará o site que você deseja monitorar.
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 e clique em Dashboards ao lado do host.

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

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, alterne para a guia Mídia e adicione seu e-mail.

2. Siga o guia para Receber uma notificação de problema.
Da próxima vez que o Zabbix detectar um problema, você deverá receber um alerta por e-mail.
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 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.

Se os alertas estiverem configurados, 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.
Veja também
- Criando um item - como começar a monitorar métricas adicionais.
- Escalonamentos de problemas - 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 - como configurar itens de navegador.
- Template Website by Browser - informações adicionais sobre o template Website by Browser.