241 lines
7.4 KiB
YAML
241 lines
7.4 KiB
YAML
# Prometheus Configuration for Fred's Homelab
|
|
# Last Updated: 2025-12-25
|
|
#
|
|
# Installation Instructions:
|
|
# 1. Install node_exporter on each host you want to monitor
|
|
# 2. Copy this file to 10.0.10.25:/etc/prometheus/prometheus.yml
|
|
# 3. Restart Prometheus: systemctl restart prometheus
|
|
# 4. Verify targets: http://10.0.10.25:9090/targets
|
|
|
|
global:
|
|
scrape_interval: 15s
|
|
evaluation_interval: 15s
|
|
external_labels:
|
|
environment: 'homelab'
|
|
datacenter: 'home'
|
|
|
|
# Alertmanager configuration (optional - configure later)
|
|
alerting:
|
|
alertmanagers:
|
|
- static_configs:
|
|
- targets:
|
|
# - alertmanager:9093
|
|
|
|
# Load alerting rules
|
|
rule_files:
|
|
# - "/etc/prometheus/alerts/*.yml"
|
|
|
|
scrape_configs:
|
|
# ====================================
|
|
# Prometheus Self-Monitoring
|
|
# ====================================
|
|
- job_name: 'prometheus'
|
|
static_configs:
|
|
- targets: ['localhost:9090']
|
|
labels:
|
|
app: 'prometheus'
|
|
instance: 'prometheus-main'
|
|
|
|
# ====================================
|
|
# Proxmox Hosts (Node Exporters)
|
|
# ====================================
|
|
# Install: apt install prometheus-node-exporter
|
|
|
|
- job_name: 'proxmox-nodes'
|
|
static_configs:
|
|
- targets: ['10.0.10.2:9100'] # pve-router (i5)
|
|
labels:
|
|
hostname: 'pve-router'
|
|
role: 'proxmox-host'
|
|
location: 'office'
|
|
|
|
- targets: ['10.0.10.3:9100'] # main-pve (DL380p)
|
|
labels:
|
|
hostname: 'main-pve'
|
|
role: 'proxmox-host'
|
|
location: 'remote'
|
|
|
|
- targets: ['10.0.10.4:9100'] # backup-pve
|
|
labels:
|
|
hostname: 'backup-pve'
|
|
role: 'proxmox-host'
|
|
location: 'storage'
|
|
|
|
# ====================================
|
|
# Proxmox VE API Metrics (Proxmox Exporter)
|
|
# ====================================
|
|
# Optional: Install https://github.com/prometheus-pve/prometheus-pve-exporter
|
|
# This gives you VM/CT specific metrics
|
|
|
|
# - job_name: 'proxmox-api'
|
|
# static_configs:
|
|
# - targets: ['10.0.10.25:9221'] # Run pve_exporter on prometheus host
|
|
# labels:
|
|
# exporter: 'pve_exporter'
|
|
|
|
# ====================================
|
|
# VPS (Node Exporter)
|
|
# ====================================
|
|
# Install on VPS: apt install prometheus-node-exporter
|
|
|
|
- job_name: 'vps'
|
|
static_configs:
|
|
- targets: ['66.63.182.168:9100'] # VPS external IP
|
|
labels:
|
|
hostname: 'vps-hv'
|
|
role: 'vps'
|
|
provider: 'hudson-valley-host'
|
|
|
|
# ====================================
|
|
# Gaming PC / HOMELAB-COMMAND
|
|
# ====================================
|
|
# Windows: Use windows_exporter
|
|
# https://github.com/prometheus-community/windows_exporter
|
|
|
|
- job_name: 'gaming-pc'
|
|
static_configs:
|
|
- targets: ['10.0.10.10:9182'] # windows_exporter default port
|
|
labels:
|
|
hostname: 'HOMELAB-COMMAND'
|
|
role: 'workstation'
|
|
os: 'windows-11'
|
|
|
|
# ====================================
|
|
# Databases
|
|
# ====================================
|
|
|
|
# PostgreSQL Exporter
|
|
# Install: https://github.com/prometheus-community/postgres_exporter
|
|
- job_name: 'postgresql'
|
|
static_configs:
|
|
- targets: ['10.0.10.20:9187']
|
|
labels:
|
|
hostname: 'postgresql'
|
|
role: 'database'
|
|
app: 'postgres'
|
|
|
|
# ====================================
|
|
# Application Services
|
|
# ====================================
|
|
|
|
# Authentik (built-in metrics)
|
|
- job_name: 'authentik'
|
|
metrics_path: '/application/o/prometheus-outpost/metrics/'
|
|
static_configs:
|
|
- targets: ['10.0.10.21:9000']
|
|
labels:
|
|
app: 'authentik'
|
|
role: 'sso'
|
|
|
|
# n8n (if metrics enabled)
|
|
# - job_name: 'n8n'
|
|
# static_configs:
|
|
# - targets: ['10.0.10.22:5678']
|
|
# labels:
|
|
# app: 'n8n'
|
|
|
|
# Home Assistant (via integration)
|
|
# https://www.home-assistant.io/integrations/prometheus/
|
|
- job_name: 'homeassistant'
|
|
metrics_path: '/api/prometheus'
|
|
bearer_token: 'YOUR_LONG_LIVED_ACCESS_TOKEN' # Create in HA: Profile -> Long-Lived Access Tokens
|
|
static_configs:
|
|
- targets: ['10.0.10.24:8123']
|
|
labels:
|
|
app: 'homeassistant'
|
|
role: 'automation'
|
|
|
|
# Caddy (metrics built-in, needs admin API enabled)
|
|
# - job_name: 'caddy'
|
|
# static_configs:
|
|
# - targets: ['66.63.182.168:2019'] # Caddy admin API
|
|
# labels:
|
|
# app: 'caddy'
|
|
# role: 'reverse-proxy'
|
|
|
|
# ====================================
|
|
# Network Devices
|
|
# ====================================
|
|
|
|
# UCG Ultra (SNMP Exporter)
|
|
# https://github.com/prometheus/snmp_exporter
|
|
# - job_name: 'unifi-gateway'
|
|
# static_configs:
|
|
# - targets: ['10.0.10.1']
|
|
# labels:
|
|
# device: 'ucg-ultra'
|
|
# role: 'gateway'
|
|
|
|
# ====================================
|
|
# Storage
|
|
# ====================================
|
|
|
|
# OpenMediaVault Node Exporter
|
|
- job_name: 'storage'
|
|
static_configs:
|
|
- targets: ['10.0.10.5:9100']
|
|
labels:
|
|
hostname: 'openmediavault'
|
|
role: 'storage'
|
|
capacity: '12tb'
|
|
|
|
# ====================================
|
|
# Blackbox Exporter (Endpoint Monitoring)
|
|
# ====================================
|
|
# Optional: Monitor HTTP endpoints, SSL certs, DNS, etc.
|
|
# https://github.com/prometheus/blackbox_exporter
|
|
|
|
# - job_name: 'blackbox-http'
|
|
# metrics_path: /probe
|
|
# params:
|
|
# module: [http_2xx]
|
|
# static_configs:
|
|
# - targets:
|
|
# - https://auth.nianticbooks.com
|
|
# - https://freddesk.nianticbooks.com
|
|
# - https://bob.nianticbooks.com
|
|
# relabel_configs:
|
|
# - source_labels: [__address__]
|
|
# target_label: __param_target
|
|
# - source_labels: [__param_target]
|
|
# target_label: instance
|
|
# - target_label: __address__
|
|
# replacement: localhost:9115 # Blackbox exporter address
|
|
|
|
# ====================================
|
|
# Installation Quick Reference
|
|
# ====================================
|
|
#
|
|
# Node Exporter (Debian/Ubuntu):
|
|
# apt update && apt install prometheus-node-exporter -y
|
|
# systemctl enable prometheus-node-exporter
|
|
# systemctl start prometheus-node-exporter
|
|
# # Verify: curl http://localhost:9100/metrics
|
|
#
|
|
# Node Exporter (Manual install):
|
|
# wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
|
|
# tar xvfz node_exporter-*.tar.gz
|
|
# sudo mv node_exporter-*/node_exporter /usr/local/bin/
|
|
# sudo useradd -rs /bin/false node_exporter
|
|
#
|
|
# # Create systemd service: /etc/systemd/system/node_exporter.service
|
|
# sudo systemctl daemon-reload
|
|
# sudo systemctl enable node_exporter
|
|
# sudo systemctl start node_exporter
|
|
#
|
|
# Windows Exporter:
|
|
# Download: https://github.com/prometheus-community/windows_exporter/releases
|
|
# Install MSI package
|
|
# Verify: http://localhost:9182/metrics
|
|
#
|
|
# PostgreSQL Exporter:
|
|
# apt install prometheus-postgres-exporter -y
|
|
# # Configure connection in /etc/default/prometheus-postgres-exporter
|
|
# # DATA_SOURCE_NAME="postgresql://user:pass@localhost:5432/postgres?sslmode=disable"
|
|
#
|
|
# Home Assistant Prometheus Integration:
|
|
# 1. Settings -> Devices & Services -> Add Integration
|
|
# 2. Search "Prometheus"
|
|
# 3. Configure
|
|
# 4. Create long-lived access token: Profile -> Security -> Long-Lived Access Tokens
|