Hypervisor Monitoring
NetXMS can monitor virtualization platforms including VMware vSphere, KVM/libvirt, and Xen through the Virtual Machine Manager subagent (vmgr.nsm).
This enables monitoring of hypervisor hosts, virtual machines, and virtualization resource usage.
Overview
Hypervisor monitoring provides:
-
Hypervisor host information (CPU architecture, model, and frequency; memory utilization)
-
Virtual machine inventory and status
-
Per-VM resource allocation and consumption
Virtual Machine Manager Subagent
Connection Configuration
Configuration uses a main [VMGR] section listing host names, with per-host sections providing connection details:
[VMGR]
Host = esx1
Host = kvm1
[VMGR:esx1]
Url = esx://esx1.example.com/
Username = monitor
Password = your_password
[VMGR:kvm1]
Url = qemu+ssh://[email protected]/system
Username = root
Password = your_password
Per-host section parameters:
| Parameter | Description |
|---|---|
|
Libvirt connection URI (platform-specific, see examples below) |
|
Authentication user |
|
Authentication password |
VMware vSphere Monitoring
Connection
The esx:// libvirt driver connects to a standalone ESXi host.
For an ESXi host managed by vCenter, use the vpx:// driver with the full inventory path to the host (vpx://vcenter/datacenter/cluster/esxhost):
[VMGR]
Host = esx1
Host = esx2
[VMGR:esx1]
Url = esx://esx1.example.com/
Username = root
Password = your_password
[VMGR:esx2]
Url = vpx://vcenter.example.com/DC1/Cluster1/esx2.example.com
Username = [email protected]
Password = your_password
| Use a dedicated read-only monitoring account. |
Host Metrics
| Parameter | Description |
|---|---|
|
Host CPU architecture |
|
Maximum number of virtual CPUs libvirt allows per guest |
|
Host CPU model |
|
Host CPU frequency |
|
Total host memory |
|
Free host memory |
|
Libvirt connection type |
|
Libvirt library version |
|
Libvirt connection version |
Virtual Machine Metrics
Per-VM metrics require both the host name and VM/domain name as arguments:
| Parameter | Description |
|---|---|
|
Memory currently used by VM in bytes |
|
VM memory usage as a percentage |
|
Maximum memory available to VM in bytes |
|
VM CPU time in nanoseconds |
Tables
VMGR.VM(host)
Virtual machine list with properties. Key column: NAME.
| Column | Type | Description |
|---|---|---|
|
UINT |
VM numeric ID |
|
STRING |
VM name (key) |
|
STRING |
VM UUID |
|
STRING |
State: |
|
STRING |
OS type/architecture (e.g. |
|
STRING |
Autostart scheduled: |
|
UINT64 |
Current memory in bytes |
|
UINT64 |
Maximum memory in bytes |
|
UINT64 |
Memory usage percentage |
|
UINT |
Number of vCPUs |
|
UINT64 |
CPU time in nanoseconds |
|
STRING |
VM control state: |
|
STRING |
Control state details |
|
UINT |
Time in ms since entering current control state |
|
UINT |
Current VM wall clock time (seconds) |
|
STRING |
Whether VM config is persistent: |
Other Tables
| Table | Description |
|---|---|
|
Host network interface list (column: NAME) |
|
VM disks with source path, type, device type, device name, controller type, address |
|
VM disk controllers with type, index, model |
|
VM network interfaces with MAC address, type, source bridge, NIC model |
|
VM video adapters with type and VRAM |
|
Virtual networks with name, UUID, interfaces, port groups |
|
Storage pools with name, state, capacity, allocation, available bytes |
KVM/libvirt Monitoring
Connection
Connect to KVM hosts via libvirt:
[VMGR]
Host = kvm1
Host = local
[VMGR:kvm1]
Url = qemu+ssh://[email protected]/system
Username = root
[VMGR:local]
Url = qemu:///system
Connection URL formats:
-
qemu:///system— local connection -
qemu+ssh://user@host/system— SSH-tunneled connection -
qemu+tcp://host/system— TCP connection
Xen Monitoring
Xen can be monitored in two ways: via libvirt (using vmgr.nsm) or directly using the Xen-specific subagent (xen.nsm).
Via libvirt (vmgr.nsm)
The libvirt xen:// driver connects to the libxl stack on a Xen dom0 host.
It does not work with Citrix XenServer / Citrix Hypervisor.
[VMGR]
Host = xen1
[VMGR:xen1]
Url = xen+ssh://[email protected]/system
Username = root
Password = your_password
This provides the same VMGR.* metrics as for KVM and VMware.
Direct Xen Subagent (xen.nsm)
The xen.nsm subagent connects directly to the local Xen hypervisor via libxl.
It must run on the Xen dom0. No configuration is required beyond loading the subagent.
SubAgent = xen.nsm
Host Metrics
| Parameter | Description |
|---|---|
|
Xen hypervisor version string |
|
Number of CPU cores |
|
Number of logical CPUs |
|
Number of physical CPUs |
|
Currently online CPUs |
|
CPU frequency in KHz |
|
Host CPU utilization, current snapshot (%) |
|
Host CPU utilization, 1-minute average (%) |
|
Host CPU utilization, 5-minute average (%) |
|
Host CPU utilization, 15-minute average (%) |
|
Total host memory in bytes |
|
Free host memory in bytes |
|
Free memory percentage |
|
Used host memory in bytes |
|
Used memory percentage |
|
Outstanding claimed memory in bytes |
|
Outstanding claimed memory percentage |
|
Memory being scrubbed, in bytes |
|
Memory being scrubbed, percentage |
Domain (VM) Metrics
All domain metrics accept the domain name or numeric ID as the argument.
| Parameter | Description |
|---|---|
|
Domain current CPU utilization (%) |
|
Domain 1-minute average CPU utilization (%) |
|
Domain 5-minute average CPU utilization (%) |
|
Domain 15-minute average CPU utilization (%) |
|
1 if domain exists, 0 otherwise |
|
1 if domain is running or blocked |
|
1 if domain is paused |
|
Domain state: RUNNING, BLOCKED, PAUSED, SHUTDOWN, DYING, MISSING, UNKNOWN |
|
Total bytes received across all domain vifs |
|
Total bytes transmitted |
|
Total packets received |
|
Total packets transmitted |
Xen Tables
XEN.Domains — domain table with ID, name, state (single string column), memory (current/shared/paged/outstanding/max), vCPU count, CPU time, CPU usage (current and 1-minute average), and network I/O.
XEN.Net.DomainInterfaces — all domain network interfaces with vif name, domain ID/name, network ID, bridge, MAC address, IP, NIC model, and per-interface byte/packet counters.
Guest Agent Integration
For in-depth guest OS monitoring, install the NetXMS agent inside virtual machines. This provides:
-
Full OS-level metrics (same as OS monitoring)
-
Application-level monitoring
-
Log monitoring
-
File system monitoring
The VM subagent metrics complement guest agent monitoring by providing the hypervisor-level view (allocated resources, host-side performance).
For nodes that run as virtual machines, the server detects the hypervisor type and hypervisor information during the configuration poll and shows them in the node properties. Virtual machines are not automatically linked to their hypervisor hosts in the object tree.