Proxmox VE VM and container inventory, column by column
These sections are the guest inventory: every QEMU VM and LXC container with its sizing, live usage, guest-agent data and configuration. Use them to find VMs without a working guest agent and to read the full configuration of each guest. Their disks, filesystems and snapshots are on the Storage page.
How to read the tables
- Excel / HTML is the column header, the same in both formats. JSON is the key in the JSON file.
- Sizes (
GBorMBin the header) are in that unit in Excel and HTML, and raw bytes in JSON. - Percentages (
%in the header) are formatted as percentages in Excel and HTML; JSON has the raw value, a fraction from 0 to 1 for usage columns. - Flags show
Xin Excel,✓or·in HTML,trueorfalsein JSON. - Multi-line cells hold one value per line; in JSON they are a string with line breaks (
\n, or\r\nwhen the report was generated on Windows). - Links to other pages exist in Excel and HTML; JSON has the plain value. Empty values are
nullor""in JSON. - Dates and times are in UTC.
- How the JSON files are shaped: see JSON.
Which guests
Section titled “Which guests”Every section on this page covers only the guests selected by Guest.Ids (default @all), see
Choosing nodes and guests. Rows are sorted by ID,
with numbers compared as numbers. In every table, Node links to the node’s page and Vm Id to the
guest’s page.
Excel sheet VMs · HTML vms.html · JSON vms.json · always generated, limited by
Guest.Ids; agent data by Guest.IncludeQemuAgent and
Guest.QemuAgentTimeout.
For each VM the report reads /nodes/{node}/qemu/{vmid}/config. A VM whose status is unknown still gets a row,
but its config is not read and the config columns stay empty. The guest agent is queried only when all of these
are true:
- the VM is running;
agentis enabled in its config;Guest.IncludeQemuAgentistrue.
The report first calls agent/info. If the agent does not answer within Guest.QemuAgentTimeout seconds (default
3), it counts as not running. If it answers, the report calls get-osinfo, get-host-name,
network-get-interfaces and get-fsinfo in parallel.
When the agent is running and reports interfaces, the network columns show the interfaces the guest reports, matched to the config NICs by MAC address. Interfaces with no MAC or an all-zero MAC are skipped. Guest-only interfaces (no matching NIC in the config) are left out of this table but passed to the Network section. When the agent is not running, or returns no interfaces, the NICs come from the config, and a QEMU config has no IP addresses. A configured NIC that the agent does not report is taken from the config too.
VMs table
Section titled “VMs table”One row per VM.
| Excel / HTML | JSON | Content |
|---|---|---|
| Node | node |
Node the VM is on (link) |
| Vm Id | vmId |
VM ID (link to the VM detail) |
| Name | name |
VM name |
| Status | status |
running, stopped, … from cluster resources |
| Health | healthScore |
Health score 0-100, higher is healthier: 100 − (CPU%·0.5 + RAM%·0.5). Empty for a VM that is not running. HTML: green at 80 or more, yellow at 60 or more, red below. Excel: red-yellow-green colour scale |
| Pool | pool |
Resource pool, if any |
| Tags | tags |
Proxmox tags, one per line |
| Ha State | haState |
HA state from cluster resources |
| Lock | lock |
Current lock (backup, snapshot, migrate, …) |
| Is Template | isTemplate |
Flag: the VM is a template |
| Cpu Size | cpuSize |
Number of vCPUs |
| Cpu Usage % | cpuUsage |
CPU usage of the VM, as a share of its own vCPUs |
| Host Cpu Usage % | hostCpuUsage |
Text such as 12.5 % of 32 CPUs: the VM’s share of the node’s CPUs. Filled only for guests with uptime on an online node |
| Memory Size GB | memorySize |
Memory assigned (bytes in JSON) |
| Memory Usage GB | memoryUsageBytes |
Memory in use (bytes in JSON: the size takes the Bytes suffix because the percentage has the plain key, see Values) |
| Memory Usage % | memoryUsage |
Memory in use divided by memory assigned |
| Host Memory Usage % | hostMemoryUsage |
Memory in use divided by the node’s memory. Filled only when Host Cpu Usage % is |
| Disk Size GB | diskSize |
Boot disk size from cluster resources, the “Bootdisk size” of the Proxmox VE GUI, not the sum of all disks (bytes in JSON) |
| Disk Usage GB | diskUsageBytes |
Disk usage from cluster resources, always 0 for VMs: Proxmox VE has no view inside the guest. See Partitions Used GB (bytes in JSON: the size takes the Bytes suffix because the percentage has the plain key, see Values) |
| Disk Usage % | diskUsage |
Disk usage divided by disk size |
| Disks Size GB | disksSize |
Sum of the sizes of the configured disks, CD-ROM, cloud-init and unused disks left out: the total of the Disks rows of the VM. Empty when no disk has a size (bytes in JSON) |
| Unused Disks Size GB | unusedDisksSize |
Sum of the sizes of the unused disks (unusedN): space still taken on the storage by disks detached from the VM. Empty when there are none (bytes in JSON) |
| Partitions Total GB | partitionsTotal |
Total size of the guest filesystems reported by the agent (get-fsinfo): the total of the Partitions rows of the VM, each device counted once, read-only images (squashfs, iso9660, udf) and filesystems of size 0 left out. Empty without agent data (bytes in JSON) |
| Partitions Used GB | partitionsUsedBytes |
Used space of the same filesystems. Empty without agent data (bytes in JSON: the size takes the Bytes suffix because the percentage has the plain key, see Values) |
| Partitions Used % | partitionsUsed |
Partitions used divided by partitions total |
| Uptime | uptime |
Uptime as readable text |
| Hostname | hostname |
Guest hostname from the agent, or one of the status messages above |
| Os Name | osName |
OS name from the agent |
| Os Version | osVersion |
Agent “pretty name”, or the agent OS version, or the decoded ostype from the config |
| Os Kernel Release | osKernelRelease |
Kernel release from the agent |
| Agent Enabled | agentEnabled |
Flag: agent is enabled in the config |
| Agent Running | agentRunning |
Flag: the agent answered within the timeout |
| Agent Version | agentVersion |
Guest agent version |
| Networks | networks |
One line per NIC: MAC bridge or MAC bridge/tag |
| Ip Addresses | ipAddresses |
One line per NIC: IPv4 and IPv6 addresses with prefix, comma-separated (agent only) |
| On Boot | onBoot |
Flag: start at boot |
| Config Protection | configProtection |
Flag: protection is set |
| Description | description |
Notes of the VM, from its configuration |
| Bios | bios |
seabios or ovmf |
| Boot | boot |
Boot order |
| Machine | machine |
Machine type |
| Cores | cores |
Cores per socket |
| Sockets | sockets |
Sockets |
| Cpu | cpu |
CPU type |
| Kvm | kvm |
Flag: KVM hardware virtualisation |
| Scsi Hw | scsiHw |
SCSI controller model |
| Vga | vga |
Display type |
| Numa | numa |
Flag: NUMA enabled |
| Balloon | balloon |
Balloon minimum memory, as stored in the config |
| Cpu Limit | cpuLimit |
cpulimit |
| Cpu Units | cpuUnits |
cpuunits |
| Hugepages | hugepages |
hugepages |
| Hookscript | hookscript |
Hook script volume |
| Start Up | startUp |
startup order/delay string |
Containers
Section titled “Containers”Excel sheet Containers · HTML containers.html · JSON containers.json · always generated, limited by
Guest.Ids.
For each container the report reads /nodes/{node}/lxc/{vmid}/config, except containers whose status is unknown.
It never uses an agent. For a running container it also reads /nodes/{node}/lxc/{vmid}/interfaces and matches
the live interfaces to the config NICs by MAC address. For each NIC, the live addresses (link-local fe80…
excluded) are used like this:
- configured as
dhcp,autoormanual: the live address followed by the mode, e.g.10.0.0.5/24 (dhcp); - no address configured: the live address;
- static address configured: the configured value is kept.
If the endpoint is missing (older Proxmox VE releases) or fails, the configured values are shown and no issue is raised.
Containers table
Section titled “Containers table”One row per container.
| Excel / HTML | JSON | Content |
|---|---|---|
| Node | node |
Node the container is on (link) |
| Vm Id | vmId |
Container ID (link to the CT detail) |
| Name | name |
Container name |
| Status | status |
running, stopped, … |
| Health | healthScore |
Health score 0-100, same formula and colours as VMs. Empty when the container is not running |
| Pool | pool |
Resource pool, if any |
| Tags | tags |
Proxmox tags, one per line |
| Ha State | haState |
HA state |
| Lock | lock |
Current lock |
| Is Template | isTemplate |
Flag: the container is a template |
| Cpu Size | cpuSize |
Number of CPUs |
| Cpu Usage % | cpuUsage |
CPU usage of the container |
| Host Cpu Usage % | hostCpuUsage |
Text such as 3.1 % of 32 CPUs: share of the node’s CPUs |
| Memory Size GB | memorySize |
Memory assigned (bytes in JSON) |
| Memory Usage GB | memoryUsageBytes |
Memory in use (same JSON key clash as VMs) |
| Memory Usage % | memoryUsage |
Memory in use divided by memory assigned |
| Host Memory Usage % | hostMemoryUsage |
Memory in use divided by the node’s memory |
| Disk Size GB | diskSize |
Root disk size (bytes in JSON) |
| Disk Usage GB | diskUsageBytes |
Root disk usage (same JSON key clash as VMs) |
| Disk Usage % | diskUsage |
Disk usage divided by disk size |
| Disks Size GB | disksSize |
Sum of the sizes of the root disk and the mount points, unused disks left out: the total of the Disks rows of the container. Mount points that bind a host directory have no size and add nothing. Empty when no disk has a size (bytes in JSON) |
| Unused Disks Size GB | unusedDisksSize |
Sum of the sizes of the unused disks (unusedN). Empty when there are none (bytes in JSON) |
| Uptime | uptime |
Uptime as readable text |
| Hostname | hostname |
hostname from the config |
| Os Version | osVersion |
Decoded ostype from the config |
| Networks | networks |
One line per NIC: MAC bridge or MAC bridge/tag |
| Ip Addresses | ipAddresses |
One line per NIC: IPv4 and IPv6 values, comma-separated (live values as described above) |
| On Boot | onBoot |
Flag: start at boot |
| Config Protection | configProtection |
Flag: protection is set |
| Description | description |
Notes of the container, from its configuration |
| Cores | cores |
cores |
| Swap | swap |
Swap, as stored in the config (MB) |
| Unprivileged | unprivileged |
Flag: unprivileged container |
| Nameserver | nameserver |
DNS servers |
| Search Domain | searchDomain |
DNS search domain |
| Features | features |
features string (nesting, keyctl, …) |
| Timezone | timezone |
timezone |
| Startup | startup |
startup order/delay string |
| Hookscript | hookscript |
Hook script volume |
VM and container detail
Section titled “VM and container detail”Excel sheet VM <id> / CT <id> · HTML vms/<id>.html / containers/<id>.html (page title <id> (<name>)) ·
JSON vms/<id>.json / containers/<id>.json · enabled by Guest.Detail.Enabled.
There is one page per guest whose config could be read. It opens with a back link to the VMs or Containers list. In Excel, the detail sheets are the last ones, after the node detail sheets: VMs first, then containers, each in numeric order.
Header block (info)
Section titled “Header block (info)”A key/value block titled <id> - <name> in Excel and Info in HTML. In JSON it is stored under info.
| Excel / HTML | JSON | Content |
|---|---|---|
| VM ID | vmID |
Guest ID |
| Name | name |
Guest name |
| Hostname | hostname |
VM: hostname from the agent (or a status message). CT: hostname from the config |
| Agent Version | agentVersion |
VM only: guest agent version |
| Node | node |
Node (link in Excel) |
| Status | status |
Guest status |
| CPU | cpu |
Number of vCPUs |
| CPU Usage % (VM) / CPU Usage (CT) | cpuUsage |
Share of the node’s CPUs, as text (12.5 % of 32 CPUs) |
| Memory GB | memory |
Memory assigned (bytes in JSON) |
| Memory Host % | memoryHost |
Memory in use divided by the node’s memory |
| Disk GB | disk |
Disk size (bytes in JSON) |
| Uptime | uptime |
Uptime as readable text |
Config
Section titled “Config”A key/value block shown next to the header, stored under config in JSON. It is followed by every other key of the
guest config that the SDK does not map to a named property (for example disk and NIC lines such as scsi0 or
net0), sorted by name with numbers compared as numbers. Those keys keep their raw name.
VM keys:
| Excel / HTML | JSON | Content |
|---|---|---|
| On Boot | onBoot |
Start at boot |
| OS Type | osType |
Decoded ostype |
| Protection | protection |
protection |
| Template | template |
Template flag |
| Lock | lock |
Current lock |
| Tags | tags |
Tags, one per line |
| Bios | bios |
bios |
| Boot | boot |
boot |
| Machine | machine |
machine |
| CPU | cpu |
CPU type |
| Sockets | sockets |
sockets |
| Cores | cores |
cores |
| vCPUs | vcpus |
vcpus |
| CPU Limit | cpuLimit |
cpulimit |
| CPU Units | cpuUnits |
cpuunits |
| Affinity | affinity |
affinity |
| Hotplug | hotplug |
hotplug |
| Hugepages | hugepages |
hugepages |
| Memory (MB) | memoryMB |
memory, in MB |
| Balloon | balloon |
balloon |
| Shares | shares |
shares |
| KVM | kvm |
kvm |
| NUMA | numa |
numa |
| Tablet | tablet |
tablet |
| Scsi Hw | scsihw |
scsihw |
| Vga | vga |
vga |
| Agent | agent |
Agent enabled in the config |
| Agent Running | agentRunning |
The agent answered |
| Watchdog | watchdog |
watchdog |
| Rng0 | rng0 |
rng0 |
| Start Up | startUp |
startup |
| Hookscript | hookscript |
hookscript |
Container keys:
| Excel / HTML | JSON | Content |
|---|---|---|
| On Boot | onBoot |
Start at boot |
| OS Type | osType |
Decoded ostype |
| Protection | protection |
protection |
| Template | template |
Template flag |
| Lock | lock |
Current lock |
| Tags | tags |
Tags, one per line |
| Hostname | hostname |
hostname |
| Cores | cores |
cores |
| Memory (MB) | memoryMB |
memory, in MB |
| Swap (MB) | swapMB |
swap, in MB |
| Unprivileged | unprivileged |
Unprivileged container |
| Nameserver | nameserver |
nameserver |
| Search Domain | searchDomain |
searchdomain |
| Features | features |
features |
| Timezone | timezone |
timezone |
| Startup | startup |
startup |
| Hookscript | hookscript |
hookscript |
Agent OS Info
Section titled “Agent OS Info”VM only, stored under agentOSInfo in JSON. It appears when the agent is running and get-osinfo returned data.
| Excel / HTML | JSON | Content |
|---|---|---|
| Name | name |
OS name |
| Pretty Name | prettyName |
Full OS name |
| Version | version |
OS version |
| Version Id | versionId |
OS version id |
| Id | id |
OS id |
| Kernel Release | kernelRelease |
Kernel release |
| Kernel Version | kernelVersion |
Kernel version |
| Machine | machine |
Architecture |
| Variant | variant |
OS variant |
| Variant Id | variantId |
OS variant id |
Firewall Logs
Section titled “Firewall Logs”Stored under firewallLogs in JSON. Lines from /nodes/{node}/qemu|lxc/{vmid}/firewall/log, present when both
Firewall.Enabled and Guest.Detail.IncludeFirewallLog are
true. Firewall.MaxCount limits the number of lines (0 = no limit). Firewall.Since and Firewall.Until limit the
dates. A log that contains only no content is shown as an empty table.
| Excel / HTML | JSON | Content |
|---|---|---|
| Log | log |
One firewall log line |
Stored under tasks in JSON. The guest’s tasks, from /nodes/{node}/tasks?vmid=<id> on the node the guest is on
now. Present when Guest.Detail.Tasks.Enabled is true.
Guest.Detail.Tasks.OnlyErrors keeps only failed tasks. Guest.Detail.Tasks.MaxCount limits the number of rows
(0 = no limit). Guest.Detail.Tasks.Source picks all, local or active tasks.
| Excel / HTML | JSON | Content |
|---|---|---|
| Unique Task Id | uniqueTaskId |
UPID |
| Type | type |
Task type (vzdump, qmstart, …) |
| User | user |
User who started the task |
| Status | status |
Task exit status |
| Status Ok | statusOk |
Flag: status is OK |
| Start Time | startTime |
Start date and time |
| End Time | endTime |
End date and time |
| Duration | duration |
Task duration |
Disks, partitions and snapshots
Section titled “Disks, partitions and snapshots”The three guest tables about disk space are on the Storage page, next to the storages they live on, as in the sidebar of the HTML report: Disks (every configured disk), Partitions (space used inside each VM) and Snapshots.