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