check_esxi_hardware 20250221 released: pywbem exception improvements

Written by - 0 comments

Published on - Listed in Hardware Monitoring VMware Python Virtualization


A new version of check_esxi_hardware, an open source monitoring plugin to monitor the hardware of VMware ESXi servers, is available.

Hardware monitoring on ESXi server

Improve/Fix pywbem exceptions

The latest version (20250221) of check_esxi_hardware improves the handling of exceptions coming from the pywbem Python module.

The pywbem internal exceptions were renamed at the release of pywbem 1.0.0. Examples:

 pywbem < 1.0.0  pywbem >= 1.0.0
 pywbem.cim_operations  pywbem._cim_operations
 pywbem.cim_http  pywbem._cim_http
 pywbem.exceptions  pywbem._exceptions

You certainly noticed the added underscore (_) in the name.

Backward compatibility is important to me. To be able to support older (prior to 1.0.0) AND newer versions of pywbem, check_esxi_hardware now makes a version comparison of the installed and used pywbem version. This is done by using the Python module "packaging".

This means: Starting with this release (20250221), the packaging Python module must be installed to run check_esxi_hardware.

This can be done by using a predefined package from the OS:

$ sudo apt install python3-packaging

Or use pip system-wide:

$ sudo pip3 install packaging

Or inside your Python3 venv, use pip as well.

Catch HTTP Exception

While working on the improved pywbem exception handling, I also came across another exception, the plugin did not cover before: The HTTP exception!

This is useful when the plugin is mistakenly pointed to a HTTP endpoint which does not serve any CIM elements (ESXi HTTPS UI for example). The plugin will then show the HTTP exception and exit as UNKNOWN:

ck@mint ~ $ /usr/lib/nagios/plugins/check_esxi_hardware.py -H myesxi -C 443 -U root -P secret
UNKNOWN: 400 (Bad Request)

In the past this would have shown a large Python stacktrace error.

Thanks and kudos

As always, this is an open source monitoring plugin and this often involves multiple people to get a new release out. Special thanks for this release go to Phil Randal and Claire Morgenthau for important and much appreciated coding hints.


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.

RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Observability   Office   OpenSearch   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder