可通过部署多实例Blackbox Exporter(按地域)、统一Prometheus采集与Grafana可视化,构建多区域网络连通监控体系;核心是多实例+统一配置+地域标签+分布式探测。

要实现多区域网络连通监控,Blackbox 本身不构成“集群”,但可通过部署多个 Blackbox Exporter 实例(分布在不同地域节点),配合统一 Prometheus 采集与 Grafana 可视化,构建逻辑上的多点拨测能力。核心在于“多实例 + 统一配置 + 地域标签 + 分布式探测”。
选择并部署多个 Blackbox 实例(按地域)
每个监控区域(如广州、上海、北京、新加坡)应部署一个独立的 Blackbox Exporter 实例,推荐方式如下:
- 使用腾讯云轻量应用服务器或 K3s 节点,在各区域单独部署,避免跨地域网络延迟干扰探测结果
- 容器化部署时,为每个实例打上唯一地域标签,例如:
region=shanghai、region=singapore - 若用 Kubernetes,建议为每个区域创建独立命名空间(如
monitor-sh、monitor-sg),或至少用nodeSelector或tolerations确保 Pod 调度到目标区域节点 - 镜像优先选用国内加速源,如
registry.cn-hangzhou.aliyuncs.com/prometheus/blackbox-exporter:v0.25.0
配置地域感知的探针模块
Blackbox 的 modules 配置需支持差异化策略,尤其针对 HTTPS/SSL 检查、重定向、超时等场景:
- 在 ConfigMap 中定义多个模块,例如:
http_2xx_sh(上海)、http_2xx_sg(新加坡),分别设置不同timeout和tls_config.insecure_skip_verify - 对海外站点启用
preferred_ip_protocol: ip4并禁用 IPv6 回退(ip_protocol_fallback: false),避免因 IPv6 不可达导致误判 - 关键业务可额外启用
http_ssl_cert模块,单独采集证书过期时间,便于大屏展示 SSL 健康度
Prometheus 多实例服务发现与标签注入
Prometheus 需能区分来自不同区域的探测数据,靠静态配置或文件服务发现均可,关键是注入地域维度:
- 静态配置示例(prometheus.yml):
- job_name: 'blackbox-gz'
static_configs:
- targets: ['blackbox-gz.monitoring.svc.cluster.local:9115']
labels:
region: guangzhou
- job_name: 'blackbox-sh'
static_configs:
- targets: ['blackbox-sh.monitoring.svc.cluster.local:9115']
labels:
region: shanghai
- 更推荐
file_sd_configs:将各区域 target 列表拆分为独立 JSON 文件(如targets-gz.json、targets-sg.json),Prometheus 自动热加载,无需重启 - 所有
probe任务中必须添加relabel_configs,把 target 的域名、项目名、环境等作为 label 注入指标,例如:source_target、env、project
Grafana 多维度聚合与故障定位
可视化层决定能否真正发挥多区域监控价值:
- 仪表盘中用变量(
$region、$target)实现下拉筛选,支持单点钻取(如只看新加坡对 github.com 的 ICMP 丢包率) - 关键图表包括:各区域对同一目标的 HTTP 响应时间对比折线图、按 region 分组的 probe_success 状态热力图、SSL 证书剩余天数 TopN 表格
- 设置告警规则时,避免简单判断
probe_success == 0,而应结合多区域一致性:例如 “连续 2 个区域探测失败” 才触发 P1 告警,减少单点抖动误报 - 大屏展示建议固定 3×3 网格:左上角为全局概览(成功率/平均延时),中间为地域分布地图(可用 geoip 插件着色),右下角为最近异常事件流

















