Prometheus: Blackbox Exporter
Como usar o Prometheus Blackbox Exporter para sondar endpoints HTTP e ICMP (ping)
👋 Bem-vindo à documentação da Stackhero!
A Stackhero disponibiliza uma plataforma Prometheus cloud totalmente gerida, concebida para garantir fiabilidade e simplicidade:
- O
Alert Managerestá integrado, permitindo-lhe encaminhar alertas diretamente para oSlack,Mattermost,PagerDutye outros destinos populares.- Um servidor de email dedicado permite-lhe enviar alertas por email ilimitados sem necessidade de configuração adicional.
- O
Blackboxestá incluído, possibilitando a monitorização de protocolos comoHTTP,ICMP,TCPe outros, para uma supervisão abrangente.- Configure rapidamente a sua instância através do editor online de ficheiros de configuração. Não é necessário editar YAML manualmente.
- Aplique atualizações com um único clique. A Stackhero gere todo o processo de atualização por si, minimizando o tempo de indisponibilidade e a intervenção manual.
- Elevado desempenho e segurança reforçada estão garantidos, graças à sua infraestrutura privada e dedicada.
Fique operacional em cerca de 5 minutos. A Stackhero trata da configuração para que se possa concentrar na monitorização, não na manutenção. Experimente o Prometheus cloud hosting da Stackhero para simplificar os seus fluxos de trabalho de monitorização e alertas.
Introdução ao Prometheus Blackbox Exporter
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 Prometheus
Configuração do Prometheus Blackbox Exporter
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.
Configuração do núcleo do Blackbox 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.
Configuração do alvo do Prometheus Blackbox Exporter
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 sondagens
Configuração do Grafana para exibir dados do Prometheus do Blackbox Exporter
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 Exporter