Pular para o conteúdo principal

Como instalar Prometheus + Blackbox Exporter no Linux

O Prometheus coleta/armazenha métricas. O Blackbox Exporter executa probes externos (HTTP/HTTPS, ICMP/ping, TCP, DNS) — ideal para monitorar sites e o link da internet.

Aqui você instala ambos via binários oficiais (mesmo procedimento para Ubuntu/Debian e CentOS/RHEL), cria serviços systemd e configura HTTP + ICMP.

Resumo

  • Prometheus: porta 9090 (troque se conflitar com Cockpit).

  • Blackbox Exporter: 9115.

  • Dashboard Grafana (Blackbox): ID 7587.


1) Pré-requisitos

Instale utilitários, conforme sua distro:

Ubuntu/Debian

sudo apt-get update sudo apt-get install -y wget tar ca-certificates sudo update-ca-certificates

CentOS/RHEL/Rocky/Alma

sudo yum install -y wget tar ca-certificates || sudo dnf install -y wget tar ca-certificates sudo update-ca-trust

Crie diretórios:

sudo mkdir -p /opt/prometheus /opt/blackbox_exporter

2) Instalar Prometheus (binário oficial, distro-agnóstico)

Ajuste a versão se desejar.

PROM_VERSION=2.55.0 cd /tmp wget https://github.com/prometheus/prometheus/releases/download/v${PROM_VERSION}/prometheus-${PROM_VERSION}.linux-amd64.tar.gz tar -xzf prometheus-${PROM_VERSION}.linux-amd64.tar.gz sudo cp -fv prometheus-${PROM_VERSION}.linux-amd64/prometheus /opt/prometheus/ sudo cp -fv prometheus-${PROM_VERSION}.linux-amd64/promtool /opt/prometheus/ sudo cp -r prometheus-${PROM_VERSION}.linux-amd64/console_libraries /opt/prometheus/ sudo cp -r prometheus-${PROM_VERSION}.linux-amd64/consoles /opt/prometheus/ rm -rf prometheus-${PROM_VERSION}.linux-amd64*

Usuário, permissões e dados:

sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus || true sudo mkdir -p /opt/prometheus/data sudo chown -R prometheus:prometheus /opt/prometheus

Configuração mínima (/opt/prometheus/prometheus.yml):

global: scrape_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] # ajuste se mudar a porta

Service systemd (/etc/systemd/system/prometheus.service):

[Unit] Description=Prometheus Monitoring Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/opt/prometheus/prometheus \ --config.file=/opt/prometheus/prometheus.yml \ --storage.tsdb.path=/opt/prometheus/data \ --web.listen-address=:9090 \ --web.enable-lifecycle Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target

Ativar e subir:

sudo systemctl daemon-reload sudo systemctl enable --now prometheus sudo systemctl status prometheus -l

Conflito comum (CentOS): se o Cockpit estiver em :9090/https, mude o Prometheus para :9091 no ExecStart acima.


3) Instalar Blackbox Exporter

BB_VERSION=0.25.0 cd /tmp wget https://github.com/prometheus/blackbox_exporter/releases/download/v${BB_VERSION}/blackbox_exporter-${BB_VERSION}.linux-amd64.tar.gz tar -xzf blackbox_exporter-${BB_VERSION}.linux-amd64.tar.gz sudo cp -fv blackbox_exporter-${BB_VERSION}.linux-amd64/blackbox_exporter /opt/blackbox_exporter/ rm -rf blackbox_exporter-${BB_VERSION}.linux-amd64*

Usuário e permissões (com ICMP sem root):

sudo useradd --no-create-home --shell /usr/sbin/nologin blackbox || true sudo chown -R blackbox:blackbox /opt/blackbox_exporter sudo setcap cap_net_raw+ep /opt/blackbox_exporter/blackbox_exporter

Config (/opt/blackbox_exporter/blackbox.yml):

modules: http_ok: prober: http timeout: 10s http: method: GET preferred_ip_protocol: ip4 follow_redirects: true valid_status_codes: [] # aceita 2xx e 3xx headers: User-Agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36" tls_config: insecure_skip_verify: false # use true apenas para testes icmp: prober: icmp timeout: 5s icmp: preferred_ip_protocol: ip4

Service (/etc/systemd/system/blackbox.service):

[Unit] Description=Blackbox Exporter Wants=network-online.target After=network-online.target [Service] User=blackbox Group=blackbox ExecStart=/opt/blackbox_exporter/blackbox_exporter --config.file=/opt/blackbox_exporter/blackbox.yml --web.listen-address=:9115 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

Ativar e subir:

sudo systemctl daemon-reload sudo systemctl enable --now blackbox sudo systemctl status blackbox -l

4) Conectar Prometheus ↔ Blackbox (HTTP + ICMP)

Edite /opt/prometheus/prometheus.yml e adicione os jobs (ajuste alvos):

global: scrape_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] # ajuste a porta se mudou - job_name: blackbox_http metrics_path: /probe params: module: [http_ok] # definido no blackbox.yml static_configs: - targets: - https://seusite1.com - https://www.seusite2.com relabel_configs: # PLURAL - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 127.0.0.1:9115 # Blackbox via IPv4 - job_name: blackbox_icmp metrics_path: /probe params: module: [icmp] static_configs: - targets: - 8.8.8.8 # seu link (Google DNS) # - 192.168.1.1 # seu roteador (opcional) 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

Validar e reiniciar:

/opt/prometheus/promtool check config /opt/prometheus/prometheus.yml sudo systemctl restart prometheus

5) Testes rápidos

  • Blackbox: http://SEU_IP:9115

  • Targets: http://SEU_IP:9090/targets (ou porta que você definiu)

Teste do módulo HTTP:

curl -s 'http://127.0.0.1:9115/probe?module=http_ok&target=https://seusite1.com' | grep probe_success # Esperado: probe_success 1

6) Firewall

Ubuntu/Debian (UFW):

sudo ufw allow 9090/tcp # (ou 9091) sudo ufw allow 9115/tcp sudo ufw reload

CentOS/RHEL (firewalld):

sudo firewall-cmd --add-port=9090/tcp --permanent # ajuste porta sudo firewall-cmd --add-port=9115/tcp --permanent sudo firewall-cmd --reload

7) Integrar ao Grafana

  1. Data Source: Prometheus → URL http://localhost:9090 (ou a porta escolhida) → Save & Test.

  2. Dashboard pronto: Import → ID 7587 (Blackbox Exporter) → selecione a data source → Import.

  3. Alertas: crie regras no Grafana monitorando probe_success (alertar quando == 0 por X minutos).


8) Troubleshooting

  • Porta 9090 abre Cockpit (CentOS) → mude o Prometheus para :9091 no service.

  • Todos os targets DOWN com connect: connection refused → Blackbox não iniciou ou replacement errado.

  • ICMP UNKNOWN/FAIL → falta setcap no binário do Blackbox ou está rodando sem permissão.

  • Erros YAML → valide com promtool.

  • IPv6 “Network unreachable” → já forçamos IPv4 nos módulos e no replacement.

  • SSL → só para teste, use insecure_skip_verify: true.


9) Reset de dados (opcional)

sudo systemctl stop prometheus blackbox sudo rm -rf /opt/prometheus/data/* sudo systemctl start prometheus blackbox

Conclusão

Instalando via binários oficiais, você evita diferenças entre gerenciadores de pacotes e garante o mesmo procedimento em Ubuntu/Debian e CentOS/RHEL. A partir daqui, é só adicionar seus domínios/hosts no prometheus.yml, importar o dashboard 7587 no Grafana e configurar alertas.

Sobre Eduardo L. A. Marques

Especialista em Gestão e Liderança de equipes, apaixonado por tecnologia e comunicação. Compartilhando insights práticos para ajudar profissionais e empresas a alcançarem seu máximo potencial.

Conecte-se no LinkedIn
Tecnologia do Blogger.