Hello,
Quoting from the manual:
"NetXMS has subagents that allow to monitor hypervisors. " But it doesnt say which hypervisors.
I see some configs for ESX, but what about Xen, HyperV, QEMU etc? Proxmox?
Can I / How Can I monitor Proxmox VE / QEMU with this subagent?
Thank you,
Alex
we use libvirt: https://libvirt.org/drivers.html
Thank you,
I have now discovered that unfortunately proxmox does not use libvirt and installing it on the host is risky as it can clash with the underlying qemu lxc tech that proxmox uses. Proxmox strongly advises against doing this.
So at this point we can say that NetXMS does NOT support Proxmox monitoring using the documented Hypervisor monitoring methods.
It may be possible to do via the proxmox API which is the proxmox approved method.
The netxms agent does monitor the usual proxmox host details just fine, but I am looking to collect the metrics about the vms / containers etc.
The documentation should be updated to reflect this, and also note that there seems to be a separate subagent package for Xen.
For completeness here is a config that I have tried, on the pve host:
apt install netxms-agent-vmgr
apt install netxms-agent-vmgr
The following packages were automatically installed and are no longer required:
libsnmp-base libsnmp40t64 proxmox-kernel-6.17.2-2-pve-signed
Use 'apt autoremove' to remove them.
Installing:
netxms-agent-vmgr
Installing dependencies:
libvirt-common libvirt-l10n libvirt0
Summary:
Upgrading: 0, Installing: 4, Removing: 0, Not Upgrading: 5
Download size: 4,810 kB
Space needed: 29.9 MB / 15.7 GB available
Continue? [Y/n] y
Get:2 http://deb.debian.org/debian trixie/main amd64 libvirt-common amd64 11.3.0-3+deb13u2 [215 kB]
Get:3 http://deb.debian.org/debian trixie/main amd64 libvirt0 amd64 11.3.0-3+deb13u2 [1,605 kB]
Get:4 http://deb.debian.org/debian trixie/main amd64 libvirt-l10n all 11.3.0-3+deb13u2 [2,932 kB]
Get:1 https://packages.netxms.org/debian trixie/main amd64 netxms-agent-vmgr amd64 5.2.8-1+trixie [56.8 kB]
Fetched 4,810 kB in 3s (1,517 kB/s)
Selecting previously unselected package libvirt-common.
(Reading database ... 76467 files and directories currently installed.)
Preparing to unpack .../libvirt-common_11.3.0-3+deb13u2_amd64.deb ...
Unpacking libvirt-common (11.3.0-3+deb13u2) ...
Selecting previously unselected package libvirt0:amd64.
Preparing to unpack .../libvirt0_11.3.0-3+deb13u2_amd64.deb ...
Unpacking libvirt0:amd64 (11.3.0-3+deb13u2) ...
Selecting previously unselected package libvirt-l10n.
Preparing to unpack .../libvirt-l10n_11.3.0-3+deb13u2_all.deb ...
Unpacking libvirt-l10n (11.3.0-3+deb13u2) ...
Selecting previously unselected package netxms-agent-vmgr:amd64.
Preparing to unpack .../netxms-agent-vmgr_5.2.8-1+trixie_amd64.deb ...
Unpacking netxms-agent-vmgr:amd64 (5.2.8-1+trixie) ...
Setting up libvirt-common (11.3.0-3+deb13u2) ...
Setting up libvirt0:amd64 (11.3.0-3+deb13u2) ...
Setting up netxms-agent-vmgr:amd64 (5.2.8-1+trixie) ...
Setting up libvirt-l10n (11.3.0-3+deb13u2) ...
Processing triggers for libc-bin (2.41-12+deb13u1) ...
root@pve01:~#
#============================================================================
# NetXMS Agent Configuration File for Proxmox VE Hypervisor Monitoring
#============================================================================
[vmgr]
host = pve01
[vmgr:pve01]
Url = qemu:///system
Log file
2026.01.23 14:45:55.950 *E* [vmgr ] Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
2026.01.23 14:45:55.950 *W* [vmgr ] Unable to add host connection "pve01" with URL "qemu:///system"
2026.01.23 14:45:55.950 *W* [vmgr ] No connections defined, VMGR subagent will not start
Yes I see that the libvirt process is not running but I am reluctant to run it due to the various comments out there about libvirt issues with proxmox
You are right, and the documentation is what failed you here. vmgr reaches hypervisors only through libvirt, so a Proxmox host is out of scope regardless of configuration — PVE does not use libvirt, and Proxmox advise against installing it on a node, so nothing ever answers on qemu:///system. Filed as https://github.com/netxms/netxms-doc/issues/59 so the hypervisor monitoring page says this instead of leaving it to be found in the agent log.
The PVE REST API is the route that works today, with no new code needed. Create a web service definition against
https://pve01:8006/api2/json/cluster/resources?type=vm
That returns every VM and LXC container in the cluster in one response, each with status, cpu, mem, maxmem, disk and maxdisk, so a single definition plus instance discovery over vmid covers all guests. For the host itself use /nodes/{node}/status, and /nodes/{node}/rrddata if you want the same series the GUI graphs draw from.
One non-obvious detail on authentication: do not use the Bearer authentication type. It sends Authorization: Bearer <token>, and Proxmox uses its own scheme. Set authentication to None and add the header explicitly instead:
Authorization: PVEAPIToken=monitoring@pve!netxms=<uuid>
Create the token under Datacenter - Permissions - API Tokens and give it a read-only role; PVEAuditor is enough.
There is a second route worth knowing about that does not work yet. PVE 9 can push metrics on its own — Datacenter - Metric Server - OpenTelemetry, sent by pvestatd every 10 seconds — and NetXMS has had OTLP metric ingestion since 6.1. The two do not meet at the moment: PVE sends OTLP encoded as JSON, our receiver accepts protobuf only. Filed as https://github.com/netxms/netxms/issues/3482. An OpenTelemetry Collector in between will transcode it if you want that shape now, but for the same data the REST API above is far less machinery.
On the Xen subagent you spotted: it exists, but it is built on Xen's own libxl, so it is no help for Proxmox either.
Many thanks for the info Alex.