Prometheus Helm Chart:如何配置黑盒导出器?

问题描述

我正在使用kube-prometheus-stack。除了它,我还安装了Prometheus BlackBox Exporter。

当我想向我的kube-prometheus堆栈中添加一个抓取目标时,通常需要添加一个ServiceMonitor。我为黑盒导出器添加了以下ServiceMonitor

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
Metadata:
  name: blackBox-exporter-servicemonitor
  labels:
    app: blackBox-exporter-app
    release: prometheus
spec:
  endpoints:
  - interval: 30s
    path: /metrics
    port: http
    scrapeTimeout: 10s
  selector:
    matchLabels:
      app: blackBox-exporter-app

到目前为止,这仍然有效,这意味着黑盒导出器会显示在我的普罗米修斯目标中。

但是,要配置黑盒导出器,我必须添加一个这样的抓取目标(在不使用kube-prometheus-stack的情况下,在prometheus配置文件中):

- job_name: 'blackBox'
  metrics_path: /probe
  params:
    module: [http_2xx]  # Look for a HTTP 200 response.
  static_configs:
    - targets:
      - http://localhost:5000
      - http://localhost:3000
      - http://localhost:9090
  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: 127.0.0.1:9115  # The blackBox exporter's real hostname:port.

我被困在哪里?如何将这样的配置添加到服务监视器,以便可以添加static_configs来为黑盒导出器添加探测目标?

解决方法

黑盒导出器的工作方式不同。 您无需创建ServiceMonitor即可对其进行刮擦并为其提供static_configs。而是使用在HTTP请求中传递的参数来创建ServiceMonitor。

例如:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: blackbox-exporter-kibana
  name: blackbox-exporter-kibana
  namespace: ops-system
spec:
  endpoints:
    - interval: 10s
      path: /probe
      port: web
      params:
        module: 
        - http_2xx
        target: 
        - "https://localhost:5000"
      metricRelabelings:
      - action: replace
        regex: (.*)
        replacement: my_local_service
        sourceLabels:
        - __param_target
        targetLabel: target
  selector:
    matchLabels:
      app: prometheus-blackbox-exporter

只需确保标签匹配即可。