Como monitorar o desempenho do site com Blackbox Exporter e Grafana?

Adora Grafana para monitoramento de métricas de servidor? Você também vai adorar o Blackbox Exporter para monitoramento de sites!

Neste tutorial, você aprenderá a instalar o Blackbox Exporter no CentOS/RHEL e entenderá como usá-lo com o Prometheus e o Grafana para monitorar o desempenho e o tempo de atividade do site.

O que é Blackbox Exporter?

Exportador Blackbox por Prometheus é usado para sondar endpoints como HTTPS, HTTP, TCP, DNS e ICMP. Depois de definir o endpoint, o exportador Blackbox gera centenas de métricas que podem ser visualizadas usando o Grafana. Medir o tempo de resposta é o recurso mais importante do exportador Blackbox.

O Blackbox Exporter é uma solução auto-hospedada. Se você está procurando algo semelhante, mas como SaaS ou baseado em nuvem, pode experimentar o Grafana worldPing.

Pré-requisitos

Prometheus e Grafana devem ser pré-instalados. Siga este artigo para instalar o Prometheus e o Grafana.

Instalação do Blackbox Exporter

Deixe-me mostrar como instalar o exportador Blackbox primeiro.

Passo 1: Baixe o Blackbox Exporter

Vou ao Página Oficial para baixar o mais recente pacote do exportador Linux AMD Blackbox. Estou baixando o arquivo blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Transfira o arquivo baixado para o servidor
  • Extraia os arquivos do pacote.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Verifique todos os arquivos dentro do exportador Blackbox.

[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ls -l
total 16672
-rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter
-rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml
-rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE
-rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE

Dois arquivos blackbox_exporter e blackbox.yml são importantes aqui.

  • blackbox_exporter: Este é um arquivo executável para executar o serviço.
  • blackbox.yml: Um arquivo YAML com todas as configurações do exportador backbox que você define todos os pontos de extremidade para sondar e módulos para executar.
  Interessado no HomePod mini? Aqui está o que você precisa saber

O comando abaixo fornecerá todos os sinalizadores que você pode usar com o exportador Blackbox.

[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter [<flags>]

Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).

--config.file="blackbox.yml"
Blackbox exporter configuration file.
--web.listen-address=":9115"
The address to listen on for HTTP requests.

--timeout-offset=0.5 Offset to subtract from timeout in seconds.

--config.check If true validate the config file and then exit.

--history.limit=100 The maximum amount of items to keep in the history.

--web.external-url=<url>
The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a
reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a
path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL
components will be derived automatically.

--web.route-prefix=<path>
Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.

--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]

--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.

Etapa 2: Criar usuário para Blackbox

Isso é opcional.

Você pode criar um novo usuário para executar o Blackbox ou usar usuários existentes do Prometheus para executá-lo.

Forneça permissões e atribua a propriedade de todos os seus arquivos ao novo usuário.

[[email protected] ~]$ sudo useradd -rs /bin/false blackbox
[[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[[email protected] ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64

Etapa 3: configurar o serviço Blackbox

É hora de configurar o Blackbox Exporter como um serviço dentro do systemd. Crie um arquivo blackbox.service e coloque as linhas mencionadas abaixo no arquivo e salve-o.

[[email protected] ~]$ sudo gedit /etc/systemd/system/blackbox.service

[Unit]
Description=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml

[Install]
WantedBy=multi-user.target

Não se esqueça de alterar o caminho para o local onde você o extraiu.

  Como multiplicar números em planilhas do Google

Passo 4: Inicie o Blackbox Exporter

Execute os comandos abaixo para iniciar o exportador Blackbox como um serviço.

[[email protected] ~]$ sudo systemctl daemon-reload
[[email protected] ~]$ sudo systemctl start blackbox.service
[[email protected] ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter Service
Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago
Main PID: 30427 (blackbox_export)
Tasks: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml

Jun 13 17:28:40 etechpt.com.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file"
Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30

Excelente!

O exportador Blackbox foi iniciado com sucesso. Em http://localhost:9115/ você pode encontrar o Blackbox Exporter em execução.

Integrando o Blackbox com o Prometheus

Vamos integrar o Blackbox Exporter com o Prometheus para começar a coletar as métricas.

  • Adicione um trabalho blackbox com as configurações abaixo dentro do arquivo prometheus.yml. Vou monitorar o desempenho de https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml

- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
[[email protected] ~]$ sudo systemctl restart prometheus.service
  • Ao verificar os destinos em http://localhost:9090/targets novamente, você encontrará um trabalho de caixa preta em execução com o endpoint que defini.

  • Clique no gráfico e execute a consulta – probe_http_duration_seconds.

  • Uma visualização será criada nos dados que estão sendo monitorados pelo Prometheus.

Agora é hora de visualizar o trabalho do Blackbox no Grafana.

Há muitas maneiras de começar, mas uma das mais rápidas seria começar com um painel pronto – Prometheus Blackbox Exportador.

  • Vá para o painel do Grafana, clique no sinal + e clique em Importar.
  • Em Import via grafana.com, coloque o id do painel 7587 e clique em Load.
  • Em seguida, selecione a fonte de dados Prometheus e clique em Importar.
  Como usar o Couchpotato para baixar filmes

  • O painel do Prometheus Blackbox Exporter será importado.
  • Você poderá visualizar métricas como duração global da sondagem, status, duração do HTTP, duração média da sondagem, pesquisa média de DNS, expiração de SSL e muito mais.

  • Todos esses são painéis separados no painel. Deixe-me mostrar o painel HTTP Duration em detalhes. Este painel mostra a visualização da duração do tempo gasto para conectar, processar, resolver, tls e solicitações de transferência.

Existem muitas opções no painel com as quais você pode brincar. Você pode alterar o intervalo de tempo para o qual deseja que a visualização apareça. Você também pode alterar o intervalo de tempo na atualização de dados; aqui, os novos dados chegam ao painel a cada 5 segundos.

  • Ao clicar na seta para baixo Duração do HTTP, você obterá as opções mostradas abaixo. Clique em editar.

  • Abaixo do painel de visualização, você terá um editor de consultas. Atualmente, a consulta mostrada no instantâneo abaixo está sendo visualizada – probe_http_duration_seconds.

  • Existem centenas de consultas que você pode visualizar facilmente e adicioná-las ao seu painel de acordo com o requisito.

  • Você também tem muitas opções para alterar o tipo de visualização. A duração média do probe está presente no painel no formato de texto. No painel de visualização à direita, clique na opção Medidor para obter a duração média da sonda.

  • E é assim que a visualização mudará.

Conclusão

O que foi dito acima é apenas para você ter uma ideia de como é fácil monitorar o site com o Prometheus Blackbox e o Grafana. Existem muitas opções, e eu sugiro fortemente brincar com ele para experimentá-lo. Se você está curioso para aprender Grafana, então confira o curso online.

Gostou de ler o artigo? Que tal compartilhar com o mundo?