# ------------------------------------------------------------------------------ # FILE: ansible/playbooks/roles/monitoring/templates/prometheus.yaml.j2 # DESCRIPTION: Prometheus scrape configuration # ------------------------------------------------------------------------------ global: scrape_interval: 30s evaluation_interval: 30s alerting: alertmanagers: - static_configs: - targets: - alertmanager:9093 rule_files: [] scrape_configs: # Prometheus self-monitoring - job_name: prometheus static_configs: - targets: - localhost:9090 # cinderella-castle node exporter (this host) - job_name: node-cinderella-castle static_configs: - targets: - 10.1.71.31:9100 labels: hostname: cinderella-castle # Proxmox nodes (node exporter on each hypervisor) - job_name: proxmox-nodes static_configs: - targets: - 10.1.71.11:9100 - 10.1.71.12:9100 - 10.1.71.13:9100 labels: job: proxmox # Traefik metrics - job_name: traefik static_configs: - targets: - 10.1.71.35:8080 labels: hostname: lightning-lane # -------------------------------------------------------------------------- # Proxmox VE Exporter — cluster-level metrics (VM states, storage, CPU) # Uses the multi-target pattern: Prometheus passes the cluster address as a # query parameter to the exporter, which proxies to the Proxmox API. # One scrape job covers all three nodes via the cluster API endpoint. # -------------------------------------------------------------------------- - job_name: proxmox-cluster 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:9221 # -------------------------------------------------------------------------- # Pure Storage FlashArray -- utilidor (DEFERRED until Purity 6.7+) # # When utilidor is upgraded to Purity 6.7+, uncomment this job and remove # the legacy exporter container. No container needed -- Prometheus scrapes # the native OpenMetrics endpoint on the array directly over HTTPS. # # Also add vault_pure_utilidor_api_token to group_vars/all/vault and create # a read-only API token on utilidor under System -> Users -> API Tokens. # -------------------------------------------------------------------------- # - job_name: pure-flasharray-utilidor # metrics_path: /metrics/array # scheme: https # tls_config: # insecure_skip_verify: true # authorization: # credentials: {{ vault_pure_utilidor_api_token }} # params: # namespace: ["purefa"] # static_configs: # - targets: # - utilidor.local.mk-labs.cloud # labels: # array: utilidor # array_type: physical # -------------------------------------------------------------------------- # UniFi Network — SNMP scrape jobs (one per device for clean Grafana filtering) # All targets use the if_mib module for interface throughput, errors, and # up/down state. Auth uses the mk_labs_v2c community string from vault. # -------------------------------------------------------------------------- - job_name: snmp-udm-pro 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: 10.1.71.31:9116 - job_name: snmp-usw-pro-aggregation 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: 10.1.71.31:9116 - job_name: snmp-usw-pro-max-24 metrics_path: /snmp scrape_interval: 60s scrape_timeout: 55s 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: 10.1.71.31:9116 - job_name: snmp-usw-lite-16-poe 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: 10.1.71.31:9116 - job_name: snmp-ups-tower metrics_path: /snmp params: auth: [mk_labs_v2c] module: [if_mib] static_configs: - targets: - 192.168.1.233 labels: device: ups-tower model: UPS-Tower relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 10.1.71.31:9116