Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

check_esxi_hardware.py

Rating
60 votes
Favoured:
12
Current Version
20160531
Last Release Date
2016-04-30
Compatible With
  • Nagios 1.x
  • Nagios 2.x
  • Nagios 3.x
  • Nagios 4.x
  • Nagios XI
Owner
License
GPL
Hits
226341
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
This script is a Nagios plugin to monitor the hardware of ESX and ESXi servers. It can also be used as standalone script to check the hardware. The plugin is written in python and uses the pywbem extension, so you need to have python with pywbem installed. See Requirements for more information.
Please find the plugin, more information and documentation here:

http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.php


ATTENTION USERS WITH ESXi 5.0 U1!
------------------
There was a bug in ESXi 5.0 U1 which slowed down the CIM query for the hardware status.
Make sure you are using all the latest ESXi patches.


Version History
------------------
20080820 Initial release by David Ligeret
20080821 Add verbose mode by David Ligeret
20090219 Add try/except to catch AuthError and CIMError by Joshua Daniel Franklin
20100202 Added HP Support (HealthState) by Branden Schneider
20100512 Combined different versions (Joshua and Branden) and added hardware type switch
20100628 Outputs server model, s/n and bios version and set Unknown as default exit code by Samir Ibradzic
20100702 GlobalStatus was incorrectly getting (re)set to OK with every CIM element check by Aaron Rogers
20100705 After last version all Dell servers return UNKNOWN instead of OK, added Aaron's logic for Dell checks as well
20101028 Changed text in Usage and Example so people dont forget to use https://
20110110 If Dell Blade Servers were used, Serial Number of Chassis instead of Blade was returned - by Ludovic Huttin
20110207 Bugfix/new feature for Intel server systems by Carsten Schoene
20110215 Plugin now catches Socket Error (Timeout Error) and added a timeout parameter by Ludovic Hutin
20110221 Removed recently added timeout parameter due to incompatibility on Windows systems
20110221 Changed plugin name from check_esxi_wbem.py to check_esxi_hardware.py
20110426 Added 'ibm' hardware type (compatible to Dell output). Tested by Keith Erekson on an IBM x3550.
20110503 Plugin rewritten, added automatic hardware detection, opt params, perfdata and much more by Phil Randal
20110504 Some minor code changes, removed typo, bugfix for voltage sensors on IBM server by Phil Randal
20110505 Added possibility to use first line of a file as password (file:) by Fredrik ├ůslund
20110507 A lot of bugfixes and enhancements from Phil Randal (see changelog in plugin for details)
20110520 Bugfix for IBM Blade Servers by Bertrand Jomin
20110614 Rewrote external file handling, file can now be used for password AND username
20111003 Added ignore option to ignore certain elements by Ian Chard
20120402 Making plugin GPL compatible (Copyright) and preparing for OpenBSD port
20120405 Fix lookup of warranty info for Dell by Phil Randal
20120501 Bugfix in manufacturer discovery when cim entry not found or empty by Craig Hart
20121027 Workaround for Dell PE x620 for Riser Config Err 0: Connected element (wrong return code)
20130424 Another workaround for Dell systems "System Board 1 LCD Cable Pres 0: Connected"
20130702 Improving wrong authentication timeout and exit UNKNOWN by Carl R. Friend
20130725 Fix lookup of warranty info for Dell by Phil Randal
20140319 Another workaround for Dell systems "System Board 1 VGA Cable Pres 0: Connected"
20150109 Output serial number of chassis if a blade server is checked
20150119 Fix NoneType element bug by Andreas Gottwald
20150626 Added support for patched pywbem 0.7.0 and new version 0.8.0, handle SSL error exception
20150710 Exit Unknown instead of Critical for timeouts and auth errors by Stanislav German-Evtushenko
20151111 Cleanup and define variables by Stefan Roos
20160411 Distinguish between/add support for minor versions of pywbem 0.7 and 0.8
20160531 Add parameter for variable CIM port (useful when behind NAT)

Requirements
------------------
- Python must be installed
- The Python extension pywbem must be installed
- If there is a firewall between your monitoring and ESXi server, open ports 443 and 5989

Usage
------------------
./check_esxi_hardware.py -H esxi-server-ip -U username -P mypass [-V -i -v -p -I xx]
Reviews (48)
byThomasC., September 11, 2018
getting this error:

(No output on stdout) stderr: Traceback (most recent call last):
File "/usr/local/nagios/libexec/check_esxi_hardware.py", line 648, in
wbemclient = pywbem.WBEMConnection(hosturl, (user,password), no_verification=True)
TypeError: __init__() got an unexpected keyword argument 'no_verification'
os version: centos7
esxi version: esxi 6.5
python version: python 2.7.5
pywbem version: 0.12.3

Traceback (most recent call last):
File "/usr/lib64/nagios/plugins/check_esxi_hardware.py", line 703, in
instance_list = wbemclient.EnumerateInstances(classe)
File "/usr/lib/python2.7/site-packages/pywbem/cim_operations.py", line 2229, in EnumerateInstances
**extra)
File "/usr/lib/python2.7/site-packages/pywbem/cim_operations.py", line 1616, in _imethodcall
conn_id=self.conn_id)
File "/usr/lib/python2.7/site-packages/pywbem/cim_http.py", line 790, in wbem_request
client.endheaders()
File "/usr/lib64/python2.7/httplib.py", line 1037, in endheaders
self._send_output(message_body)
File "/usr/lib64/python2.7/httplib.py", line 881, in _send_output
self.send(msg)
File "/usr/lib/python2.7/site-pac kages/pywbem/cim_http.py", line 468, in send
self.connect() # pylint: disable=no-member
File "/usr/lib/python2.7/site-packages/pywbem/cim_http.py", line 594, in connect
"SSL error %s: %s" % (arg.__class__, arg))
pywbem.exceptions.ConnectionError: SSL error : unexpected eof

The script appears to be able to connect as the OK alarm identifies the system information and serial number etc.

Do you have any idea what this error means?

Thanks
bynagiosql, May 17, 2018
Seems not working on opensuse 42.3

# ./check_esxi_hardware.py -H serverip -U user -P password -V hp -i "IPMI SEL"
Traceback (most recent call last):
File "./check_esxi_hardware.py", line 648, in
wbemclient = pywbem.WBEMConnection(hosturl, (user,password), no_verification=True)
TypeError: __init__() got an unexpected keyword argument 'no_verification'

python-2.7.13-26.1
python-pywbem-0.7.0-10.4
bychowy1029, May 14, 2018
1 of 1 people found this review helpful
I just upgrade 1 of my ESXi from 6.5 to 6.7 and now all I get is errors (6.5 still working just fine thought):

20180514 14:35:25 Connection to https://xxxxxxx
20180514 14:35:25 Found pywbem version 0.7.0
20180514 14:35:25 Connection error, disable SSL certification verification (probably patched pywbem)
20180514 14:35:25 Check classe OMC_SMASHFirmwareIdentity
20180514 14:35:28 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20180514 14:35:28 Check classe CIM_Chassis
20180514 14:35:30 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20180514 14:35:30 Check classe CIM_Card
20180514 14:35:32 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20180514 14:35:32 Check classe CIM_ComputerSystem
20180514 14:35:34 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20180514 14:35:34 Check classe CIM_NumericSensor
20180514 14:35:36 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20180514 14:35:36 Check classe CIM_Memory
....
....
Hi, it works really great, but i don't want to run it as an admin.

Is there a way to solve this. I also tried only Read-Right. But I got an "no_verification" error.

Do you have an idea?

Thanks
I have tried but it's getting error on windows logon
Hi all, in command line this check works fine but in Icinga2 GUI I receive this error:

UNKNOWN: (0, 'Socket error: [Errno 13] Permission denied')

Any idea why?
Excellent plugin but can't get it working with ESXi 6.5

Version check_esxi_hardware.py 20111003 gives this error:

CRITICAL: (0, "Socket error: (1, 'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure')")

Upgraded to version 20170905 but now get:
pkg_resources.DistributionNotFound: pywbem

How to upgrade pywbem since I get errors trying to install - wrong version of python maybe?

# python -V
Python 2.4.3
Owner's reply

Cannot tell for sure, but python 2.4 is very very old. Try at least 2.7.

Hi,
We are already using this plugin to Monitor ESXi hardware health status and it is working fine.

With this plugin is it possible to Monitor ESXi host NFS file share Monitoring ?

Kindly advice ?
Owner's reply

No, hardware only. Please check the FAQ at https://www.claudiokuenzler.com/blog/308/check-esxi-hardware-faq-frequently-asked-questions .

bycurzondax, November 14, 2017
1 of 1 people found this review helpful
Had the same problem as the previous poster, this is what solved the issue: To enable the CIM agent on the ESXi 6.5 host, run this command via CLI:

esxcli system wbem set --enable true

Documentation:
https://kb.vmware.com/s/article/2148910

and

https://kb.vmware.com/s/article/1025757?r=2&Quarterback.validateRoute=1&KM_Utility.getArticleData=1&KM_Utility.getGUser=1&KM_Utility.getArticleLanguage=2&KM_Utility.getArticle=1
byGromek, July 18, 2017
I love this plugin but it doesn't work on any of my ESXi's with 6.5 version. Do you have any plans on upgrading it ?

I keep getting UNKNOWN: (0, 'Socket error: [Errno 111] Connection refused')" on all of them.
Owner's reply

It works with 6.5. Please check the FAQ at https://www.claudiokuenzler.com/blog/308/check-esxi-hardware-faq-frequently-asked-questions .

After ESXi600-201703003 Offline Bundle patching on VMware ESXI 6.0 Update 2, check_esxi_hardware.py failed to work. Is this the new bug with check_esxi_hardware.py?

ERROR:
20170418 15:37:55 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
::::::::::
20170418 15:47:59 Unknown CIM Error: (1, u'Timeout (or other socket error) waiting for response from provider')

FULL OUTPUT:
[root@amk-123 libexec]# ./check_esxi_hardware.py -H 10.168.70.230 -U nagios -P @3xsKQruw -V dell -v
20170418 15:37:49 Connection to https://10.168.70.230
20170418 15:37:49 Found pywbem version 0.7.0
20170418 15:37:49 Connection worked
20170418 15:37:49 Check classe OMC_SMASHFirmwareIdentity
20170418 15:37:49 Element Name = System BIOS
20170418 15:37:49 VersionString = 2.2.3
20170418 15:37:49 Check classe CIM_Chassis
20170418 15:37:50 Element Name = Chassis
20170418 15:37:50 Manufacturer = Dell Inc.
20170418 15:37:50 SerialNumber = HBTT82S
20170418 15:37:50 Model = PowerEdge R810
20170418 15:37:50 Element Op Status = 0
20170418 15:37:50 Check classe CIM_Card
20170418 15:37:50 Element Name = unknown
20170418 15:37:50 Element Op Status = 0
20170418 15:37:50 Check classe CIM_ComputerSystem
20170418 15:37:52 Element Name = System Board 7:1
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Element Name = Add-in Card 11:1
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Element Name = Add-in Card 11:2
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Element Name = System Internal Expansion Board 16:1
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Element Name = System Internal Expansion Board 16:2
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Element Name = obh3amk-vmw-host3
20170418 15:37:52 Element Name = Hardware Management Controller (Node 0)
20170418 15:37:52 Element Op Status = 0
20170418 15:37:52 Check classe CIM_NumericSensor
20170418 15:37:53 Element Name = System Board 1 System Level
20170418 15:37:53 sensorType = 4 - Current
20170418 15:37:53 BaseUnits = 7
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 450.000000
20170418 15:37:53 Upper Threshold Non Critical = 1310.000000
20170418 15:37:53 Upper Threshold Critical = 1380.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = Power Supply 2 Voltage
20170418 15:37:53 sensorType = 3 - Voltage
20170418 15:37:53 BaseUnits = 5
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 226.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = Power Supply 1 Voltage
20170418 15:37:53 sensorType = 3 - Voltage
20170418 15:37:53 BaseUnits = 5
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 222.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = Power Supply 2 Current
20170418 15:37:53 sensorType = 4 - Current
20170418 15:37:53 BaseUnits = 6
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 1.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = Power Supply 1 Current
20170418 15:37:53 sensorType = 4 - Current
20170418 15:37:53 BaseUnits = 6
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 1.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 6 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4680.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 5 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4800.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 4 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4800.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 3 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4800.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 2 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4800.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 FAN 1 RPM
20170418 15:37:53 sensorType = 5 - Tachometer
20170418 15:37:53 BaseUnits = 19
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 4800.000000
20170418 15:37:53 Lower Threshold Critical = 720.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Board 1 Ambient Temp
20170418 15:37:53 sensorType = 2 - Temperature
20170418 15:37:53 BaseUnits = 2
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 13.000000
20170418 15:37:53 Lower Threshold Non Critical = 8.000000
20170418 15:37:53 Upper Threshold Non Critical = 42.000000
20170418 15:37:53 Lower Threshold Critical = 3.000000
20170418 15:37:53 Upper Threshold Critical = 47.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Element Name = System Internal Expansion Board 1 IO1 Planar Temp
20170418 15:37:53 sensorType = 2 - Temperature
20170418 15:37:53 BaseUnits = 2
20170418 15:37:53 Scaled by = 0.010000
20170418 15:37:53 Current Reading = 33.000000
20170418 15:37:53 Lower Threshold Non Critical = 8.000000
20170418 15:37:53 Upper Threshold Non Critical = 92.000000
20170418 15:37:53 Lower Threshold Critical = 3.000000
20170418 15:37:53 Upper Threshold Critical = 97.000000
20170418 15:37:53 Element Op Status = 2
20170418 15:37:53 Check classe CIM_Memory
20170418 15:37:54 Element Name = CPU1 Level-1 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU1 Level-2 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU1 Level-3 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU2 Level-1 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU2 Level-2 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU2 Level-3 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU3 Level-1 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU3 Level-2 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU3 Level-3 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU4 Level-1 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU4 Level-2 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = CPU4 Level-3 Cache
20170418 15:37:54 Element Op Status = 0
20170418 15:37:54 Element Name = Memory
20170418 15:37:54 Element Op Status = 2
20170418 15:37:54 Check classe CIM_Processor
20170418 15:37:55 Element Name = CPU1
20170418 15:37:55 Family = 179
20170418 15:37:55 CurrentClockSpeed = 2000MHz
20170418 15:37:55 Element Op Status = 2
20170418 15:37:55 Element Name = CPU2
20170418 15:37:55 Family = 179
20170418 15:37:55 CurrentClockSpeed = 2000MHz
20170418 15:37:55 Element Op Status = 15
20170418 15:37:55 Element Name = CPU3
20170418 15:37:55 Family = 179
20170418 15:37:55 CurrentClockSpeed = 2000MHz
20170418 15:37:55 Element Op Status = 15
20170418 15:37:55 Element Name = CPU4
20170418 15:37:55 Family = 179
20170418 15:37:55 CurrentClockSpeed = 2000MHz
20170418 15:37:55 Element Op Status = 15
20170418 15:37:55 Check classe CIM_RecordLog
20170418 15:37:55 Unknown CIM Error: (0, "The web server returned a bad status line: ''")
20170418 15:37:55 Check classe OMC_DiscreteSensor
20170418 15:37:58 Element Name = Add-in Card 2 VFlash 1
20170418 15:37:58 Element Name = Add-in Card 1 SD1 Status 1
20170418 15:37:58 Element Name = System Board 1 DKM Status 65
20170418 15:37:58 Element Name = Disk Drive Bay 1 Cable SAS B 65: Connected
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Cable SAS B 65: Config Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Cable SAS A 65: Connected
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Cable SAS A 65: Config Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 5: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 4: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 3: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 2: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 1: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Drive Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Drive Fault
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Predictive Failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Hot Spare
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Parity Check In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: In Critical Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: In Failed Array
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Rebuild In Progress
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 1 Drive 0: Rebuild Aborted
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 Power Optimized 0: OEM
20170418 15:37:58 Element Name = System Board 1 Power Optimized 0: Unknown
20170418 15:37:58 Element Name = System Board 1 Power Optimized 0: Unknown
20170418 15:37:58 Element Name = System Board 1 Power Optimized 0: Unknown
20170418 15:37:58 Element Name = System Board 1 Power Optimized 0: Unknown
20170418 15:37:58 Element Name = System Board 1 Fan Redundancy 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 PS Redundancy 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 Intrusion 0: General Chassis intrusion
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 OS Watchdog 0: Timer expired
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 OS Watchdog 0: Hard reset
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 OS Watchdog 0: Power down
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 OS Watchdog 0: Power cycle
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 Riser Config 0: Connected
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 Riser Config 0: Config Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 2 Status 0: Presence detected
20170418 15:37:58 Element Name = Power Supply 2 Status 0: Failure status
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 2 Status 0: Predictive failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 2 Status 0: Power Supply AC lost
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 2 Status 0: Config Error: Vendor Mismatch
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 1 Status 0: Presence detected
20170418 15:37:58 Element Name = Power Supply 1 Status 0: Failure status
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 1 Status 0: Predictive failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 1 Status 0: Power Supply AC lost
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Power Supply 1 Status 0: Config Error: Vendor Mismatch
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 Status 0: IERR
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 Status 0: Thermal Trip
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 Status 0: FRB3/Processor startup/init failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 Status 0: Configuration Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 Status 0: Presence detected
20170418 15:37:58 Element Name = Processor 4 Status 0: Throttled
20170418 15:37:58 Element Name = Processor 3 Status 0: IERR
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 Status 0: Thermal Trip
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 Status 0: FRB3/Processor startup/init failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 Status 0: Configuration Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 Status 0: Presence detected
20170418 15:37:58 Element Name = Processor 3 Status 0: Throttled
20170418 15:37:58 Element Name = Processor 2 Status 0: IERR
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 Status 0: Thermal Trip
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 Status 0: FRB3/Processor startup/init failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 Status 0: Configuration Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 Status 0: Presence detected
20170418 15:37:58 Element Name = Processor 2 Status 0: Throttled
20170418 15:37:58 Element Name = Processor 1 Status 0: IERR
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 Status 0: Thermal Trip
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 Status 0: FRB3/Processor startup/init failure
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 Status 0: Configuration Error
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 Status 0: Presence detected
20170418 15:37:58 Element Name = Processor 1 Status 0: Throttled
20170418 15:37:58 Element Name = Disk Drive Bay 1 Presence 0: Present
20170418 15:37:58 Element Name = Disk Drive Bay 1 Presence 0: Absent
20170418 15:37:58 Element Name = Power Supply 2 Presence 1: Present
20170418 15:37:58 Element Name = Power Supply 2 Presence 1: Absent
20170418 15:37:58 Element Name = Power Supply 1 Presence 1: Present
20170418 15:37:58 Element Name = Power Supply 1 Presence 1: Absent
20170418 15:37:58 Element Name = Processor 4 Presence 1: Present
20170418 15:37:58 Element Name = Processor 4 Presence 1: Absent
20170418 15:37:58 Element Name = Processor 3 Presence 1: Present
20170418 15:37:58 Element Name = Processor 3 Presence 1: Absent
20170418 15:37:58 Element Name = Processor 2 Presence 1: Present
20170418 15:37:58 Element Name = Processor 2 Presence 1: Absent
20170418 15:37:58 Element Name = Processor 1 Presence 1: Present
20170418 15:37:58 Element Name = Processor 1 Presence 1: Absent
20170418 15:37:58 Element Name = System Board 1 IO Riser Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 IO Riser Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 PCIe Riser Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 PCIe Riser Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 Stor Adapt Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 Stor Adapt Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 USB Cable Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 USB Cable Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 iDRAC6 Ent Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 iDRAC6 Ent Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 Heatsink Pres 0: Present
20170418 15:37:58 Element Name = System Board 1 Heatsink Pres 0: Absent
20170418 15:37:58 Element Name = System Board 1 VR P1V2 MAIN LOM 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 VR P1V5 IOH 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Internal Expansion Board 1 VR PLX RISER 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 VR PLX PG 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P075 MEM4 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P075 MEM3 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P075 MEM2 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P075 MEM1 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V1 MEM4 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V1 MEM3 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V1 MEM2 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V1 MEM1 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR PSI MEM4 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR PSI MEM3 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR PSI MEM2 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR PSI MEM1 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V5 MEM4 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V5 MEM3 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V5 MEM2 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Memory Module 8 VR P1V5 MEM1 65
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 0.9V PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 1.1V PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 1.8V PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 3.3V PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 5V CPU PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 5V IO PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 8V PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 CPU 1.8 PLL PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 VIO 24 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 VIO 13 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 VCACHE 3 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 VCACHE 2 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 VCACHE 1 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 VCACHE 0 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 4 VCORE 3 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 3 VCORE 2 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 2 VCORE 1 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Processor 1 VCORE 0 PG 0
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 3 ROMB Battery 0: Low
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = Disk Drive Bay 3 ROMB Battery 0: Failed
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Element Name = System Board 1 CMOS Battery 0: Failed
20170418 15:37:58 Element Op Status = 2
20170418 15:37:58 Check classe OMC_Fan
20170418 15:37:59 Element Name = FAN 6 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Element Name = FAN 5 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Element Name = FAN 4 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Element Name = FAN 3 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Element Name = FAN 2 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Element Name = FAN 1 RPM
20170418 15:37:59 Element Op Status = 2
20170418 15:37:59 Check classe OMC_PowerSupply
20170418 15:47:59 Unknown CIM Error: (1, u'Timeout (or other socket error) waiting for response from provider')
20170418 15:47:59 Check classe VMware_StorageExtent
20170418 15:48:01 Check classe VMware_Controller
20170418 15:48:01 Check classe VMware_StorageVolume
20170418 15:48:02 Check classe VMware_Battery
20170418 15:48:02 Check classe VMware_SASSATAPort
OK - Server: Dell Inc. PowerEdge R810 s/n: HBTT82S System BIOS: 2.2.3 2011-04-05
[root@root@amk-123 libexec]#
This plugin is working with most of version of ESXi and DELL, HP and IBM manufacturers.
But I was unable to use it for IBM System X3650 M4 installed with version 6.0 of ESXi.
I had to uncomment the class CIM_Card in the source of the plugin in order to make it work properly. Otherwise I got the following error:
Check classe CIM_Card
Traceback (most recent call last):
File "./check_esxi_hardware.py", line 561, in ?
verboseoutput(" Element Name = "+elementName)
TypeError: cannot concatenate 'str' and 'NoneType' objects
byAZTechGuy, November 30, 2016
I have been using this product for about 2 years now. i recently updated one of my hosts to ESXi 6.0 U2 and am now having issues with the hardware check. I wanted to see if there was an update coming or if anyone else had experience this? Also is there any planned support for the new 6.5 release?
byretro69, November 27, 2016
I tried to run the command but I get an error.

Traceback (most recent call last):
File "./check_esxi_hardware.py", line 608, in ?
pywbemversion = pkg_resources.get_distribution("pywbem").version
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 229, in get_distribution
if isinstance(dist,Requirement): dist = get_provider(dist)
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 115, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 585, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 483, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: pywbem

I have the following version of pywbem on the system.
pywbem.noarch 0:0.7.0-3.el5

I tried reinstalling that package but no change.


Anyone have any ideas please?
bychuckesn, July 12, 2016
Hello,
I'm runing this check on 3 ESXi Servers.
On 2 Server it's all OK.
The third Server is making problems. The result of the check says "Memory Critical". I checked the Memory of the Server and all the memory is OK.

I think the problem is here:
20160713 12:24:21 Check classe CIM_Memory
20160713 12:24:22 Element Name = Socket 1 Level-1 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Socket 1 Level-2 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Socket 1 Level-3 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Socket 2 Level-1 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Socket 2 Level-2 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Socket 2 Level-3 Cache
20160713 12:24:22 Element Op Status = 0
20160713 12:24:22 Element Name = Memory
20160713 12:24:22 Element Op Status = 6

When I comment out the line "CIM_Memory" then all is OK.
This is no solution because I want to monitor the Memory.

Can anyone please help me ?
bychuckes, July 12, 2016
Hi,
i'm checking 3 same ESXI Servers with the plugin.
With 2 Servers all is OK.
The third Server is giving me a Memory Critical, I checked the Server Memory and all the Memory is okay there is no failure.

I think the problem is here:

Check classe CIM_Memory
20160713 11:00:09 Element Name = Socket 1 Level-1 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Socket 1 Level-2 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Socket 1 Level-3 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Socket 2 Level-1 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Socket 2 Level-2 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Socket 2 Level-3 Cache
20160713 11:00:09 Element Op Status = 0
20160713 11:00:09 Element Name = Memory
20160713 11:00:09 Element Op Status = 6
20160713 11:00:09 Global exit set to CRITICAL

If I comment out "CIM_Memory" then the plugin shows "OK", but thats no solution because I want to monitor the memory.

Can anyone help me please?
Hello!
I trying to monitor VMware ESXi 5.1.0 build-1065491 (Update 1) on the server ProLiant DL360p Gen8.

My enviroment:
Centos 5.9 x386
Python 2.7
Nagios 4.0.8
check_esxi_hardware.py version 20150710.

I installed python-pywbem (0.7.0) extension from here http://pywbem.github.io/pywbem/installation.html

When I try to check I receive the error:

# ./check_esxi_hardware.py -H 192.168.33.252 -U root -P passw -V hp
Traceback (most recent call last):
File "./check_esxi_hardware.py", line 646, in
instance_list = wbemclient.EnumerateInstances(classe)
File "/usr/local/lib/python2.7/site-packages/pywbem/cim_operations.py", line 404, in EnumerateInstances
**params)
File "/usr/local/lib/python2.7/site-packages/pywbem/cim_operations.py", line 168, in imethodcall
verify_callback = self.verify_callback)
File "/usr/local/lib/python2.7/site-packages/pywbem/cim_http.py", line 184, in wbem_request
h.putheader('Content-length', len(data))
File "/usr/local/lib/python2.7/httplib.py", line 924, in putheader
str = '%s: %s' % (header, '\r\n\t'.join(values))
TypeError: sequence item 0: expected string, int found


Can anybody help me? Please)
Owner's reply

Please try it with the newest version (20160411 as of today) and the new and stable pywbem 0.8.x.

by4iter4, July 25, 2015
Realy nice script but no esxi 6.0 support. It is planned?
Owner's reply

It works with ESXi 6.x.

bySeraph, April 4, 2015
Not much of a Review, but a reply to @itheodoridis

On Claudios website, there's a very good faq section with all the latest infos - but to make things short: downgrade pybwm like this

apt install python-pywbem=0.7.0-4

this should temporarily fix the issue until they release an update.

for updates on this issue, look here:

https://bugs.launchpad.net/ubuntu/+source/pywbem/+bug/1434991

Happy Easter everyone =)
Owner's reply

Thanks for that hint. This is now solved with the current version 20150626.

Page 1 of 3