Prometheus中Blackbox Exporter目标显示异常,请求修正ServiceMonitor配置
解决Prometheus Blackbox Exporter目标显示IP而非配置域名的问题
问题出在你的ServiceMonitor没有正确将目标域名传递给Blackbox Exporter,同时缺少标签重写规则替换显示的实例名称。以下是修正后的配置及关键说明:
修正后的ServiceMonitor配置示例
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: blackbox-exporter namespace: monitoring # 替换为你的监控命名空间 labels: release: prometheus # 匹配Prometheus实例的release标签 spec: selector: matchLabels: app: blackbox-exporter # 匹配Blackbox Service的标签 endpoints: - port: http # 匹配Blackbox Service的端口名称 interval: 30s params: module: [http_2xx] # 对应blackbox.yml中定义的探测模块 target: ["https://app.test.com"] # 指定要监控的目标域名 relabelings: - sourceLabels: [__param_target] targetLabel: instance replacement: "$1" # 将请求参数中的target值替换为instance标签
关键配置说明
params.target:必须明确指定要探测的目标域名,否则Blackbox会默认将自身服务的IP作为探测目标,这就是你看到IP的原因。relabelings规则:通过将__param_target(即你设置的域名)赋值给instance标签,让Prometheus的targets页面显示域名而非Blackbox的服务IP。- 标签匹配:确保
spec.selector.matchLabels与Blackbox Service的标签完全匹配,否则Prometheus无法关联到Blackbox服务。
验证步骤
- 应用修正后的配置:
kubectl apply -f servicemonitor.yaml -n monitoring - 等待Prometheus自动加载配置(或手动重启Prometheus Pod)
- 查看Prometheus的
status -> targets页面,此时目标实例应显示为https://app.test.com
内容的提问来源于stack exchange,提问作者NiveditaK
相关产品推荐
相关产品推荐

