前言
Blackbox Exporter - Prometheus Operator
prometheus-operator
blackbox_exporter/example.yml at master · prometheus/blackbox_exporter
Prometheus Operator + Blackbox exporter | 好好学习的郝
prometheus-operator 中配置 blackbox-exporter
prometheus-operator 将 prometheus 配置抽象为 k8s 的自定义资源 CRD。配置监控目标时,可选的 CRD 包括:
(1) servicemonitors:基于 k8s service、select 机制,发现监控目标,最终由 operator 自动生成 scrape 配置。
例如,kube-prometheus-stack(prometheus-community/helm-chart/kube-prometheus-stack) 自带的 node-exporter。
(2) probes:指定应如何监控 ingress 或 静态目标,最终由 operator 自动生成 scrape 配置。
适用于配置 blackbox-exporter。(查看 CRD probes.monitoring.coreos.com 的定义)
(3) podmonitors。
但通过上网搜以及实践,确认以下三种方式均可实现对 blackbox-exporter 的配置:
1. additionalScrapeConfigs
在 kube-prometheus-stack 的 helm chart 包的 values.yaml 文件中,开启 additionalScrapeConfigsSecret:
## If additional scrape configurations are already deployed in a single secret file you can use this section.## Expected values are the secret name and key## Cannot be used with additionalScrapeConfigsadditionalScrapeConfigsSecret:enabled: true #开启name: additional-configs #secret名称key: prometheus-additional.yaml #secret key
创建对应的 k8s secret:
$ cat prometheus-additional.yaml- job_name: blackbox_http_2xxmetrics_path: /probeparams:module: [http_2xx]static_configs:- targets:- https://www.baidu.comrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: ${blackbox-exporter-svc:port}# 新建 secret$ kubectl -n monitoring create secret generic additional-configs \--from-file=prometheus-additional.yaml# 更新 secretkubectl -n monitoring create secret generic additional-configs \--from-file=prometheus-additional.yaml --dry-run=client -o yaml | kubectl apply -f -
2. serviceMonitorSpec.endpoints
from: Prometheus Operator + Blackbox exporter | 好好学习的郝
apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata:labels:name: blackbox-exporterrelease: prometheusname: blackbox-exporternamespace: monitoringspec:namespaceSelector:matchNames:- monitoringselector:matchLabels:name: blackbox-exporterendpoints:- interval: 15sport: http-metricspath: /proberelabelings:- action: replaceregex: (.*)replacement: $1sourceLabels:- __meta_kubernetes_service_label_clustertargetLabel: cluster- action: replaceregex: (.*)replacement: $1sourceLabels:- __param_moduletargetLabel: module- action: replaceregex: (.*)replacement: $1sourceLabels:- __param_targettargetLabel: targetparams:module:- http_2xxtarget:- http://prometheus.io
3. probes
创建 probe 资源保存配置:
$ cat probe.yamlkind: ProbeapiVersion: monitoring.coreos.com/v1metadata:name: probe-websitenamespace: monitoringlabels:release: prometheusspec:interval: 60smodule: http_2xxprober:url: blackbox-exporter.default.svc.cluster.local:9115targets:staticConfig:static:- https://www.baidu.com$ kubectl apply -f probe.yaml
配置生效:
