#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
Просто убедитесь, что метки совпадают.