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 de navegador são executados e processados por processos Zabbix browser poller 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 previamente configurado.
Por padrão, o parâmetro StartBrowserPollers está 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 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 problema
O Zabbix pode notificá-lo sobre um problema na sua infraestrutura usando vários métodos. Este guia fornece etapas básicas de configuração para o envio de alertas por email.
1. Navegue até User settings → Profile, mude para a aba Media e adicione seu email.

2. Siga o guia para Receiving a problem notification.
Na próxima vez em que o Zabbix detectar um problema, você deverá receber um alerta por email.
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. Vá para 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 site 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 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 uma mensagem ao administrador do sistema e, depois, se um problema não for resolvido em 45 minutos, enviar uma mensagem ao gerente do data center).
- Itens do navegador - como configurar itens do navegador.
- template Website by Browser - informações adicionais sobre o template Website by Browser.