fix(monitoring): scrape pve via Service VIP + node FQDNs, no hardcoded IPs #296
@@ -81,12 +81,17 @@ spec:
|
||||
# (the pre-2026-07 config) ingested every node/guest series 3x —
|
||||
# identical `id`, differing `instance` — a real TSDB cardinality
|
||||
# cost that dashboards had to paper over with max by (id).
|
||||
# Trade-off: cluster metrics pause if .201 is down; node-local
|
||||
# metrics below keep flowing from the surviving nodes.
|
||||
#
|
||||
# Target the pve Service (apps ns) rather than a hardcoded node IP:
|
||||
# its EndpointSlice load-balances the PVE API across all three nodes,
|
||||
# so cluster metrics keep flowing as long as ANY node is up, instead
|
||||
# of pausing whenever .201 (jupiter) specifically is down. The
|
||||
# exporter reaches the API on 8006 (verify_ssl:false, so the LB'd
|
||||
# cert hostname mismatch is a non-issue).
|
||||
- job_name: pve
|
||||
static_configs:
|
||||
- targets:
|
||||
- "10.2.40.201"
|
||||
- "pve.apps.svc.cluster.local"
|
||||
metrics_path: /pve
|
||||
params:
|
||||
cluster: ["1"]
|
||||
@@ -103,12 +108,15 @@ spec:
|
||||
# node-local and genuinely distinct per target, so every node is
|
||||
# scraped — this is the split recommended by prometheus-pve-exporter
|
||||
# upstream to avoid the cluster-collector duplication above.
|
||||
# Targets are the node FQDNs, not raw IPs: the instance label then
|
||||
# reads jupiter/neptune/saturn.renner.uno, and a renumbered node is
|
||||
# picked up from DNS without editing this file.
|
||||
- job_name: pve-node
|
||||
static_configs:
|
||||
- targets:
|
||||
- "10.2.40.201"
|
||||
- "10.2.40.202"
|
||||
- "10.2.40.203"
|
||||
- "jupiter.renner.uno"
|
||||
- "neptune.renner.uno"
|
||||
- "saturn.renner.uno"
|
||||
metrics_path: /pve
|
||||
params:
|
||||
cluster: ["0"]
|
||||
|
||||
Reference in New Issue
Block a user