Monitorando Sites com Blackbox Exporter, Prometheus e Grafana
Se você já utiliza o Grafana para observar as métricas do seu servidor, certamente apreciará o Blackbox Exporter para monitorar seus sites! Este guia prático mostrará como instalar o Blackbox Exporter no CentOS/RHEL e como integrá-lo com Prometheus e Grafana para acompanhar o desempenho e a disponibilidade do seu site.
O que é o Blackbox Exporter?
O Blackbox Exporter, desenvolvido pelo projeto Prometheus, é uma ferramenta que realiza sondagens em diferentes tipos de endpoints, como HTTPS, HTTP, TCP, DNS e ICMP. Após a configuração do endpoint, o Blackbox Exporter gera uma variedade de métricas que podem ser visualizadas no Grafana. A capacidade de medir o tempo de resposta é um dos seus principais recursos.
O Blackbox Exporter é uma solução que você instala e gerencia. Se busca algo semelhante, mas em formato SaaS ou baseado na nuvem, o Grafana Cloud oferece o worldPing.
Pré-requisitos
Para seguir este tutorial, você precisa ter o Prometheus e o Grafana previamente instalados. Caso ainda não tenha, siga este artigo para instalá-los.
Instalação do Blackbox Exporter
Vamos começar com a instalação do Blackbox Exporter:
Passo 1: Download do Blackbox Exporter
Acesse a página oficial para baixar a versão mais recente do pacote Linux AMD64. Neste exemplo, usaremos o arquivo blackbox_exporter-0.16.0.linux-amd64.tar.gz.
- Transfira o arquivo para o seu servidor.
- Extraia os arquivos do pacote.
tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Verifique os arquivos dentro da pasta extraída:
cd blackbox_exporter-0.16.0.linux-amd64/ ls -l
Você verá algo como:
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
Os arquivos blackbox_exporter
e blackbox.yml
são os mais importantes aqui:
blackbox_exporter
: É o executável que inicia o serviço.blackbox.yml
: Arquivo YAML com as configurações do Blackbox Exporter, incluindo os endpoints a serem monitorados e os módulos a serem executados.
O comando abaixo exibe todos os parâmetros que podem ser usados com o Blackbox Exporter:
./blackbox_exporter -h
Você verá uma saída com os parâmetros disponíveis, como:
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 o Blackbox
Este passo é opcional, mas recomendado. Você pode criar um usuário dedicado para o Blackbox ou utilizar um usuário existente do Prometheus.
Atribua as permissões e a propriedade dos arquivos ao novo usuário:
sudo useradd -rs /bin/false blackbox sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64 sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
Etapa 3: Configurar o Serviço Blackbox
Agora, configure o Blackbox Exporter como um serviço do systemd. Crie um arquivo blackbox.service
e adicione o seguinte conteúdo (ajustando os caminhos conforme necessário):
sudo gedit /etc/systemd/system/blackbox.service
Cole o seguinte:
[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
Certifique-se de substituir o caminho pelo local onde você extraiu o Blackbox Exporter.
Passo 4: Inicie o Blackbox Exporter
Use os seguintes comandos para iniciar o serviço:
sudo systemctl daemon-reload sudo systemctl start blackbox.service sudo systemctl status blackbox.service
Se tudo estiver correto, você verá uma saída semelhante a esta:
● 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
O Blackbox Exporter agora está em execução e acessível em http://localhost:9115/
.
Integrando o Blackbox com o Prometheus
Para começar a coletar as métricas, vamos integrar o Blackbox Exporter com o Prometheus.
- Adicione um novo job chamado
blackbox
no arquivoprometheus.yml
. Aqui, monitoraremos o site https://www.telegraph.co.uk.
sudo gedit /etc/prometheus/prometheus.yml
Adicione as seguintes linhas:
- job_name: 'blackbox' metrics_path: /probe params: module: [http_2xx] # Busca uma resposta HTTP 200 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 # Endereço real do blackbox exporter
Reinicie o serviço do Prometheus para aplicar as alterações:
sudo systemctl restart prometheus.service
- Acesse a interface do Prometheus em http://localhost:9090/targets. Você verá o novo job
blackbox
em execução, monitorando o endpoint que você definiu. - Na interface de consulta do Prometheus, execute a consulta
probe_http_duration_seconds
para verificar os dados monitorados.
Agora, vamos visualizar os dados no Grafana.
Visualizando no Grafana
Uma forma rápida de começar é importar um painel pré-configurado, como o Prometheus Blackbox Exporter.
- No painel do Grafana, clique no sinal
+
e selecioneImportar
. - Em
Import via grafana.com
, insira o ID7587
e clique emLoad
. - Selecione a fonte de dados Prometheus e clique em
Importar
.
- O painel do Prometheus Blackbox Exporter será importado.
- Você verá métricas como a duração geral da sondagem, status, duração do HTTP, média da duração da sondagem, pesquisa média de DNS, validade do SSL e mais.
No painel, explore as diferentes visualizações. Por exemplo, o painel HTTP Duration
exibe o tempo gasto em diferentes etapas da requisição HTTP: conexão, processamento, resolução de DNS, handshake TLS e transferência de dados.
Você pode ajustar o intervalo de tempo e a frequência de atualização. Para isso, clique na seta para baixo ao lado de Duração HTTP
e selecione Editar
.
Na aba Consulta
, você pode visualizar e editar a consulta que está gerando o gráfico (probe_http_duration_seconds
neste caso).
- Existem muitas outras métricas que você pode visualizar e adicionar ao seu painel conforme sua necessidade.
- Você também pode alterar o tipo de visualização. Por exemplo, a média da duração da sondagem é exibida como texto por padrão. No painel de visualização, clique em
Medidor
para exibir o valor em um gráfico de medidor.
- O resultado será a mudança da visualização.
Conclusão
Este guia oferece uma visão geral de como monitorar sites com Prometheus Blackbox e Grafana. Explore as diversas opções e experimente as configurações. Se você deseja se aprofundar no Grafana, este curso online pode ser útil.
Gostou do artigo? Compartilhe com outras pessoas!