Monitore sites com itens de navegador

Introdução

Esta página orienta você pelas etapas necessárias para iniciar o monitoramento básico de sites com browser items.

Para quem este guia é destinado

Este guia foi elaborado 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 browser items. Se você estiver procurando opções de personalização avançada ou precisar de uma configuração mais sofisticada, consulte a página Browser items ou a seção Configuration 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 diferir ligeiramente. Este guia é baseado em um ambiente executando Ubuntu.

Configurar o WebDriver

Itens de browser exigem uma estrutura de automação (Selenium Server ou um WebDriver simples, por exemplo, ChromeDriver) como um endpoint de teste web que controla e interage com um browser, executando comandos de teste como clicar em botões ou inserir texto. Como exemplo, este guia usará o Selenium Server com Chrome em um contêiner 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 Install Docker Engine on Ubuntu.

1. Inicie o Selenium Server com Chrome em um contêiner Docker com as seguintes opções:

  • docker run --name browser - executa um novo contêiner Docker chamado "browser";
  • -p 4444:4444 - mapeia a porta 4444 na sua máquina host para a porta 4444 no contêiner (esta é a porta usada pelo Selenium Server para aceitar comandos);
  • -p 7900:7900 - mapeia a porta 7900 na sua máquina host para a porta 7900 no contêiner (esta é a porta usada pelo servidor Virtual Network Computing (VNC), permitindo que você visualize a interface gráfica do browser remotamente; requer um cliente VNC);
  • --shm-size="2g" - aloca 2 GB de memória compartilhada para o contêiner (isso é importante para o Chrome funcionar corretamente, pois ele pode exigir uma quantidade significativa de memória compartilhada para evitar falhas);
  • -d - executa o contêiner em modo detached, ou seja, 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. Verifique se o contêiner Docker browser está em execução e acessível.

  • Recupere o endereço IP do contêiner (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 contêiner com 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 com 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 server Zabbix

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 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 server Zabbix.

vi /etc/zabbix/zabbix_server.conf

2. Localize e defina o parâmetro WebDriverURL no arquivo de configuração do server Zabbix:

### 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 server Zabbix.

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, alterne 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 site que você especificou.

Para ver 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 site.

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é Configurações do usuário → Perfil, altere para a aba Media e adicione seu email.

2. Siga o guia para Receber uma notificação de problema.

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 website 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 configurada 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 website 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 website.

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.