Prometheus: Blackbox Exporter

Como usar o Prometheus Blackbox Exporter para sondar endpoints HTTP e ICMP (ping)

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Prometheus cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Alert Manager incluído para enviar alertas para Slack, Mattermost, PagerDuty, etc.
  • Servidor de email dedicado para enviar alertas de email ilimitados.
  • Blackbox para sondar HTTP, ICMP, TCP, e mais.
  • Configuração fácil com editor de ficheiros de configuração online.
  • Atualizações sem esforço com apenas um clique.
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de hospedagem cloud Prometheus da Stackhero!

O Prometheus Blackbox Exporter é uma ferramenta poderosa que permite sondar endpoints usando vários protocolos, incluindo HTTP, HTTPS, DNS, TCP e ICMP. Esta flexibilidade permite uma monitorização abrangente de diferentes aspetos da sua infraestrutura e serviços.

Por exemplo, ao sondar endpoints HTTP e HTTPS, pode:

  • Verificar a disponibilidade de um site web verificando um código de estado HTTP 2xx.
  • Garantir que conteúdo específico é retornado, como fazer corresponder um título de página web ao texto esperado.
  • Validar certificados TLS recuperando as suas datas de expiração, ajudando a prevenir problemas inesperados de renovação.
  • Medir o desempenho avaliando os tempos de resolução DNS e a duração do handshake TLS.

Usando ICMP, pode confirmar que os servidores respondem a pedidos de ping e medir os seus tempos de resposta. Além disso, a sondagem DNS fornece informações sobre os tempos de resposta, enquanto a sondagem TCP permite conectar-se a um serviço para verificar o conteúdo e a versão de um banner de servidor SSH.

Imagem geral do Stackhero para PrometheusImagem geral do Stackhero para Prometheus

Configurar o Blackbox Exporter envolve trabalhar com dois ficheiros principais: blackbox-exporter.yml para configurações principais e prometheus.yml para definir como o Prometheus recolhe dados do exporter.

A configuração principal, encontrada no ficheiro blackbox-exporter.yml, especifica quais protocolos suportar e como devem ser monitorizados.

No Stackhero para Prometheus, este ficheiro está pré-configurado para suportar tanto a monitorização ICMP como a monitorização HTTP/HTTPS (via pedidos GET e POST) desde o início. Se precisar de adaptar este ficheiro para cenários mais avançados, pode consultar exemplos de configuração no repositório Blackbox Exporter e consultar a documentação oficial para mais orientações.

A maior parte da sua configuração será feita no ficheiro prometheus.yml, onde instrui o Prometheus a recolher dados do Blackbox Exporter como qualquer outro exporter.

Por exemplo, considere a configuração abaixo que verifica as respostas ICMP (ping) de prometheus.io e grafana.com a cada 15 segundos (como definido pelo scrape_interval). Pode adicionar este bloco ao seu ficheiro prometheus.yml na seção scrape_configs e atualizar o array targets com os nomes de domínio ou endereços IP que deseja monitorizar:

  - job_name: "blackbox-icmp"
    metrics_path: "/blackbox-exporter/probe"
    params:
      module: [ "icmp" ]
    relabel_configs:
      - source_labels: [ "__address__" ]
        target_label: "__param_target"
      - source_labels: [ "__param_target" ]
        target_label: "instance"
      - target_label: "__address__"
        replacement: "prometheus-blackbox-exporter:9115"
    static_configs:
      - targets: [ "prometheus.io", "grafana.com" ]

Da mesma forma, a configuração abaixo monitoriza servidores HTTP. Nesta configuração, se o estado de resposta HTTP não estiver na faixa 2xx, o alvo é sinalizado como erróneo. Pode inserir este bloco no seu ficheiro prometheus.yml na seção scrape_configs e atualizar o array targets com os URLs que deseja monitorizar:

  - job_name: "blackbox-http"
    metrics_path: "/blackbox-exporter/probe"
    params:
      module: [ "http_2xx" ]
    relabel_configs:
      - source_labels: [ "__address__" ]
        target_label: "__param_target"
      - source_labels: [ "__param_target" ]
        target_label: "instance"
      - target_label: "__address__"
        replacement: "prometheus-blackbox-exporter:9115"
    static_configs:
      - targets: [ "https://prometheus.io/", "https://grafana.com/" ]

Uma vez configurados os seus trabalhos de scraping, pode rever os logs de depuração na interface Blackbox. O link para a interface está disponível no seu painel Stackhero, oferecendo informações valiosas sobre os resultados das sondagens.

Interface Blackbox mostrando os resultados das últimas sondagensInterface Blackbox mostrando os resultados das últimas sondagens

O Grafana facilita a criação de dashboards que visualizam as métricas de desempenho e disponibilidade recolhidas pelo Blackbox Exporter. Com apenas alguns cliques, pode configurar dashboards dinâmicos que dão vida aos seus dados do Prometheus. Para mais detalhes sobre a integração do Grafana com o Prometheus, pode explorar a documentação do Grafana.

Exemplo de um dashboard gerado pelo Grafana, baseado em dados do Prometheus Blackbox ExporterExemplo de um dashboard gerado pelo Grafana, baseado em dados do Prometheus Blackbox Exporter