check_hp_bladechassis - Nagios plugin for checking the status of HP blade enclosures via SNMP


check_hp_bladechassis -H <HOSTNAME> [OPTION]...


check_hp_bladechassis is a plugin for the Nagios monitoring software that checks the hardware health status of a HP blade enclosure/chassis. The plugin is only tested with the c7000 enclosure.


-H, --hostname HOSTNAME

The transport address (hostname or IP) of the blade enclosure you want to monitor. This option is mandatory.

-C, --community COMMUNITY

This option expects a string that is to be used as the SNMP community name when using SNMP version 1 or 2c. By default the community name is set to public if the option is not present.

-p, --perfdata

Collect performance data. Performance data collected is total power usage.

-t, --timeout SECONDS

The number of seconds after which the plugin will abort. Default timeout is 30 seconds if the option is not present.

-i, --info

Prefix any alerts with the enclosure serial number.

-v, --verbose

In case of an alert, the part number, spare part number and serial number of the failed component is appended to the alert message.

-e, --extinfo

Display a short summary of system information (product, serial number, firmware and the number of blades and I/O modules) in case of an alert.

-s, --state

Prefix each alert with its corresponding service state (i.e. warning, critical etc.). This is useful in case of several alerts from the same monitored system.


Same as the --state option above, except that the state is abbreviated to a single letter (W=warning, C=critical etc.).

-d, --debug

Debug output. Will report status on all monitored subsystems, regardless of their alert state. Will also report total power usage.

-h, --help

Display help text.

-V, --version

Display version info.


-P, --protocol PROTOCOL

SNMP protocol version. This option is optional and expects a digit (i.e. 1, 2 or 3) to define the SNMP version. The default is 2, i.e. SNMP version 2c.

--port PORT

SNMP port of the remote (monitored) system. Defaults to the well-known SNMP port 161.

-U, --username SECURITYNAME

[SNMPv3] The User-based Security Model (USM) used by SNMPv3 requires that a securityName be specified. This option is required when using SNMP version 3, and expects a string 1 to 32 octets in lenght.

--authpassword PASSWORD, --authkey KEY

[SNMPv3] By default a securityLevel of noAuthNoPriv is assumed. If the --authpassword option is specified, the securityLevel becomes authNoPriv. The --authpassword option expects a string which is at least 1 octet in length as argument.

Optionally, instead of the --authpassword option, the --authkey option can be used so that a plain text password does not have to be specified in a script. The --authkey option expects a hexadecimal string produced by localizing the password with the authoritativeEngineID for the specific destination device. The snmpkey utility included with the Net::SNMP distribution can be used to create the hexadecimal string (see snmpkey).

--authprotocol ALGORITHM

[SNMPv3] Two different hash algorithms are defined by SNMPv3 which can be used by the Security Model for authentication. These algorithms are HMAC-MD5-96 MD5 (RFC 1321) and HMAC-SHA-96 SHA-1 (NIST FIPS PUB 180-1). The default algorithm used by the plugin is HMAC-MD5-96. This behavior can be changed by using this option. The option expects either the string md5 or sha to be passed as argument to modify the hash algorithm.

--privpassword PASSWORD, --privkey KEY

[SNMPv3] By specifying the options --privkey or --privpassword, the securityLevel associated with the object becomes authPriv. According to SNMPv3, privacy requires the use of authentication. Therefore, if either of these two options are present and the --authkey or --authpassword arguments are missing, the creation of the object fails. The --privkey and --privpassword options expect the same input as the --authkey and --authpassword options respectively.

--privprotocol ALGORITHM

[SNMPv3] The User-based Security Model described in RFC 3414 defines a single encryption protocol to be used for privacy. This protocol, CBC-DES DES (NIST FIPS PUB 46-1), is used by default or if the string des is passed to the --privprotocol option. The Net::SNMP module also supports RFC 3826 which describes the use of CFB128-AES-128 AES (NIST FIPS PUB 197) in the USM. The AES encryption protocol can be selected by passing aes or aes128 to the --privprotocol option.

One of the following arguments are required: des, aes, aes128, 3des, 3desde


check_hp_bladechassis will sometimes report more than one line, e.g. if there are several alerts. If the script has a TTY, it will use regular linebreaks. If not (which is the case with NRPE) it will use HTML linebreaks. Sometimes it can be useful to control what the plugin uses as a line separator, and this option provides that control.

The argument is the exact string to be used as the line separator. There are two exceptions, i.e. two keywords that translates to the following:


Regular linebreaks, i.e. ``\n''.


HTML linebreaks, i.e. ``<br/>''.

This is a rather special option that is normally not needed. The default behaviour should be sufficient for most users.


The option --debug (or -d) can be specified to display status of all components.


The perl module Net::SNMP is required on the Nagios host.


If no errors are discovered, a value of 0 (OK) is returned. An exit value of 1 (WARNING) signifies one or more non-critical errors, while 2 (CRITICAL) signifies one or more critical errors.

The exit value 3 (UNKNOWN) is reserved for errors within the script, or errors getting values via SNMP.


Written by Trond H. Amundsen <>


None known at present.


None known at present.

Note that as of this writing, the plugin is only tested against the c7000 enclosure.


Report bugs to <>


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see