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

Directory Tree

check_ilo2_health

Rating
61 votes
Favoured:
12
Current Version
1.66
Last Release Date
2021-04-21
Owner
License
GPL
Hits
204965
Files:
FileDescription
check_ilo2_health.plcheck_ilo2_health.pl Version 1.64
check_ilo2_health.plcheck_ilo2_health.pl Version 1.65
check_ilo2_health.plcheck_ilo2_health.pl 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
software.
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:
http://h18013.www1.hp.com/support/files/lights-out/us/download/25057.html

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.

Howto:

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$/check_ilo2_health.pl -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.


Testing:
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 (46)
Throws
ERROR: Failed to establish SSL connection
just as the ones below.
This is on FreeBSD 10-STABLE with OpenSSL 1.0.1p and IO-Socket-SSL-2.016. Setup worked OK on previous versions and so far have not figured out how to patch - not very good at Perl...
Works great on a lot of other combos of DL360/380 G5/6/7/8!
bythyphus, July 23, 2015
0 of 1 people found this review helpful
there is a problem with Debian 8 or rather openssl 1.x
to fix the problem you have to replace following:

new(PeerAddr => $host, SSL_verify_mode => SSL_VERIFY_NONE, $sslv3 ?
'SSLv3' ) : () );
---
> $client = new IO::Socket::SSL->new(PeerAddr => $host, SSL_verify_mode => SSL_VERIFY_NONE, SSL_version => $sslv3 ?
> 'SSLv3' : 'TLSv1' );
bynorcon, July 14, 2015
Hi,
i get the following error: ILO2_HEALTH CRITICAL - Drive Bay 1: Spun Down, Drive Bay 2: Spun Down, Drive Bay 3: Spun Down, Drive Bay 4: Spun Down, Drive Bay 5: Spun Down, Drive Bay 6: Spun Down, Drive Bay 7: Spun Down, Drive Bay 8: Spun Down

With this command:$USER1$/check_ilo2_health.pl -H $ARG3$ -u $ARG1$ -p $ARG2$ -c -o -d -n -t 60

Is this an unsupported Server for "-c: check drive bays"? ProLiant DL380 G6
First of all, thanks for this plugin! :)

I'm getting this error:
./check_ilo2_health.pl -H [iLO] -u [USER] -p [PASSWORD]
Bareword "SSL_VERIFY_NONE" not allowed while "strict subs" in use at ./check_ilo2_health.pl line 384.

How can i solve this?
Hello from Germany. We use this plugin for some years now and it is great. Current Version 1.56 is installed on our nagios system.

But at the moment we ran in a little problem since we installed the latest ILO 4 2.03 firmware HP submitted in january 2015. - Now nagios/the plugin shows a "Power_Supply Inlet Temperature Warning" on some ILO4 servers although the ILO4 itself is happy with all temperatures.

ILO2_HEALTH WARNING - (Board-Version: ILO=3) Power_Supply_2: Inlet Temperature Warning

Any ideas on that ?
byalaselva, January 14, 2015
It does what it says. Thanks
./check_ilo2_health.pl -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) {
$p->set_thresholds(
warning => $cautiontemp,
);

} else {
$p->set_thresholds(
warning => $cautiontemp,
critical => $criticaltemp,
);
}
byRipprapp, October 6, 2013
Hi,
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:

./check_ilo2_health.pl -u USER -p PWD -3 -n -H 10.10.10.10 -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);

to:
$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:

https://www.monitoringexchange.org/attachment/download/Check-Plugins/Hardware/Server-%2528Manufacturer%2529/HP-%2528Compaq%2529/check_ilo2_health/12-08-5_08-33-56_check_ilo2_health.pl
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:

https://www.monitoringexchange.org/inventory/Check-Plugins/Hardware/Server-%2528Manufacturer%2529/HP-%2528Compaq%2529/check_ilo2_health

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
Page 2 of 3