Prometheus: Blackbox Exporter
如何使用 Prometheus Blackbox Exporter 探测 HTTP 和 ICMP(ping)端点
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即用型 Prometheus 云 解决方案,具有多种优势,包括:
- 包含
Alert Manager,可发送警报到Slack、Mattermost、PagerDuty等。- 专用电子邮件服务器发送无限制电子邮件警报。
Blackbox用于探测HTTP、ICMP、TCP等。- 使用在线配置文件编辑器进行简单配置。
- 只需点击即可轻松更新。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化生活:只需5 分钟即可试用 Stackhero 的 Prometheus 云托管 解决方案!
Prometheus Blackbox Exporter 简介
Prometheus Blackbox Exporter 是一个强大的工具,可以使用多种协议探测端点,包括 HTTP、HTTPS、DNS、TCP 和 ICMP。这种灵活性允许全面监控基础设施和服务的不同方面。
例如,在探测 HTTP 和 HTTPS 端点时,您可以:
- 通过检查 2xx HTTP 状态码来验证网站的可用性。
- 确保返回特定内容,例如将网页标题与预期文本匹配。
- 通过检索 TLS 证书的到期日期来验证证书,帮助您防止意外的续订问题。
- 通过评估 DNS 解析时间和 TLS 握手的持续时间来衡量性能。
使用 ICMP,您可以确认服务器响应 ping 请求并测量其响应时间。此外,DNS 探测提供回复时间的见解,而 TCP 探测允许您连接到服务以验证 SSH 服务器横幅的内容和版本。
Stackhero for Prometheus 的大图
Prometheus Blackbox Exporter 配置
设置 Blackbox Exporter 涉及两个关键文件:用于核心设置的 blackbox-exporter.yml 和定义 Prometheus 如何从导出器抓取数据的 prometheus.yml。
配置 Blackbox Exporter 核心
在 blackbox-exporter.yml 文件中找到的核心配置,指定支持哪些协议以及如何监控它们。
在 Stackhero for Prometheus 上,此文件预配置为支持 ICMP 监控和 HTTP/HTTPS 监控(通过 GET 和 POST 请求)。如果您需要为更高级的场景定制此文件,可以查看 Blackbox Exporter 仓库中的配置示例,并查阅官方文档以获取更多指导。
配置 Prometheus Blackbox Exporter 目标
大部分配置将在 prometheus.yml 文件中进行,您可以像其他导出器一样指示 Prometheus 从 Blackbox Exporter 抓取数据。
例如,考虑下面的配置,它每 15 秒检查一次 prometheus.io 和 grafana.com 的 ICMP(ping)响应(由 scrape_interval 定义)。您可以将此块添加到 prometheus.yml 文件的 scrape_configs 部分,并更新 targets 数组以包含您希望监控的域名或 IP 地址:
- 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 部分,并更新 targets 数组以包含您希望监控的 URL:
- 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 显示最后一次抓取的结果
配置 Grafana 显示来自 Blackbox Exporter 的 Prometheus 数据
Grafana 使创建可视化 Blackbox Exporter 收集的性能和可用性指标的仪表板变得简单。只需点击几下,您就可以设置动态仪表板,使您的 Prometheus 数据栩栩如生。有关将 Grafana 与 Prometheus 集成的更多详细信息,您可以探索 Grafana 的文档。
由 Grafana 生成的仪表板示例,基于 Prometheus Blackbox Exporter 数据