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


Remember Me


53 votes
Current Version
Last Release Date
FileDescription Version 1.64 Version 1.65 Version 1.66
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
Check hardware health of HP Proliant Servers by querying the iLO2/3/4/5 Management Controller.
Check hardware health of HP Proliant Servers by querying the
iLO2/3/4/5 Management Controller. No need for snmp or installation of
Checks if all sensors are ok, returns warning on high temperatures and fan failures and critical on overall health failure.
A PERL plugin using Nagios::Plugin, IO::Socket::SSL and XML::Simple.

The plugin makes use of the HP Lights-Out XML scripting interface.
HP provides some PERL scripting samples:

Please note that the plugin shows only temperature sensors by default. Faulty hardware components are only listed if iLO returns error state.

Additional options:
-e: plugin ignores "syntax error" messages in the XML output. This may help for older firmwares.
-n: output without temperature listing.
-d: add PerfParse compatible temperature output.
-v: print out the full XML output from the BMC.
-3: support for iLO3|4
-a: check fan redundancy (only some models)
-c: check drive bays (only some models)
-o: check power redundancy (only some models)
-b: temperature output with location
-l: parse iLO eventlog
-b: show temperature with location
-x: ignore battery missing
-i: ignore NIC Link Down status (iLO4).
-g: display additional infos like firmware version and servername (may need increased timeout!)
-f: read input from file instead from iLO, possible to feed -v output to it
--sslopts: Defaults to 'SSL_verify_mode => SSL_VERIFY_NONE'. Use 'SSL_verify_mode => SSL_VERIFY_NONE, SSL_version => "TLSv1"' to avoid TLS Downgrade bug.


First test if you can reach the management controller with a web
browser. The plugin only works if the https interface is reachable.

Install the PERL modules Nagios::Plugin, IO::Socket::SSL and
XML::Simple. Copy the plugin to your nagios plugin directory and make sure that the nagios user can execute it.

Put this in your nagios config:

define command {

command_name check_ilo2_health
command_line $USER1$/ -u $USER10$ -p $USER11$ -H $HOSTADDRESS$


Assuming that $USER1$ contains the path to the plugin, $USER10$ the
username and $USER11$ the password for the management controller.

Set up the appropriate services.

Hint: All management controllers have their own host definition in my nagios setup. So every Proliant Server with host_name foo has a management controller with host_name foo-ilo2.

1. Dump iLO output with -v by redirecting to a file.
2. Edit the file and change some elements with to another condition.
3. Read the file with -f.

Bug reports:
Please send an email and attach the -v output. You may want to remove addresses and serial numbers from the file.
Reviews (40)
./ -H x.x.x.x -u user -p password

and i get:

ILO2_HEALTH UNKNOWN - ERROR: No parseable output.
bytanelv, October 7, 2014
1 of 1 people found this review helpful
needed to add SSL_version => 'TLSv1' to connect command to make it work after ubuntu upgrade.
if i did not do that, i got SSL error

$client = new IO::Socket::SSL->new(PeerAddr => $host, SSL_verify_mode => SSL_VERIFY_NONE, SSL_version => 'TLSv1') or die "error=$!, ssl_error=$SSL_ERROR";
Seems like the link posted for the updated version of this plugin is dead. Is there an alternative location to download from?
bytrevrobwhite, October 31, 2013
Good plugin, we had problems with it working on ILO4 for two reasons, one the ILO can take a while to return the results, fix this by specifying -t 120 (but make sure your timeout for nagios is long enough in the nagios.cfg).

The second issue is that the ILO4 often returns N/A in its temperatures, you can fix this as, by not trying to set the perdata if the value contains N/A follows:
Line 439:
if ( defined($cautiontemp) && defined($criticaltemp) && ($cautiontemp !~ m"^n/a$"i)) {
if ($criticaltemp =~ m"^n/a$"i) {
warning => $cautiontemp,

} else {
warning => $cautiontemp,
critical => $criticaltemp,
byRipprapp, October 6, 2013
I am trying this script (version 1.58) with an iLO4 (sw=1.30) DL360p Gen8.

I only get temperature values in return.

If I add the -n option it looks like:

./ -u USER -p PWD -3 -n -H -t 60
ILO4_HEALTH OK - (Board-Version: ILO>=3)

Running it in verbose mode (-v) it looks like it can get info about fans, cpu etc.

But it is not displayed. Can this line in the verbose output be a hint what is missing?

Scripting utility should be updated to the latest version.

HAve anyone else had the same problem? Any idea what might be wrong?
Very excellent.

For me, with ilo2 and latest firmware, i have aa error :
ILO2_HEALTH UNKNOWN - ERROR: Failed to establish SSL connection with *****

Changed :
$client = new IO::Socket::SSL->new(PeerAddr => $host);

$client = new IO::Socket::SSL->new(PeerAddr => $host,SSL_verify_mode => SSL_VERIFY_NONE);

After, check is fully ok.
bymeirickc, March 15, 2013
I would love to make this work on our iLO4 servers, has anyone been able to get it working?

I downloaded the latest version via the review by: "Link to Version 1.55 / ILO4
bypeetsche, March 8, 2013" but when I run the command I only end up with [CHECK_ILO2_HEALTH UNKNOWN - plugin timed out (timeout 15s)]. I followed the instructions to install it and already had the 3 modules installed and can reach the management interface via https. I get the same output whether I try it on the commandline as root or via Nagios interface as nagios user.

Any response would be helpful.
bypeetsche, March 8, 2013
1 of 1 people found this review helpful
Works for me for years!

Here you can find the newest version:
byburns498, January 30, 2013
This plugin is great. The source plugin is well documented, installation dependencies well documented, works out of the box in nagios. I am fairly new to nagios and was able to figure this out.

I could get nitpicky and ask for more features but 5/5 since it does exactly what it says it does.

Some notes. The nagios box we are using is *nix based and I was able to find all the dependencies via yum.
yum install perl-IO-Socket-SSL.noarch
yum install perl-XML-Simple.noarch
yum install perl-Nagios-Plugin.noarch

The only small hiccups I had were in configuring nagios. I needed to setup the host.cfg hostaddress as the hostname as opposed to the IP address for some reason. Also, our particular iLO2 password has odd characters that confuse the shell so I needed to add quotation marks around the password in the nagios config.

Just some tips that were difficult for me to figure out since I am new to this. Plugin is great.
Works great with iLO3 but cannot make it work on iLO4 - Assistance appreciated
byNapsty, September 11, 2012
Keep up the good work. Working very well with ILO3 (with -3 parameter).
I really like this script, but this listing needs to be updated to the latest version. I'm currently using 1.52 from the page:

Which is now working properly on my iLO2. It would be nice to see all the switch options as well, such as -o for checking power, -a for checking fans and -c for checking drives.
Works great with HP's ILO version 2. Anyone know how to make it work with ILO version 3 firmware?
This plugin is great.
Anyway I have question after read the code. There is commented warning "do not override previous return value from overall health", what's the effect if I try to override the value? I want to override ambient temperature warning and critical values to lower value, since one day I found that the air conditioner in my server room didn't work and the temperature hit about 30 C (some reference said ideally it should be about 20). Is it OK to ask question here?
thanks In advance
bysteffan, December 2, 2011
Works great..

i had a little trouble getting all the packages to work that this script needs, but finally got them all and now it runs perfect :)

Tho i have some idears that would make this plugin alot better:

1. to support iLO1 (we have a couple of old servere, with iLO-1 cards.)

2. if you have a server with a lot of temperature sensors, the output list from this plugin is HUGE and confusing (i have a server with 25 temperature sensors!) and this plugin just outputs them all as "temp_" would be great with the names description/name there too.

3. we use the "service description" in nagios a lot, and the description from this plugin is confusing and shows a lot more info than needed.
a great feature would be to have the plugin monitor only 1 thing, for example the temperatures only. or the HDD's only. that way i would create a server check for each to make out nagios installation clean and easy to understand.

4. maybe an option to choose a specific temperature sensors to check? (e.g "temp_15")

5. a option to only veiw the RAID/disk status.

i think all the above is possible the way this plugin is already checking the health of the server, since all that output is in the XML, but some of it gets ignored.
But that was just my thoughts on what could make this plugin better :)

else this is an awesome plugin, and thanks alot for sharing it!!
byMarininMV, September 21, 2011
Good plugin! Had to patch it to make it work with iLO2 on HL DL360 G6 (iLO2 drive status issue)
bydermaniac, April 12, 2011
Really nice! Also works with ilo3!
For me I had to define /usr/lib/perl before the command line in the commands.cfg
byricharddekker1981, November 23, 2010
What is the reason that he return Null??
bymorten, February 15, 2010

just tested this plugin against HP BladeCenter iLO, and it works very well. Running nagios 3.0.x on Debian 5.0.x. Had to install some of the perl modules using cpan, but the rest were avaiable in Debian's apt tree.
byplagat0x, August 27, 2009
I used this plugin to check the status on a farm of HP Servers. It worked very well. Too bad the old iLO vers 1 doesnt provide the hardware info. I installed it on a Debian Lenny Nagios Server using the info provided by the author. My special Thanks to the author of this script.
Page 2 of 2