Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
check_ilo2_health
1.66
2021-04-21
GPL
221468
File | Description |
---|---|
check_ilo2_health.pl | check_ilo2_health.pl Version 1.64 |
check_ilo2_health.pl | check_ilo2_health.pl Version 1.65 |
check_ilo2_health.pl | check_ilo2_health.pl Version 1.66 |
Meet The New Nagios Core Services Platform
Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.
Monitoring Made Magically Better
- Nagios Core on Overdrive
- Powerful Monitoring Dashboards
- Time-Saving Configuration Wizards
- Open Source Powered Monitoring On Steroids
- And So Much More!
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.
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
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 (48)
bymarcel.oliveira, January 14, 2016
2 of 2 people found this review helpful
It's a very good tool, working very well with ilo 2/3/4, but when I try to use with newest ilo4 version it's not working and i got the message:
CHECK_ILO2_HEALTH.PL UNKNOWN - plugin timed out (timeout 15s)
but for all ILO 2/3 and 4 firm version below 7 it's working properly. COuld you please help me to solve it?
CHECK_ILO2_HEALTH.PL UNKNOWN - plugin timed out (timeout 15s)
but for all ILO 2/3 and 4 firm version below 7 it's working properly. COuld you please help me to solve it?
byofflinehoster, September 9, 2015
./check_ilo2_health.pl -u username -p password -n -H 10.0.1.2 -t 60 -g
This failing with the error:
ILO2_HEALTH UNKNOWN - ERROR: Syntax error: Line #0: syntax error near "" in the line: "".
But withour -g i get:
ILO2_HEALTH OK - (Board-Version: ILO2)
This failing with the error:
ILO2_HEALTH UNKNOWN - ERROR: Syntax error: Line #0: syntax error near "" in the line: "".
But withour -g i get:
ILO2_HEALTH OK - (Board-Version: ILO2)
bypappapo, August 4, 2015
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!
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' );
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
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
byrvieira, June 24, 2015
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?
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?
by4eversr, February 17, 2015
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 ?
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
bybasante, October 15, 2014
./check_ilo2_health.pl -H x.x.x.x -u user -p password
and i get:
ILO2_HEALTH UNKNOWN - ERROR: No parseable output.
and i get:
ILO2_HEALTH UNKNOWN - ERROR: No parseable output.
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";
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";
byHodgson, November 15, 2013
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,
);
}
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?
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?
byCyril, September 26, 2013
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.
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.
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.
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
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.
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.
byKajmaj, November 20, 2012
Works great with iLO3 but cannot make it work on iLO4 - Assistance appreciated
Keep up the good work. Working very well with ILO3 (with -3 parameter).
byXaneth, April 15, 2012
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.
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.
Page 2 of 3