Skip to content

VMs & containers

These sections are the guest inventory: every QEMU VM and LXC container with its sizing, live usage, guest-agent data, configuration, disks, filesystems and snapshots. Use them to find VMs without a working guest agent, disks on the wrong storage or with backup disabled, filesystems close to full and snapshots nobody cleaned up.

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 — GB or MB in 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 X in Excel, ✓ or · in HTML, true or false in JSON.
  • Multi-line cells hold one value per line; in JSON they are a string with line breaks (\n, or \r\n when the report was generated on Windows).
  • Links to other pages exist in Excel and HTML; JSON has the plain value. Empty values are null or "" in JSON.
  • Dates and times are in UTC.
  • How the JSON files are shaped: see JSON.

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; in Disks, Storage links to the Storages section.

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:

  1. the VM is running;
  2. agent is enabled in its config;
  3. Guest.IncludeQemuAgent is true.

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.

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, see the caution below)
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 Disk size from cluster resources (bytes in JSON)
Disk Usage GB diskUsageBytes Used space of the guest filesystems reported by the agent (get-fsinfo), each device counted once, read-only images (squashfs, iso9660, udf) left out. Without agent data, the value from cluster resources, which Proxmox VE always reports as 0 for VMs (bytes in JSON, see the caution below)
Disk Usage % diskUsage With agent data, used space divided by the total size of the guest filesystems; otherwise disk usage divided by disk size
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

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, auto or manual: 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.

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
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

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.

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

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

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

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

Excel sheet Disks · HTML disks.html · JSON disks.json · enabled by Guest.IncludeDisks.

All disk entries of every VM and container whose config could be read, one row per entry. VMs include CD-ROM and cloud-init drives. Rows are sorted by node, VM ID and entry id, with numbers compared as numbers (scsi2 before scsi10). The storage columns are looked up in cluster resources by node and storage name. The section is left out when there are no rows.

Excel / HTML JSON Content
Node node Node (link)
Vm Id vmId Guest ID (link)
Vm Name vmName Guest name
Vm Type vmType qemu or lxc
Vm Status vmStatus Guest status
Kind kind Disk (data disks, rootfs, mp*, efidisk*, tpmstate*, unusedN), Cdrom (media=cdrom) or CloudInit (cloud-init drive)
Id id Config key (scsi0, virtio1, rootfs, mp0, unused0, …)
Storage storage Storage name (links to the Storages section)
Storage Type storageType Storage plugin type (zfspool, lvmthin, rbd, …)
Storage Shared storageShared Flag: the storage is shared
File Name fileName Volume or file name
Size GB size Size parsed from size= (bytes in JSON)
Storage Usage % storageUsage Disk size divided by the storage’s total size. Empty when the storage size is unknown
Cache cache Cache mode
Backup backup Flag: included in backups. VM disks unless backup=0; container rootfs always, mp* only with backup=1; CD-ROM and cloud-init drives never
Is Unused isUnused Flag: detached (unusedN) but still on storage
Device device Device
Mount Point mountPoint Container mount point path
Mount Source Path mountSourcePath Container bind-mount source path
Passthrough passthrough Flag: passthrough device
Prealloc prealloc Preallocation mode
Format format raw, qcow2, vmdk, …

Excel sheet Partitions · HTML partitions.html · JSON partitions.json · enabled by Guest.IncludePartitions together with Guest.IncludeQemuAgent.

Filesystems reported by the QEMU guest agent (get-fsinfo), one row per filesystem. Only VMs whose agent was running during the VMs pass are included; containers never appear here. The section is left out when there are no rows.

Excel / HTML JSON Content
Node node Node (link)
Vm Id vmId VM ID (link)
Vm Name vmName VM name
Vm Type vmType Guest type (always Qemu)
Vm Status vmStatus VM status
Mount Point mountPoint Mount point inside the guest (/, C:\, …)
Type type Filesystem type
Total GB total Total size (bytes in JSON)
Used GB usedBytes Used space (bytes in JSON, see the caution below)
Used % used Used divided by total. Empty when total is 0
Error error Error reported by the agent for this filesystem
Name name Device name inside the guest
Disks disks One line per backing disk: dev (bus-type:bus:target:unit) [domain:bus:slot.function], PCI address in hex

Excel sheet Snapshots · HTML snapshots.html · JSON snapshots.json · enabled by Guest.IncludeSnapshots.

Snapshots of every selected VM and container whose status is not unknown, read from /nodes/{node}/qemu|lxc/{vmid}/snapshot. Rows are sorted by guest, then by snapshot time. If a guest’s snapshot list cannot be read, a warning goes to the Issues page and the guest is skipped. The current entry that Proxmox VE returns for the running state is not a snapshot and is left out.

Excel / HTML JSON Content
Node node Node (link)
Vm Id vmId Guest ID (link)
Vm Name vmName Guest name
Vm Type vmType Qemu or Lxc
Snapshot snapshot Snapshot name
Parent parent Parent snapshot
Date date Snapshot time (snaptime)
Include Ram includeRam Flag: the snapshot includes RAM state (vmstate)
Size GB size Snapshot size (bytes in JSON). Filled only when the host application provides a size calculator: the command-line tool does not, so the column stays empty
Description description Snapshot description