8 Monitorar sites com itens do tipo Browser
Introdução
Esta página orienta você nas etapas necessárias para iniciar o monitoramento básico de sites com itens 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 itens 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 de itens do tipo Browser ou a seção de 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, alguns passos deste guia podem ser ligeiramente diferentes. Este guia é baseado em um ambiente rodando Ubuntu.
Configurar o WebDriver
Os itens 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 contêiner Docker.
Pressupõe-se que o Docker já esteja configurado. Este guia não cobre 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 contêiner Docker com as seguintes opções:
- docker run --name browser - executa um novo contêiner Docker chamado "browser";
- -p 4444:4444 - mapeia a porta 4444 da sua máquina host para a porta 4444 do contêiner (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 contêiner (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 contêiner (isso é importante para o Chrome funcionar corretamente, pois pode exigir uma quantidade significativa de memória compartilhada para evitar falhas);
- -d - executa o contêiner 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 contêiner Docker browser esteja em execução e acessível.
- Recupere o endereço IP do contêiner (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 contêiner 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 da 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 servidor Zabbix
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 servidor StartBrowserPollers. Além disso, o parâmetro WebDriverURL deve especificar o endpoint de teste da web configurado anteriormente.
Por padrão, o parâmetro StartBrowserPollers é definido como 1, portanto, você só precisa especificar o endpoint de teste da web.
1. Abra o arquivo de configuração do servidor Zabbix.
vi /etc/zabbix/zabbix_server.conf
2. Localize e defina o parâmetro WebDriverURL no arquivo de configuração do servidor Zabbix:
### 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 servidor Zabbix.
systemctl restart zabbix-server
Configure o frontend do Zabbix
1. Faça login no frontend do Zabbix.
2. Crie um host na interface web do Zabbix:
- No campo Host name, informe 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 Host groups, digite ou selecione um grupo de hosts (por exemplo, um novo grupo de hosts "Websites").

- Na aba Macros, mude para Inherited and host macros, procure as seguintes macros e clique em Change ao lado do valor da macro para atualizá-lo:
- {$WEBSITE.DOMAIN} - Nome de 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 Add para criar o host. Este host representará o site que você deseja monitorar.
Ver métricas coletadas
Parabéns! Neste ponto, o Zabbix já está monitorando o website que você especificou.
Para visualizar as métricas coletadas, navegue até a seção de menu Monitoring → Hosts e clique em Dashboards ao lado do host.

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

Configurar alertas de problemas
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 website no Zabbix.
2. Acesse a aba Macros e selecione Inherited and host macros.
3. Clique em Change 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 Update para atualizar a configuração do host.
5. Em alguns instantes, o Zabbix detectará o problema "Failed to get JSON of the requested website", porque não conseguirá se conectar ao website especificado. O problema aparecerá em Monitoring → Problems.

Se os alertas estiverem configurados, você também receberá a notificação do problema.
6. Altere o valor da macro de volta para o valor anterior para resolver o problema e continuar monitorando o website.
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 para o administrador do sistema, depois, se um problema não for resolvido em 45 minutos, enviar mensagem para o 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.