ITMMC

Zabbix 7.0 leva o monitoramento de sites a um novo nível

 

O Zabbix 7.0rc2 foi lançado há poucos dias, e uma das adições mais marcantes é o modelo pré-construído para o novo monitoramento de sites baseado em Selenium. Claro que tive que experimentar.

Espere, monitoramento de novo site?

Sim, o Zabbix 7.0 vem com um novo tipo de item de navegador . Ele permite que você teste qualquer site usando Selenium e pode até fazer e armazenar capturas de tela para um novo tipo de item binário . O Zabbix 7.0 não inclui o Selenium para você, mas colocar o Selenium em funcionamento é fácil, basta seguir as instruções do seu sistema operacional.

O Selenium executa uma instância headless do Google Chrome, Firefox ou qualquer outro navegador da web, para que seu site seja testado exatamente como os usuários finais o veriam. Isso é fantástico, especialmente com a adição das capturas de tela – você poderá ver como seu site ficou quando ocorreu alguma situação de erro.

Mas quais as vantagens?

Perspectiva do cliente final: O monitoramento fundamentado em Selenium possibilita simular a vivência do cliente final ao acessar o site, assegurando que o desempenho e a funcionalidade estejam conforme o previsto. Isso é crucial para garantir uma experiência satisfatória ao usuário e detectar questões que possam impactar diretamente na satisfação do cliente.

Testes precisos: O Selenium permite a realização de testes minuciosos, garantindo que todas as funcionalidades do site estejam operando corretamente. Isso engloba interações como preenchimento de formulários, cliques em botões e navegação por diferentes páginas, assegurando que todas as partes do sítio estejam funcionando conforme o esperado.

Capturas de tela: A habilidade de capturar e armazenar imagens da tela em caso de falhas ou erros é uma ferramenta valiosa para a depuração. As capturas de tela podem oferecer insights visuais sobre o que deu errado e auxiliar na identificação rápida e precisa de problemas.

Detecção proativa de problemas: Ao monitorar continuamente o site ou sistema com testes automatizados, é possível identificar problemas e anomalias assim que surgirem. Isso possibilita que a equipe de operações tome medidas corretivas imediatas antes que os problemas afetem os usuários finais.

Criar um teste de carga ou monitorar lentidão utilizando a solução de monitoramento baseada em Selenium no Zabbix da seguinte maneira:

Mas como tudo isso se Integra?

Integração com o Zabbix: Como parte do Zabbix, o monitoramento baseado em Selenium se integra perfeitamente com outras funcionalidades do sistema, como notificações e relatórios. Isso simplifica a administração e a manutenção do monitoramento, fornecendo uma solução abrangente para monitorar tanto a infraestrutura quanto a experiência do usuário.

Em síntese, o monitoramento de páginas fundamentado em Selenium no Zabbix 7.0 oferece um método poderoso e eficiente para garantir a disponibilidade, o desempenho e a funcionalidade dos seus sítios, possibilitando uma detecção proativa de problemas e uma resposta ágil a quaisquer anomalias que possam surgir.

Configurando Zabbix para Selenium

Depois de ter seu servidor Selenium  funcionando, conectar o Zabbix a ele será muito fácil. Basta adicionar essas duas linhas ao arquivo de configuração do servidor Zabbix.

WebDriverURL=http://your.selenium.server:4444
StartBrowserPollers=1

… as linhas são autoexplicativas, mas WebDriverURL é a URL do seu servidor Selenium e StartBrowserPollers informa quantas verificações simultâneas de sites podem estar acontecendo.

Não sabe como instalar o Selenium segue me uguia passa a passo: Clique Aqui

Baixe o modelo

Caso você tenha atualizado seu Zabbix para 7.0rc2 de alguma versão mais antiga em vez de uma nova instalação, baixe o novo modelo de navegador nos modelos oficiais do Zabbix.

Configure sua primeira verificação de novo site

No meu caso, acabei de adicionar o novo modelo para este blog, tenho um host whatsuphome.fi para ele.

Em seguida, fui até as macros do host e alterei o endereço:

…. e é isso mesmo para começar!

Como é o painel padrão do Selenium?

Esta é a aparência do painel padrão do Selenium que vem com o novo modelo.

Você verá quanto tempo demorou para carregar os recursos da página, quanto tempo levou para handshakes TLS, pesquisas de DNS e muitas outras métricas. E você poderá ver as capturas de tela de uma forma muito intuitiva, como um rolo de filme.

Isso é ótimo!

Sob o capô

Nos bastidores, o novo item do navegador é muito configurável. Em termos de parâmetros gerais, é muito parecido com qualquer outro tipo de item do Zabbix.

 

E se você olhar o Script, verá que o script de exemplo padrão que vem com o modelo é na verdade muito simples e fácil de estender às suas necessidades.

const Website = {
   params: {},
   setParams(params) {
       ['scheme', 'domain','width', 'height'].forEach(function (field) {
           if (typeof params !== 'object' || !params[field]) {
               throw new Error('Required param is not set: ' + field + '.');
           }
       });
       this.params = params;
   },
   getOptions(browser) {
       switch ((browser || '').trim().toLowerCase()) {
           case 'firefox':
               return Browser.firefoxOptions();
           case 'safari':
               return Browser.safariOptions();
           case 'edge':
               return Browser.edgeOptions();
           default:
               return Browser.chromeOptions();
       }
   },
   getPerformance() {
       const browser = new Browser(Website.getOptions(Website.params.browser));
       const url = Website.params.scheme + '://' + Website.params.domain + '/' + Website.params.path
       const screenshot = '';
       browser.setScreenSize(Number(Website.params.width), Number(Website.params.height))
       browser.navigate(url);
       browser.collectPerfEntries();
       screenshot = browser.getScreenshot();
       const result = browser.getResult();
       result.screenshot = screenshot;
       return JSON.stringify(result);
   }
};
try {
   Website.setParams(JSON.parse(value));
   return Website.getPerformance();
} catch (error) {
   error += (String(error).endsWith('.')) ? '' : '.';
   Zabbix.log(3, '[ Website get metrics] ERROR: ' + error);
   return JSON.stringify({ 'error': error });
}

Finalmente, depois de muitos anos, temos uma forma nativa e moderna de monitoramento sintético de sites no Zabbix. Nossa, o Zabbix 7.0 está realmente se preparando para ser um dos maiores lançamentos do Zabbix de todos os tempos.

 

Fonte: Whatsuphome.fi

 

Sair da versão mobile