Prometheus: Blackbox Exporter

如何使用 Prometheus Blackbox Exporter 探测 HTTP 和 ICMP(ping)端点

👋 欢迎来到 Stackhero 文档!

Stackhero 提供即用型 Prometheus 云 解决方案,具有多种优势,包括:

  • 包含 Alert Manager,可发送警报到 SlackMattermostPagerDuty 等。
  • 专用邮件服务器发送无限制邮件警报
  • Blackbox 用于探测 HTTPICMPTCP 等。
  • 使用在线配置文件编辑器进行轻松配置
  • 只需点击即可轻松更新
  • 专用私有 VM提供的最佳性能和强大安全性

节省时间简化生活:只需 5 分钟即可试用 Stackhero 的 Prometheus 云托管 解决方案!

Prometheus Blackbox Exporter 是一个强大的工具,允许您使用多种协议探测端点,包括 HTTP、HTTPS、DNS、TCP 和 ICMP。这种灵活性使您能够全面监控基础设施和服务的不同方面。

例如,在探测 HTTP 和 HTTPS 端点时,您可以:

  • 通过检查 2xx HTTP 状态码验证网站的可用性。
  • 确保返回特定内容,例如将网页标题与预期文本匹配。
  • 通过获取 TLS 证书的到期日期来验证证书,帮助您防止意外的续订问题。
  • 通过评估 DNS 解析时间和 TLS 握手持续时间来衡量性能。

使用 ICMP,您可以确认服务器响应 ping 请求并测量其响应时间。此外,DNS 探测提供回复时间的见解,而 TCP 探测允许您连接到服务以验证 SSH 服务器横幅的内容和版本。

Stackhero for Prometheus 的大图Stackhero for Prometheus 的大图

设置 Blackbox Exporter 涉及两个关键文件:用于核心设置的 blackbox-exporter.yml 和定义 Prometheus 如何从导出器抓取数据的 prometheus.yml

blackbox-exporter.yml 文件中找到的核心配置指定了支持哪些协议以及如何监控它们。

Stackhero for Prometheus 上,此文件预配置为支持 ICMP 监控和 HTTP/HTTPS 监控(通过 GET 和 POST 请求)。如果您需要为更高级的场景定制此文件,可以查看 Blackbox Exporter 仓库中的配置示例,并查阅官方文档以获取更多指导。

大部分配置将在 prometheus.yml 文件中进行,您将在其中指示 Prometheus 像其他导出器一样从 Blackbox Exporter 抓取数据。

例如,考虑下面的配置,它每 15 秒检查一次 prometheus.iografana.com 的 ICMP(ping)响应(由 scrape_interval 定义)。您可以将此块添加到 prometheus.yml 文件的 scrape_configs 部分,并使用您希望监控的域名或 IP 地址更新 targets 数组:

  - 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" ]

类似地,下面的配置监控 HTTP 服务器。在此设置中,如果 HTTP 响应状态不在 2xx 范围内,则目标被标记为错误。您可以将此块插入到 prometheus.yml 文件的 scrape_configs 部分,并使用您希望监控的 URL 更新 targets 数组:

  - 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/" ]

配置好抓取任务后,您可以在 Blackbox UI 中查看调试日志。UI 的链接在您的 Stackhero 仪表板上可用,提供有关探测结果的宝贵见解。

Blackbox UI 显示最后一次抓取的结果Blackbox UI 显示最后一次抓取的结果

Grafana 使创建可视化 Blackbox Exporter 收集的性能和可用性指标的仪表板变得简单。只需点击几下,您就可以设置动态仪表板,使您的 Prometheus 数据栩栩如生。有关将 Grafana 与 Prometheus 集成的更多详细信息,您可以探索 Grafana 的文档

由 Grafana 生成的仪表板示例,基于 Prometheus Blackbox Exporter 数据由 Grafana 生成的仪表板示例,基于 Prometheus Blackbox Exporter 数据