Схема управления Prometheus: как настроить экспорт черного ящика?

#prometheus #kubernetes-helm #prometheus-blackbox-exporter

#kubernetes #prometheus #kubernetes-helm #prometheus-blackbox-exporter

Вопрос:

Я использую kube-prometheus-stack. В дополнение к нему я установил экспортер черного ящика Prometheus.

Когда я хочу добавить цель очистки в свой kube-prometheus-stack, мне обычно нужно добавить 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
  

Это работает до сих пор, то есть экспортер черного ящика отображается в моих целях prometheus.

Однако для настройки экспортера черного ящика мне пришлось бы добавить цель очистки, подобную этой (в файле конфигурации prometheus, если не используется kube-prometheus-stack):

 - 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 , чтобы добавить цели проверки для экспортера черного ящика?

Ответ №1:

Экспортер Blackbox работает по-другому. Вам не нужно создавать ServiceMonitor, чтобы очистить его и предоставить ему static_configs . Вместо этого вы создаете ServiceMonitor с параметрами, переданными в HTTP-запросе.

Например:

 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
  

Просто убедитесь, что метки совпадают.