Monitoring Services (CT 202)¶
LXC: monitoring
| Service | Article | Port |
|---|---|---|
| Prometheus | prometheus | 9090 |
| Grafana | grafana | 3000 |
| Uptime Kuma | uptime kuma | 3001 |
| pve-exporter | pve exporter | 9221 (internal) |
node_exporter Deployment¶
node_exporter runs on every LXC. Deployment method depends on whether Docker is available.
| LXC | Method | Komodo stack |
|---|---|---|
| CT 100 management | Docker | node-exporter-local |
| CT 200 ultrafeeder | Docker | node-exporter-ultrafeeder |
| CT 201 iot | Docker | node-exporter-iot |
| CT 202 monitoring | Docker | node-exporter-monitoring |
| CT 300 media-arr | Docker | node-exporter-media-arr |
| CT 301 media-server | Docker | node-exporter-media-server |
| CT 302 media-dl | Docker | node-exporter-media-dl |
| CT 101 pihole | Binary systemd service | - |
| CT 400 game-panel | Binary systemd service | - |
| CT 401 minecraft-wings | Binary systemd service | - |
Docker stacks use network_mode: host so node_exporter binds to :9100 on each LXC's own 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 scrape targets: 10 LXCs (CT 600 not monitored) + pve-exporter + Prometheus self
- pve-exporter uses a dedicated read-only PVEAuditor token
prometheus.ymlchanges take effect via HTTP reload - no container restart needed