Close
Log in to Zabbix Blog
Email
Password
Show password Hide password
Forgot password?
Incorrect e-mail and/or password
or
By creating an account or logging in with an existing account, you agree to our Terms of Service
TécnicoIntegraçõesComoEstudo de CasoEventosNotíciasComunidadeEntrar

Monitoramento sintético de websites com Zabbix

Aprenda como realizar monitoramento sintético no Zabbix com Web Scenarios e Browser Monitoring para detectar falhas, medir desempenho e melhorar a experiência do usuário.

O monitoramento sintético de websites no Zabbix, também conhecido como testes sintéticos, consiste em simular o comportamento de um usuário ao interagir com um site, API ou aplicação web. Essas simulações permitem avaliar de maneira contínua o desempenho, a disponibilidade e a experiência do usuário, mesmo quando não há acessos reais acontecendo.

Ao criar esses cenários automatizados, é possível monitorar proativamente todo o fluxo da aplicação, identificando falhas, lentidões e problemas de disponibilidade antes que afetem usuários finais. Ainda, o monitoramento sintético possibilita testar jornadas completas, medir tempos de resposta, avaliar desempenho de carregamento e comparar resultados a partir de diferentes regiões geográficas, garantindo maior confiabilidade e qualidade no ambiente monitorado.

Neste artigo, explicamos mais detalhes sobre o monitoramento sintético, com exemplos de configurações no Zabbix. Acompanhe!

Recursos do Zabbix para monitoramento sintético

O Zabbix possui dois principais recursos para realização de monitoramento sintético, sendo eles: web scenarios e item browser. Vamos entender como cada um funciona.

Web Scenarios

No Zabbix, o recurso Web Scenarios permite iniciar a monitoração de aplicações web ou sites por meio de sequências de passos (steps). Toda a configuração é realizada diretamente pelo frontend do Zabbix, geralmente por meio de templates, o que facilita a aplicação do cenário em um ou mais hosts simultaneamente.

Cada Web Scenario é composto por etapas que simulam a navegação ou interação com páginas específicas, possibilitando a validação contínua da disponibilidade e do desempenho da aplicação monitorada.

A partir dessa monitoria, o Zabbix é capaz de retornar diversas métricas importantes, incluindo:

  • Velocidade média de download por segundo considerando todos os passos do cenário;
  • Identificação da etapa que falhou, caso ocorra algum erro;
  • Mensagem detalhada do erro apresentado;
  • Tempo de resposta de cada etapa;
  • Código HTTP retornado pela aplicação.

Todas essas informações são armazenadas no banco de dados do Zabbix, e podem ser utilizadas para:

  • Geração de gráficos;
  • Criação de triggers;
  • Emissão de alertas;
  • Dashboards de acompanhamento.

Item Browser

A partir da versão 7.0, o Zabbix disponibilizou o item Browser, ampliando significativamente as capacidades de monitoramento web e permitindo a criação de cenários simples ou altamente complexos para coleta de dados.

Esse novo tipo de item utiliza JavaScript em conjunto com um WebDriver do Google Chrome, acionado por meio do Selenium, garantindo uma simulação muito mais fiel do comportamento real de um usuário navegando em um navegador moderno.

Com esse recurso, o Zabbix é capaz de simular diversas ações típicas de navegação, tais como:

  • Clicar em botões e elementos específicos;
  • Inserir textos em campos de formulários;
  • Navegar entre páginas ou URLs distintas;
  • Localizar textos ou elementos no DOM;
  • Executar verificações visuais utilizando screenshots;
  • Executar qualquer lógica adicional suportada via JavaScript + Selenium.

Isso torna possível construir desde validações simples de disponibilidade até cenários completos, como login, verificação de dashboards, testes de fluxo de compras, preenchimento de formulários e outras interações complexas.

Criando cenários reais de monitoramento sintético

A seguir, vamos criar um template que verifique o status da página de login do Zabbix e realize autenticação e mais algumas verificações.

Para iniciarmos: em seu ambiente Zabbix, crie um template e navegue até a opção “Web scenarios”:

Clique em Create web scenario e faça as seguintes configurações:

  • Defina um nome = Frontend status;
  • Update interval = 15m (15 minutos);
  • Attempts = 1 (no caso, apenas 1 tentativa);
  • Agent = Zabbix.

Em “Variables“, defina:

  • {password} – {$BNCHMRK.PASS} – macro que terá a senha do usuário;
  • {username} – {$BNCHMRK.USER} – macro que terá o login do usuário.

Na mesma tela, clique em “Steps“.

Em seguida, clique em “Add” para adicionar uma nova etapa:

Agora, preencha os seguintes dados nos respectivos campos:

  • Em “Name“, preencha com “01. landing page”;
  • URL = http://{$URL}/index.php;
  • Timeout = 15s, que será o tempo máximo de espera para o carregamento total da página;
  • Required string = Zabbix SIA, neste caso é o que o Zabbix espera encontrar para confirmar o carregamento total da página;
  • Required status codes = 200, que é o código HTTP que significa “ok”.

Atrele a um host e preencha a macro {$URL}. As seguintes informações devem estar disponíveis após essa etapa, na aba “Monitoring” > “Hosts“:

No campo latest data, pesquisando pelo host e item criados, podemos ver a opção de visualização dos gráficos:

Para criar o teste de autenticação, adicione uma nova etapa com as seguintes configurações:

  • Name = 02. Login test;
  • URL = http://{$URL}/index.php;
  • Post Fields:
    • name = {username};
    • password = {password};
    • enter = sign in;
  • Variables:
    • {sid} – regex:name=”csrf-token” content=”([0-9a-z]{16})”;
  • Timeout = 15s, que será o tempo máximo de espera para o carregamento total da página;
  • Required string = Monitoring, que é referente ao menu do Zabbix após o login bem sucedido.

Com isso, devemos ter os 2 steps configurados retornando com status “ok”.

Porém, o step “02. Login test” só retornará ok caso a senha do usuário configurada na macro {$BNCHMRK.PASS} esteja correta.

A imagem abaixo mostra o campo latest data do item “02. Login test”:

Caso a senha do usuário esteja incorreta na macro, o retorno será semelhante a esse:

Métricas e alertas

Ao utilizar Web Scenarios no Zabbix, diversas métricas essenciais são coletadas automaticamente, como velocidade de download, tempo de resposta e código HTTP retornado pela aplicação monitorada. Essas informações permitem avaliar a disponibilidade e o desempenho de cada etapa do cenário configurado.

Com base nessas métricas, é possível criar triggers que ajudam o Zabbix a detectar problemas de maneira proativa, com alertas que disparam quando:

  • A velocidade de download estiver muito baixa;
  • O tempo de resposta ultrapassar o limite considerado ideal;
  • O código HTTP indicar erro (4xx ou 5xx);
  • Alguma etapa específica do cenário falhar.

A imagem abaixo mostra um exemplo de uma trigger que será disparada caso o retorno do código HTTP não seja o 200 (código que representa que tudo está bem – ok):

Esses alertas possibilitam reagir rapidamente a falhas de desempenho, instabilidades ou indisponibilidades, garantindo maior visibilidade sobre o comportamento da aplicação e reduzindo o impacto sobre os usuários finais.

Exemplos práticos de monitoramento sintético de websites

Abaixo, temos um monitoramento da própria página de login do Zabbix, utilizando o item Browser, disponível a partir do Zabbix 7.0:

Na imagem a segur, temos um exemplo de dashboard resultante da configuração anterior:

Para termos essa monitoração, é necessário integrar o Zabbix Server ou Zabbix Proxy ao Selenium Server, ou WebDriver como o ChromeDriver. Essa integração é responsável por controlar e interagir com o navegador, realizando testes como clicar em botões, preencher formulários e também coletar métricas de todos os passos envolvidos.

No exemplo anterior, foi utilizado um container do Selenium. Mas, suponhamos que o usuário tenha o Docker instalado e em pleno funcionamento. Neste caso, é necessário executar o seguinte comando:

docker run --name browser \
-d -p 4444:4444 \
--shm-size="2g" \
selenium/standalone-chrome:latest

Onde,

  • docker run –name browser – cria um novo container Docker e terá o nome de “browser”;
  • -d – executa o container em segundo plano;
  • -p 4444:4444 – realiza o mapeamento da porta 4444 interna do container para a porta 4444 do host hospedeiro;
  • –shm-size=”2g” – aloca 2GB de memória compartilhada para o container, isso serve para garantir o funcionamento correto do Google Chrome, pois em alguns casos é exigido uma utilização significativa de memória para evitar falhas;
  • selenium/standalone-chrome:latest – define a imagem docker a ser utilizada. Neste caso, a mais recente do repositório Selenium com Chrome.

Após a execução do comando, é necessário verificar se o container está rodando, executando o comando “docker ps” ou “docker container os“, conforme exemplo abaixo:

Também é possível conferir via curl ou acessar via navegador para verificar o estado do Selenium.

  • Via navegador: acesse o IP e a porta 4444:

  • Via curl: recupere o conteúdo da página da web do Selenium Server usando “curl -L 192.0.2.1:4444“, no terminal do host que hospeda o container ou no terminal do servidor onde está o Zabbix Server:

Finalizadas as validações, é hora de configurar o Zabbix Server ou Proxy para ser capaz de utilizar o WebDriver. A linha de configuração é a mesma em ambos os casos. No exemplo abaixo, vamos configurar no Zabbix Proxy.

  • Abra o arquivo de configuração do proxy:
vi /etc/zabbix/zabbix_proxy.conf
  • Localize e defina a URL do WebDriver:
WebDriverURL=http://localhost:4444

No exemplo, o container do WebDriver está na mesma máquina virtual (VM) do Proxy. Além de ser apenas um laboratório, a VM foi configurada com recursos consideráveis. Em ambiente de produção, a recomendação é ter uma VM dedicada ao WebDriver ou apartada do Zabbix Server/Proxy, para evitar a concorrência por recursos.

  • Reinicie o serviço do Zabbix Proxy:
systemctl restart zabbix-proxy

Feito isso, vamos entender como realizar a configuração no frontend do Zabbix.

  • Crie um host;
  • Defina o nome para: ZABBIX-WEB;
  • Atrele o template “Website by Browser”;
  • No campo “Host Groups“, insira “Applications“;
  • Defina o Proxy que está com a configuração do Webdriver.

A seguir, preencha as macros de acordo com o seu cenário:

  • {$WEBSITE.DOMAIN} – é a URL ou IP de acesso da aplicação;
  • {$WEBSITE.GET.DATA.INTERVAL} – define o intervalo de coleta, nesse caso, 10 minutos é o suficiente;
  • {$WEBSITE.SCHEME} – define se o protocolo é HTTP ou HTTPS.

Agora, nasta esperar os resultados aparecerem no campo latest data ou acessar a tela de dashboard já configurada no template:

Para chegar ao resultado do dashboard abaixo, foi necessário criar um item do tipo Brower, similar do item que já existe por padrão no template:

O novo item é capaz de realizar testes de login, coletar métricas das páginas e fazer capturas de tela de login e logout, além de registrar falhas no login quando necessário.

O retorno do JSON é semelhante ao apresentado abaixo, com métricas exibidas de cada passo. A partir disso, é possível criar novos itens dependentes, LLDs e outras possibilidades na monitoria.

Outro ponto interessante é a criação de itens dependentes para filtrar as capturas de tela geradas, como mostramos no exemplo abaixo:

Esse filtro pode ser ajustado no dashboard do Zabbix:

É necessário marcar a opção “Show thumbnail” para que a imagem apareça no dashboard.

Também vale ressalvar que as imagens são gravadas no banco de dados no formado base64. Por isso, no campo latest data, a imagem é identificada com um valor binário:

Com todos esses dados e informações em mãos, é possível criar novas triggers, além das já existentes, criar novos itens com testes de performance e navegabilidade.

Conclusão sobre monitoramento sintético

A combinação entre Web Scenarios e o novo item Browser do Zabbix representa um avanço significativo na monitoração sintética de sites e aplicações. Enquanto os Web Scenarios fornecem um método simples, robusto e amplamente utilizado para validar disponibilidade, medir tempos de resposta e identificar erros HTTP, o recurso Browser amplia esse conceito ao permitir simulações reais de navegação utilizando JavaScript e Selenium.

Essa evolução possibilita reproduzir com fidelidade o comportamento do usuário final, incluindo cliques, preenchimento de formulários, fluxos de autenticação e validações visuais por meio de screenshots.

A utilização conjunta dessas duas abordagens fornece um ecossistema completo de métricas, que abrange desde a velocidade de download, tempos de resposta por etapa e códigos HTTP até métricas avançadas de renderização, carregamento de elementos e evidências visuais. Com isso, o Zabbix entrega não apenas um monitoramento sintético tradicional, mas uma visão profunda do desempenho real da aplicação, permitindo identificar gargalos antes que afetem a experiência do usuário.

Leve sua monitoração para o próximo nível com o Zabbix

Quer explorar na prática os recursos de Web Scenarios e Browser Monitoring e descobrir como implementar monitoramento sintético avançado no seu ambiente? Acesse o site oficial da Zabbix e conheça a documentação, os casos de uso e as novidades que estão transformando a forma como equipes de TI acompanham a experiência dos usuários e a disponibilidade das aplicações.

Prev Post Prev Post
Inscrever-se
Notificar de
0 Comments
mais antigos
mais recentes Mais votado
0
Adoraria saber sua opinião, comente.x