I started this stack on 2025-12-28 as the monitoring layer for the Proxmox AI Datacenter. The Proxmox web UI shows per-guest graphs one guest at a time. I wanted one page that showed every LXC and VM, the host sensors, and the GPUs together.
Layout
- InfluxDB 2.8.0 in an unprivileged Debian LXC (2 cores, 2 GB RAM, 8 GB disk). One org, one bucket called
proxmox. - Grafana 12.3.1 in a second unprivileged LXC (1 core, 512 MB RAM, 6 GB disk), with InfluxDB as its only data source, queried in Flux.
- Proxmox external metric server configured at the datacenter level, pushing node, guest and storage stats straight into the bucket. Nothing to install inside the guests.
- Telegraf 1.37.0 on the host itself, added in September 2026 after the move to the Huananzhi H12D-8D, for the things Proxmox doesn’t report: EPYC 7F52 package power, lm-sensors temperatures, the GTX 1080 Ti through
nvidia_smi, and the RX 6900 XT through a sysfs collector I wrote.
Both LXCs came from the community-scripts Proxmox helper scripts. After nine months the InfluxDB data directory is 42 MB and Grafana’s state is 55 MB, so the disks are mostly empty.
Dashboard
One dashboard, Proxmox Cluster [Flux], created the day the stack went up and now at 33 panels. The GPU panels read from both nvidia_smi and amd_smi measurements and split series by the GPU name tag, so the 1080 Ti and the 6900 XT sit on the same axes.
Grafana isn’t on the tailnet directly. A systemd-socket-proxyd socket unit on the Proxmox host listens on port 3000 and forwards to the Grafana LXC, so the dashboard is reachable on the host’s Tailscale address from my laptop or phone.
The full write-up, including the RAPL permission problem and a Flux type collision between the two GPU vendors, is in Build Log MSN-018-A.