← Back to Blog

πŸ“Š InfluxDB + Grafana | Monitor Proxmox Cluster in EASY MODE! πŸš€

Welcome to the Proxmox Home Server Series! This guide walks you through the easiest way to monitor your Proxmox cluster using InfluxDB and Grafanaβ€”no Telegraf required. Perfect for your home lab or small-scale virtualization setup. πŸ–₯οΈπŸ“ˆ


🎯 Overview

This monitoring solution provides enterprise-grade observability for your Proxmox cluster with minimal complexity. By leveraging native Proxmox metrics collection, we eliminate the need for additional agents while maintaining comprehensive monitoring coverage.

✨ Key Benefits

  • πŸš€ Zero Agent Overhead - Native Proxmox metrics collection
  • πŸ“Š Real-time Dashboards - Beautiful Grafana visualizations
  • πŸ” Comprehensive Coverage - CPU, Memory, Storage, Network, VM metrics
  • πŸ›‘οΈ Production Ready - Scalable and reliable architecture
  • πŸ’‘ Easy Maintenance - Simple setup and configuration

πŸ”§ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Proxmox VE    │───▢│    InfluxDB     │───▢│     Grafana     β”‚
β”‚   (v7.x/v8.x)   β”‚    β”‚   (Time Series) β”‚    β”‚  (Dashboards)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                       β”‚                       β”‚
        β”‚                       β”‚                       β”‚
   Metrics Push            Data Storage          Visualization
Proxmox Monitoring Dashboard

πŸ“‹ Requirements

πŸ–₯️ System Requirements

  • Proxmox VE: v7.x or v8.x (single node or cluster)
  • Monitoring Host: Ubuntu 20.04+ / Debian 11+ (VM or container)
  • Resources:
    • CPU: 2 cores minimum
    • RAM: 4GB minimum
    • Storage: 50GB+ (SSD recommended)
  • Network: Stable connectivity between Proxmox and monitoring host

πŸ”§ Prerequisites

  • βœ… Root or sudo access on monitoring host
  • βœ… Basic command-line proficiency
  • βœ… Network access to Proxmox nodes
  • βœ… Internet connectivity for package installation

πŸ› οΈ Installation Guide

Step 1: Install InfluxDB 2.x

# Add InfluxData repository
wget -qO- https://repos.influxdata.com/influxdb.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/influxdb.gpg
echo "deb https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdb.list

# Update package list and install InfluxDB
sudo apt update && sudo apt install influxdb2

# Enable and start InfluxDB service
sudo systemctl enable --now influxdb

# Verify installation
sudo systemctl status influxdb

πŸ”— Access InfluxDB: Navigate to http://<influxdb-ip>:8086

πŸ“ Initial Setup:

  1. Create an Organization (e.g., "homelab")
  2. Create a Bucket (e.g., "proxmox-metrics")
  3. Generate an API Token with write permissions
  4. Save the token - you'll need it for Proxmox configuration

Step 2: Install Grafana

# Add Grafana repository
sudo apt install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list

# Install Grafana
sudo apt update && sudo apt install grafana

# Enable and start Grafana service
sudo systemctl enable --now grafana-server

# Verify installation
sudo systemctl status grafana-server

πŸ”— Access Grafana: Navigate to http://<grafana-ip>:3000

πŸ“ Initial Login: Username: admin / Password: admin (Change password on first login)

Step 3: Configure Proxmox Metrics Collection

3.1 Edit Proxmox Configuration

# Edit the status configuration file
sudo nano /etc/pve/status.cfg

3.2 Add InfluxDB Configuration

# InfluxDB Metrics Configuration
influxdb:
  server YOUR_INFLUXDB_IP
  port 8086
  org YOUR_ORG_NAME
  bucket YOUR_BUCKET_NAME
  token YOUR_API_TOKEN
  verify-ssl false
  max-body-size 25M

πŸ”§ Configuration Parameters:

Parameter Description Example
server InfluxDB server IP/hostname 192.168.1.100
port InfluxDB HTTP port 8086
org InfluxDB organization name homelab
bucket InfluxDB bucket name proxmox-metrics
token InfluxDB API token your-api-token-here

3.3 Apply Configuration

# Restart Proxmox services to apply changes
sudo systemctl restart pveproxy
sudo systemctl restart pvedaemon

# Verify metrics are being sent
sudo journalctl -u pvedaemon -f
InfluxDB Metrics

πŸ“Š Metrics Overview

πŸ–₯️ System Metrics

Metric Category Description Collection Frequency
CPU Usage Per-core and overall CPU utilization 30s
Memory Usage RAM usage, swap, and memory pressure 30s
Storage I/O Disk read/write operations and latency 30s
Network I/O Network throughput and packet statistics 30s

πŸ” Troubleshooting

Common Issues

1. Metrics Not Appearing in Grafana

# Check InfluxDB connectivity
curl -H "Authorization: Token YOUR_TOKEN" \
     "http://YOUR_INFLUXDB_IP:8086/api/v2/buckets?org=YOUR_ORG"

# Verify Proxmox configuration
sudo cat /etc/pve/status.cfg

# Check Proxmox logs
sudo journalctl -u pvedaemon -n 50
InfluxDB Configuration

2. Data Retention

# Set retention policy (30 days for homelab)
influx bucket update --name proxmox-metrics --retention 30d
Data Retention Settings

πŸ”’ Security Considerations

Network Security

# Configure firewall rules
sudo ufw allow from PROXMOX_IP to any port 8086
sudo ufw allow from PROXMOX_IP to any port 3000

# Use reverse proxy for external access
sudo apt install nginx
Monitoring Dashboard

πŸ“ˆ Maintenance

Backup Procedures

# Backup InfluxDB data
influx backup /backup/influxdb --bucket proxmox-metrics

# Backup Grafana configuration
sudo tar -czf grafana-backup.tar.gz /etc/grafana/
Backup Configuration

Log Aggregation

# Configure log forwarding
sudo journalctl -u influxdb -f | logger -t influxdb
sudo journalctl -u grafana-server -f | logger -t grafana
Log Aggregation

πŸ“š References

Official Documentation

Community Resources


Found this helpful? Share it with your homelab community! πŸš€

← Back to Blog