Submitted by: David Nicklay
Description:
This ZenPack leverages the libvirt API for monitoring virtualization servers (e.g. XEN, KVM, etc...). This uses the system python and libvirt python API to monitor various virtualization platforms remotely. It provides a /Server/libvirtHost device class and this module is tested using ssh as a transport for the libvirt API, it could be made to use TLS or TCP with further development. It provides a libvirtvirtualHostlist report as well.
You can set zLibvirtUsername and zLibvirtConnectType to customize access to the hosts, though only qemu+ssh:// was tested at the moment. The libvirt versions packaged with Redhat 5.4 and Ubuntu 9.10 (libvirt 0.70) seem to work well. Earlier 5.x versions of Redhat have very old versions of libvirt. libvirt 0.75 has support for memory stats, but has not been tested yet.
libvirt supports:
Virtualization Technology | Device Class | Tested? | Configuration Options |
---|---|---|---|
VMware ESX and GSX hypervisors | /Server/libvirtHost/ESX | Y | (Note that this requires at least libvirt 0.7.0 and ESX compiled in [--with-esx]) Some settings For ESX: zLibvirtConnectType=esx:// zLibvirtUsername zLibvirtPassword The libvirt API uses HTTPS to talk directly to the ESX host itself. You will need a working username/password pair to query the ESX host. |
KVM Linux hypervisor | /Server/libvirtHost/KVM | Y | This uses SSH for monitoring by default. You will want to set the Username: zLibvirtUsername=zenoss (default) You will also need a passwordless ssh key installed on the virtualization host for that user. |
QEMU emulator | /Server/libvirtHost/QEMU | Y | This uses SSH for monitoring by default. You will want to set the Username: zLibvirtUsername=zenoss (default) You will also need a passwordless ssh key installed on the virtualization host for that user. |
Xen hypervisor on Linux and Solaris hosts. | /Server/libvirtHost/XEN | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
LXC Linux container system | /Server/libvirtHost/LXC | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
OpenVZ Linux container system | /Server/libvirtHost/OpenVZ | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
User Mode Linux paravirtualized kernel | /Server/libvirtHost/UML | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
VirtualBox hypervisor | /Server/libvirtHost/VirtualBox | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
Open Nebula open-source cloud toolkit | /Server/libvirtHost/OpenNebula | N | (This libvirt driver has not yet been tested with this zenpack, but the support is here for it.) |
See these docs for more details:
http://libvirt.org/python.html
http://libvirt.org/uri.html
http://libvirt.org/remote.html
Screenshots:
REQUIREMENTS:
- Zenoss Version: 2.5
- ZenPack Dependencies: n/a
- External Dependencies: You need libvirt installed along with the python API
- Installation:
You will need to setup an ssh account on the remote libvirtd host with automatic login from the zenoss user on the monitoring host. You will need to set the zLibvirtUsername for a user on the remote box to which zenoss can ssh to without a password.
Source: http://zenpacks.zenoss.org/trac-zenpacks/browser/zenpacks/ZenPacks.community.libvirt
Tagged Releases:
- http://zenpacks.zenoss.org/trac-zenpacks/browser/tags/libvirt-1.58
- http://zenpacks.zenoss.org/trac-zenpacks/browser/tags/libvirt-1.71
Change History:
- 1.58 initial release
- 1.71 added hooks for supported virtualization technologies
Trac tickets: http://zenpacks.zenoss.org/
Known issues:
- get dynamic data point additions working (disk and interfaces are done as totals rather than individual graphs for now). you can manually add the individual disk and interface devices in though.
- test untested virtualization technologies
- test TLS and TCP connect types (set via zLibvirtConnectType)
- get memory stats working (only available in libvirt 0.7.5)