最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Prometheus 如何配置服务状态的主动探测
时间:2026-08-28 08:15:48 编辑:袖梨 来源:一聚教程网
Prometheus 主动探测服务状态的核心是 Blackbox Exporter:部署后验证其健康页与指标抓取,通过 Kubernetes Probe 资源定义目标、模块(如 http_2xx)和频率,Prometheus 以 /probe?target=xxx&module=yyy 方式抓取 probe_success、probe_duration_seconds 等指标实现可达性、延迟及证书监控。
用 Prometheus 配置服务状态的主动探测,核心是借助 Blackbox Exporter 实现黑盒监控:不看内部指标,只模拟真实用户行为,发请求、连端口、ping 主机,判断“能不能通”“通得快不快”“证书有没有过期”。
部署并验证 Blackbox Exporter
这是整个主动探测的基础组件。它本身不采集数据,而是接收 Prometheus 的指令去探测目标,并把结果暴露为指标。
- 在 Kubernetes 中,通常以 Pod 形式部署在
monitoring命名空间下,监听默认端口9115 - 确认 Service 已正确暴露该端口,且能被 Prometheus 访问(比如通过 ClusterIP 或 headless Service)
- 访问
http://<blackbox-ip>:9115,能看到健康页面和/probe接口说明 - 检查其自身指标是否被 Prometheus 抓取成功,例如查询
up{job="blackbox-exporter"}应返回 1
定义 Probe 资源(K8s 场景)
在 Kubernetes + Prometheus Operator 环境中,用 Probe 自定义资源描述你要探测什么、怎么探、多久探一次。
-
spec.targets.staticConfig.targets:填目标地址,如https://example.com、api.myapp.svc.cluster.local:8080或10.244.1.5:3306 -
spec.module:选探测类型,常用有http_2xx(检查 HTTP 状态码)、tcp_connect(测端口连通性)、icmp(ping)、https_2xx(含证书校验) -
spec.interval:设置探测频率,如30s或2m -
spec.prober.url:指向 Blackbox Exporter 的地址,格式为http://blackbox-exporter.monitoring.svc:9115
配置 Prometheus 抓取逻辑
Prometheus 需要知道去哪里拉取 Probe 执行后的结果。Operator 会自动将 Probe 转为正确的 scrape 配置,但需确保:
- 对应
ServiceMonitor或PrometheusRule已关联到当前 Prometheus 实例 - 抓取路径为
/probe?target=xxx&module=yyy,Prometheus 会把 target 和 module 作为参数传给 Blackbox - relabel_configs 可用于统一打标,例如添加
env="prod"、team="backend",方便后续聚合与告警
验证与使用关键指标
探测启动后,Prometheus 会生成一批以 probe_ 开头的指标,最常用的是:
-
probe_success:1 表示探测成功,0 表示失败(如超时、连接拒绝、HTTP 非 2xx) -
probe_duration_seconds:整个探测耗时,可用于性能趋势分析 -
probe_http_status_code:HTTP 探测返回的状态码 -
probe_ssl_earliest_cert_expiry:HTTPS 探测中最早即将过期的证书时间戳(单位秒)
把这些指标写进 Grafana 面板或 Alertmanager 告警规则里,就能实现服务可达性、响应延迟、证书有效期等维度的主动监控。