问题描述
我正在使用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
只需确保标签匹配即可。