prometheus-blackbox-exporter 正在触发误报警报

Posted

技术标签:

【中文标题】prometheus-blackbox-exporter 正在触发误报警报【英文标题】:prometheus-blackbox-exporter is Firing false positive alerts 【发布时间】:2021-04-26 16:09:00 【问题描述】:

我们在我们的 Kubernetes 集群中使用社区 helm 图表设置了完整的 Prometheus 堆栈 - Prometheus/Grafana/Alertmanager/Node Explorer/Blackbox exporter。监控堆栈部署在其自己的命名空间中,我们的主要软件(由微服务组成)部署在默认命名空间中。警报运行良好,但是黑盒导出器没有正确抓取指标(我猜)并且经常触发误报警报。我们使用最后一个来探测我们的微服务 HTTP liveness/readiness 端点。

我与该问题相关的配置(在 values.yaml 中)如下所示:

- alert: InstanceDown
           expr: up == 0
           for: 5m
           annotations:
             title: 'Instance  $labels.instance  down'
             description: ' $labels.instance  of job  $labels.job  has been down for more than 5 minutes.'
- alert: ExporterIsDown
           expr: upjob="prometheus-blackbox-exporter" == 0
           for: 5m
           labels:
             severity: warning
           annotations:
             summary: "Blackbox exporter is down"
             description: "Blackbox exporter is down or not being scraped correctly"
...
...
...
extraScrapeConfigs:  |
   - job_name: 'prometheus-blackbox-exporter'
     metrics_path: /probe
     params:
       module: [http_2xx]
     static_configs:
       - targets:
         - http://service1.default.svc.cluster.local:8082/actuator/health/liveness
         - http://service2.default.svc.cluster.local:8081/actuator/health/liveness
         - http://service3.default.svc.cluster.local:8080/actuator/health/liveness
     relabel_configs:
       - source_labels: [__address__]
         target_label: __param_target
       - source_labels: [__param_target]
         target_label: instance
       - target_label: __address__
         replacement: prometheus-blackbox-exporter:9115

这 2 个警报每小时触发一次,但当时端点是 100% 可到达的。

我们使用默认的 prometheus-blackbox-exporter/values.yaml 文件:

config:
  modules:
    http_2xx:
      prober: http
      timeout: 5s
      http:
        valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
        no_follow_redirects: false
        preferred_ip_protocol: "ip4"

邮件因此看起来是这样的:

5] Firing
Labels
alertname = InstanceDown
instance = http://service1.default.svc.cluster.local:8082/actuator/health/liveness
job = prometheus-blackbox-exporter
severity = critical

另一种类型的电子邮件

Labels
alertname = ExporterIsDown
instance = http://service1.default.svc.cluster.local:8082/actuator/health/liveness
job = prometheus-blackbox-exporter
severity = warning
Annotations
description = Blackbox exporter is down or not being scraped correctly
summary = Blackbox exporter is down

我注意到的另一件奇怪的事情是,在 Prometheus UI 中,我没有看到任何 probe_* 指标,如下所示https://lapee79.github.io/en/article/monitoring-http-using-blackbox-exporter/ 不确定我们做错了什么或错过了什么,但收到数百封误报电子邮件非常烦人。

【问题讨论】:

【参考方案1】:

回答我自己的问题。我好像输入了:

replacement: prometheus-blackbox-exporter:9115

但它必须是服务名称:

replacement: stage-prometheus-blackbox-exporter:9115

根据文档:

replacement: localhost:9115 # 黑盒导出器的真实主机名:端口。对于 Windows 和 macOS 替换为 -host.docker.internal:9115

对于 Kubernetes,虽然它应该是 blackbox-exporter 的服务名称,但没有很好的记录。或者至少我在任何地方都没有找到这个。

获取服务:

kubectl get svc -l app.kubernetes.io/name=prometheus-blackbox-exporter

【讨论】:

以上是关于prometheus-blackbox-exporter 正在触发误报警报的主要内容,如果未能解决你的问题,请参考以下文章