Prometheus: Blackbox Exporter

Cómo usar Prometheus Blackbox Exporter para sondear endpoints HTTP e ICMP (ping)

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución nube de Prometheus lista para usar que proporciona una serie de beneficios, incluyendo:

  • Alert Manager incluido para enviar alertas a Slack, Mattermost, PagerDuty, etc.
  • Servidor de correo electrónico dedicado para enviar alertas de correo electrónico ilimitadas.
  • Blackbox para sondear HTTP, ICMP, TCP, y más.
  • Configuración fácil con un editor de archivos de configuración en línea.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de alojamiento en la nube de Prometheus de Stackhero!

El Prometheus Blackbox Exporter es una herramienta poderosa que le permite sondear endpoints utilizando varios protocolos, incluidos HTTP, HTTPS, DNS, TCP e ICMP. Esta flexibilidad permite una monitorización completa de diferentes aspectos de su infraestructura y servicios.

Por ejemplo, al sondear endpoints HTTP y HTTPS, puede:

  • Verificar la disponibilidad de un sitio web comprobando un código de estado HTTP 2xx.
  • Asegurarse de que se devuelve contenido específico, como hacer coincidir un título de página web con el texto esperado.
  • Validar certificados TLS recuperando sus fechas de expiración, ayudándole a prevenir problemas inesperados de renovación.
  • Medir el rendimiento evaluando los tiempos de resolución DNS y la duración del handshake TLS.

Usando ICMP, puede confirmar que los servidores responden a las solicitudes de ping y medir sus tiempos de respuesta. Además, la sondeo DNS proporciona información sobre los tiempos de respuesta, mientras que la sondeo TCP le permite conectarse a un servicio para verificar el contenido y la versión de un banner de servidor SSH.

Imagen general de Stackhero para PrometheusImagen general de Stackhero para Prometheus

Configurar el Blackbox Exporter implica trabajar con dos archivos clave: blackbox-exporter.yml para configuraciones básicas y prometheus.yml para definir cómo Prometheus extrae datos del exporter.

La configuración básica, que se encuentra en el archivo blackbox-exporter.yml, especifica qué protocolos admitir y cómo deben ser monitorizados.

En Stackhero para Prometheus, este archivo está preconfigurado para admitir tanto la monitorización ICMP como la monitorización HTTP/HTTPS (a través de solicitudes GET y POST) desde el principio. Si necesita adaptar este archivo para escenarios más avanzados, puede consultar ejemplos de configuración en el repositorio de Blackbox Exporter y consultar la documentación oficial para obtener más orientación.

La mayor parte de su configuración se realizará en el archivo prometheus.yml, donde instruye a Prometheus para extraer datos del Blackbox Exporter como cualquier otro exporter.

Por ejemplo, considere la configuración a continuación que verifica las respuestas ICMP (ping) de prometheus.io y grafana.com cada 15 segundos (según lo definido por el scrape_interval). Puede agregar este bloque a su archivo prometheus.yml dentro de la sección scrape_configs y actualizar la matriz targets con los nombres de dominio o direcciones IP que desea 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" ]

De manera similar, la configuración a continuación monitoriza servidores HTTP. En esta configuración, si el estado de respuesta HTTP no está en el rango 2xx, el objetivo se marca como erróneo. Puede insertar este bloque en su archivo prometheus.yml bajo la sección scrape_configs y actualizar la matriz targets con las URLs que desea 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/" ]

Una vez que sus trabajos de scraping están configurados, puede revisar los registros de depuración en la interfaz de Blackbox. El enlace a la interfaz está disponible en su panel de Stackhero, ofreciendo información valiosa sobre los resultados de las sondas.

Interfaz de Blackbox mostrando los resultados de los últimos sondeosInterfaz de Blackbox mostrando los resultados de los últimos sondeos

Grafana facilita la creación de paneles que visualizan las métricas de rendimiento y disponibilidad recopiladas por el Blackbox Exporter. Con solo unos pocos clics, puede configurar paneles dinámicos que dan vida a sus datos de Prometheus. Para obtener más detalles sobre la integración de Grafana con Prometheus, puede explorar la documentación de Grafana.

Ejemplo de un panel generado por Grafana, basado en datos de Prometheus Blackbox ExporterEjemplo de un panel generado por Grafana, basado en datos de Prometheus Blackbox Exporter