首页/云/可观测性速查/blackbox 探测模块:http、tcp、icmp、dns
Prometheus 与采集64 条

blackbox 探测模块:http、tcp、icmp、dns

blackbox_exporter 内置多种探测类型:http(状态码与内容断言)、tcp 连接、icmp ping、dns 解析;模块在配置文件中预定义,抓取时用参数选择。

可观测性速查云更新于 2026-10-13

blackbox 探测模块是什么

blackbox_exporter 把「探测」做成可配置的模块:每个模块声明一种探测类型(http、tcp、icmp、dns)与超时、断言等参数,抓取时通过参数指定用哪个模块。它输出的不是被探测对象的业务指标,而是探测行为本身的结果:成功了没有、耗时多少、卡在哪个阶段。这让它成为白盒监控之外的第二视角。

基本信息

适用平台Prometheus 生态,blackbox_exporter 独立进程
默认端口9115,路径 /probe 接收探测请求
可选模块http、tcp、icmp、dns、grpc 等
结果指标probe_success、probe_duration_seconds 及分阶段耗时

典型使用场景

  • 网站可用性:从外部探测域名,校验状态码与页面关键字
  • TCP 连通性:探测数据库或中间件端口是否可建立连接
  • ICMP 可达性:判断网络层是否通,与 TCP 探测交叉定位
  • DNS 解析:验证解析结果是否正确、耗时是否异常
  • 证书到期:通过 HTTPS 探测确认证书链有效且未临期
  • 多地体验对比:不同探测点探测同一地址,横向比较各区域响应时间

多模块配置与抓取

多模块配置与抓取
modules:
  http_2xx:                      # 基础可用性
    prober: http
    timeout: 5s
  tcp_connect:                   # 端口连通性
    prober: tcp
    timeout: 5s
  icmp_ping:                     # 网络层可达
    prober: icmp
    timeout: 3s
  dns_udp:                       # 解析验证
    prober: dns
    dns:
      query_name: 'example.com'
      query_type: 'A'

# 抓取端通过 params 选择模块,并把目标地址经 relabel 传给 exporter

关键结果指标

指标含义异常读法
probe_success探测是否成功(1 或 0)为 0 说明该次探测失败
probe_duration_seconds探测总耗时与历史基线对比更有效
probe_http_status_codeHTTP 响应状态码5xx 与 4xx 的处理优先级不同
probe_dns_lookup_time_secondsDNS 解析耗时突增通常指向解析服务问题
probe_ssl_earliest_cert_expiry证书最早到期时间用于提前安排续期
icmp 探测需要额外权限:容器部署要放开底层网络能力,否则模块报权限错误,容易被误判为网络不通。
probe_success 为 0 时先看分段耗时指标(DNS 解析、连接建立、TLS 握手)判断失败环节,这比反复换探测目标更快定位。
探测目标与模块的组合要写进配置而不是手工执行:手工探测只能说明当时状态,只有纳入周期抓取才会形成可用于告警与复盘的时间序列。

易错点

  • 抓取配置忘记传 module 参数时会落到默认模块,探测类型与预期不符却照样有数据
  • icmp 模块在容器里缺少必要权限时报错,被当成网络故障处理,白花排查时间
  • 只探测健康检查路径不覆盖真实业务路径,探测全绿而用户已经无法下单
  • 把 probe_duration_seconds 的绝对值当阈值,未考虑探测点网络差异,跨地域误报频繁

数据来源与参考

  • blackbox_exporter 项目文档(github.com/prometheus/blackbox_exporter)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌