Monitoring¶
Homelab metrics + uptime stack. See monitoring for CT 202 specs and setup details.
Stack¶
| Component | Role |
|---|---|
| Prometheus | Time-series metrics collection |
| Grafana | Dashboards and visualization (long-term metrics) |
| pve-exporter | Proxmox host metrics via API |
| node_exporter | Per-container OS metrics (CPU, RAM, disk, network) |
| Uptime Kuma | Lightweight service uptime checks + push notifications (internal-only, no third-party pings) |
node_exporter Deployment¶
| LXC | Method | Managed by |
|---|---|---|
| CT 100 management | Docker (Komodo stack node-exporter-local) |
Komodo |
| CT 200 ultrafeeder | Docker (Komodo stack node-exporter-ultrafeeder) |
Komodo |
| CT 201 iot | Docker (Komodo stack node-exporter-iot) |
Komodo |
| CT 202 monitoring | Docker (Komodo stack node-exporter-monitoring) |
Komodo |
| CT 300 media-arr | Docker (Komodo stack node-exporter-media-arr) |
Komodo |
| CT 301 media-server | Docker (Komodo stack node-exporter-media-server) |
Komodo |
| CT 302 media-dl | Docker (Komodo stack node-exporter-media-dl) |
Komodo |
| CT 101 pihole | Binary systemd service | systemd |
| CT 400 game-panel | Binary systemd service | systemd |
| CT 401 minecraft-wings | Binary systemd service | systemd |
Docker stacks use network_mode: host - node_exporter binds to :9100 on the LXC's IP.
Binary installs: /usr/local/bin/node_exporter, user node_exporter, service at /etc/systemd/system/node_exporter.service.
Dashboards¶
| Dashboard | Grafana ID | What it shows |
|---|---|---|
| Node Exporter Full | 1860 | Per-container CPU, RAM, disk, network |
| Proxmox via Prometheus | 10347 | Proxmox host node, VMs, storage |
Adding a New LXC¶
- If Docker LXC: create a
node-exporter-<name>Komodo stack usingstacks/node-exporter/compose.yaml - If native LXC: install the node_exporter binary and systemd service (see CT 101 pattern)
- Add a scrape target to
/data/prometheus.ymlon CT 202 and reload:curl -X POST http://localhost:9090/-/reload - Update the scrape target table in monitoring
Key Takeaways¶
- 12 active targets: 10 LXCs (CT 600 not monitored) + pve-exporter + Prometheus self
- pve-exporter uses
pve-exporter@pve!metricstoken - dedicated read-only user with PVEAuditor role at/ - prometheus.yml changes take effect via HTTP reload - no container restart needed