# Proxmox Monitoring system2mqtt can monitor a [Proxmox VE](https://www.proxmox.com/en/proxmox-virtual-environment/overview) node by querying its REST API. This is particularly useful when running system2mqtt inside a Docker container on a separate machine. --- ## How It Works When `PVE_SYSTEM=True`, system2mqtt connects to the Proxmox API instead of reading local system metrics. It retrieves: - **CPU usage** from the Proxmox node status endpoint - **Memory usage** from the Proxmox node status endpoint - **Storage usage** for each storage configured on the node The collected data is published to MQTT using the same topic structure as bare-metal mode. --- ## Configuration Add the following to your `s2m.conf`: ```ini COMPUTER_NAME=MyPveNode PVE_SYSTEM=True PVE_HOST=192.168.1.50 # IP or hostname of the Proxmox server PVE_NODE_NAME=pve # Node name as shown in the Proxmox UI (default: pve) PVE_USER=root@pam # Proxmox user (default: root@pam) PVE_PASSWORD=mysecretpw # Proxmox user password (required) ``` You also need standard MQTT and optional Home Assistant settings: ```ini MQTT_HOST=192.168.1.100 HA_DISCOVERY=True # Optional: auto-register entities in Home Assistant ``` --- ## Proxmox User Permissions It is good practice to create a dedicated, read-only Proxmox user for monitoring rather than using `root@pam`. ### Creating a monitoring user in Proxmox 1. In the Proxmox UI, go to **Datacenter → Permissions → Users** and create a new user (e.g. `monitor@pve`). 2. Go to **Datacenter → Permissions → Roles** and verify or create a role with at least `Sys.Audit` and `Datastore.Audit` privileges. 3. Go to **Datacenter → Permissions** and assign the role to the user at the `/` path. Then update your config: ```ini PVE_USER=monitor@pve PVE_PASSWORD=monitorpassword ``` --- ## MQTT Topics (Proxmox Mode) When running in Proxmox mode the same MQTT topic structure applies: | Topic | Description | |-------|-------------| | `/cpu/usage` | Node CPU usage (%) | | `/memory` | Node memory usage (%) | | `/disks/storage/