Você está visualizando a documentação da versão de desenvolvimento, ela pode estar incompleta.
Junte-se ao nosso projeto de tradução e ajude a traduzir a documentação do Zabbix em sua língua nativa.

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.

Este guia é baseado na seguinte configuração:

  • Versão do Zabbix: 7.2 PRE-RELEASE (instalado a partir de pacotes)
  • Distribuição do SO: Ubuntu
  • Versão do SO: 22.04 (Jammy)
  • Componentes do Zabbix: Server, Frontend, Agent
  • Banco de dados: MySQL
  • Servidor web: Apache

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.

Configure alertas de problemas

O Zabbix pode notificá-lo sobre um problema em sua infraestrutura usando uma variedade de 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.