330 lines
9.8 KiB
YAML
330 lines
9.8 KiB
YAML
# ------------------------------------------------------------------------------
|
|
# kube-prometheus-stack — Helm Values
|
|
# Chart: https://prometheus-community.github.io/helm-charts
|
|
# Version: 70.4.2
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# ─── Alertmanager ─────────────────────────────────────────────────────────────
|
|
alertmanager:
|
|
enabled: true
|
|
alertmanagerSpec:
|
|
storage:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: nfs-emporium
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
|
|
# ─── Prometheus ───────────────────────────────────────────────────────────────
|
|
prometheus:
|
|
prometheusSpec:
|
|
retention: 30d
|
|
retentionSize: "45GB"
|
|
|
|
storageSpec:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: nfs-emporium
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 50Gi
|
|
|
|
# Scrape all ServiceMonitors/PodMonitors regardless of namespace
|
|
serviceMonitorSelectorNilUsesHelmValues: false
|
|
podMonitorSelectorNilUsesHelmValues: false
|
|
ruleSelectorNilUsesHelmValues: false
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 2Gi
|
|
|
|
# ─── Additional scrape configs — external targets ──────────────────────────
|
|
additionalScrapeConfigs:
|
|
|
|
# Proxmox nodes — Node Exporter on each hypervisor
|
|
- job_name: proxmox-nodes
|
|
scrape_interval: 30s
|
|
static_configs:
|
|
- targets:
|
|
- 10.1.71.11:9100
|
|
- 10.1.71.12:9100
|
|
- 10.1.71.13:9100
|
|
labels:
|
|
job: proxmox
|
|
|
|
# cinderella-castle — existing VM-side Prometheus host
|
|
# Remove this once cinderella-castle is decommissioned
|
|
- job_name: node-cinderella-castle
|
|
scrape_interval: 30s
|
|
static_configs:
|
|
- targets:
|
|
- 10.1.71.31:9100
|
|
labels:
|
|
hostname: cinderella-castle
|
|
|
|
# Traefik metrics
|
|
- job_name: traefik
|
|
scrape_interval: 30s
|
|
static_configs:
|
|
- targets:
|
|
- 10.1.71.35:8080
|
|
labels:
|
|
hostname: lightning-lane
|
|
|
|
# Proxmox VE Exporter — cluster-level metrics (VM states, storage, CPU)
|
|
# Multi-target pattern: Prometheus passes the cluster address as a param
|
|
- job_name: proxmox-cluster
|
|
scrape_interval: 30s
|
|
metrics_path: /pve
|
|
params:
|
|
module: [default]
|
|
cluster: ["1"]
|
|
node: [""]
|
|
static_configs:
|
|
- targets:
|
|
- 10.1.71.11 # main-street-usa — cluster API endpoint
|
|
labels:
|
|
cluster: magic-kingdom
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: pve-exporter.monitoring.svc.cluster.local:9221
|
|
|
|
# SNMP — UniFi devices (multi-target pattern)
|
|
# world-drive (UDM Pro)
|
|
- job_name: snmp-udm-pro
|
|
scrape_interval: 60s
|
|
scrape_timeout: 55s
|
|
metrics_path: /snmp
|
|
params:
|
|
auth: [mk_labs_v2c]
|
|
module: [if_mib]
|
|
static_configs:
|
|
- targets:
|
|
- 192.168.1.1
|
|
labels:
|
|
device: world-drive
|
|
model: UDM-Pro
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: snmp-exporter.monitoring.svc.cluster.local:9116
|
|
|
|
# usw-pro-aggregation
|
|
- job_name: snmp-usw-pro-aggregation
|
|
scrape_interval: 60s
|
|
scrape_timeout: 55s
|
|
metrics_path: /snmp
|
|
params:
|
|
auth: [mk_labs_v2c]
|
|
module: [if_mib]
|
|
static_configs:
|
|
- targets:
|
|
- 192.168.1.123
|
|
labels:
|
|
device: usw-pro-aggregation
|
|
model: USW-Pro-Aggregation
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: snmp-exporter.monitoring.svc.cluster.local:9116
|
|
|
|
# usw-pro-max-24
|
|
- job_name: snmp-usw-pro-max-24
|
|
scrape_interval: 60s
|
|
scrape_timeout: 55s
|
|
metrics_path: /snmp
|
|
params:
|
|
auth: [mk_labs_v2c]
|
|
module: [if_mib]
|
|
static_configs:
|
|
- targets:
|
|
- 192.168.1.226
|
|
labels:
|
|
device: usw-pro-max-24
|
|
model: USW-Pro-Max-24
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: snmp-exporter.monitoring.svc.cluster.local:9116
|
|
|
|
# usw-lite-16-poe
|
|
- job_name: snmp-usw-lite-16-poe
|
|
scrape_interval: 60s
|
|
scrape_timeout: 55s
|
|
metrics_path: /snmp
|
|
params:
|
|
auth: [mk_labs_v2c]
|
|
module: [if_mib]
|
|
static_configs:
|
|
- targets:
|
|
- 192.168.1.136
|
|
labels:
|
|
device: usw-lite-16-poe
|
|
model: USW-Lite-16-PoE
|
|
relabel_configs:
|
|
- source_labels: [__address__]
|
|
target_label: __param_target
|
|
- source_labels: [__param_target]
|
|
target_label: instance
|
|
- target_label: __address__
|
|
replacement: snmp-exporter.monitoring.svc.cluster.local:9116
|
|
|
|
# Pure FlashArray — DEFERRED until Purity 6.7+
|
|
# Uncomment when utilidor is upgraded. Native OpenMetrics endpoint,
|
|
# no exporter container needed. Add API token to 1Password as
|
|
# item "pure-flasharray-utilidor" field "api-token".
|
|
# - job_name: pure-flasharray-utilidor
|
|
# scrape_interval: 30s
|
|
# metrics_path: /metrics/array
|
|
# scheme: https
|
|
# tls_config:
|
|
# insecure_skip_verify: true
|
|
# authorization:
|
|
# credentials_file: /etc/prometheus/secrets/pure-api-token/api-token
|
|
# params:
|
|
# namespace: ["purefa"]
|
|
# static_configs:
|
|
# - targets:
|
|
# - utilidor.local.mk-labs.cloud
|
|
# labels:
|
|
# array: utilidor
|
|
# array_type: physical
|
|
|
|
# ─── Grafana ──────────────────────────────────────────────────────────────────
|
|
grafana:
|
|
enabled: true
|
|
persistence:
|
|
enabled: false
|
|
|
|
admin:
|
|
existingSecret: grafana-admin-secret
|
|
userKey: admin-user
|
|
passwordKey: admin-password
|
|
|
|
grafana.ini:
|
|
server:
|
|
root_url: https://grafana.local.mk-labs.cloud
|
|
auth:
|
|
disable_login_form: false
|
|
|
|
defaultDashboardsEnabled: true
|
|
defaultDashboardsTimezone: browser
|
|
|
|
dashboardProviders:
|
|
dashboardproviders.yaml:
|
|
apiVersion: 1
|
|
providers:
|
|
- name: default
|
|
orgId: 1
|
|
folder: ""
|
|
type: file
|
|
disableDeletion: false
|
|
editable: true
|
|
options:
|
|
path: /var/lib/grafana/dashboards/default
|
|
|
|
dashboards:
|
|
default:
|
|
node-exporter-full:
|
|
gnetId: 1860
|
|
revision: 37
|
|
datasource: Prometheus
|
|
kubernetes-cluster:
|
|
gnetId: 7249
|
|
revision: 1
|
|
datasource: Prometheus
|
|
kubernetes-pods:
|
|
gnetId: 6336
|
|
revision: 1
|
|
datasource: Prometheus
|
|
unifi-poller:
|
|
gnetId: 11315
|
|
revision: 9
|
|
datasource: Prometheus
|
|
proxmox-cluster:
|
|
gnetId: 10347
|
|
revision: 5
|
|
datasource: Prometheus
|
|
|
|
sidecar:
|
|
dashboards:
|
|
enabled: true
|
|
searchNamespace: ALL
|
|
label: grafana_dashboard
|
|
labelValue: "1"
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
|
|
# ─── Node Exporter ────────────────────────────────────────────────────────────
|
|
nodeExporter:
|
|
enabled: true
|
|
|
|
prometheus-node-exporter:
|
|
tolerations:
|
|
- key: node-role.kubernetes.io/control-plane
|
|
operator: Exists
|
|
effect: NoSchedule
|
|
|
|
# ─── kube-state-metrics ───────────────────────────────────────────────────────
|
|
kubeStateMetrics:
|
|
enabled: true
|
|
|
|
# ─── Prometheus Operator ──────────────────────────────────────────────────────
|
|
prometheusOperator:
|
|
enabled: true
|
|
|
|
# ─── Component scraping ───────────────────────────────────────────────────────
|
|
kubeApiServer:
|
|
enabled: true
|
|
|
|
kubelet:
|
|
enabled: true
|
|
|
|
kubeControllerManager:
|
|
enabled: true
|
|
|
|
kubeScheduler:
|
|
enabled: true
|
|
|
|
kubeProxy:
|
|
enabled: false # Cilium replaces kube-proxy
|
|
|
|
kubeEtcd:
|
|
enabled: true
|
|
endpoints:
|
|
- 10.1.71.66
|
|
- 10.1.71.67
|
|
- 10.1.71.68
|
|
service:
|
|
enabled: true
|
|
port: 2381
|
|
targetPort: 2381
|