4 * Added more robustness wrt. values from OMSA obtained via SNMP, to
5 avoid internal errors where non-important values are missing.
10 * A few compatibility fixes for OMSA 6.4.0 were added.
15 * Added support for IPv6 when checking via SNMP. IPv6 can be turned on
16 with the option '-6' or '--ipv6'. The default is IPv4 if the option
18 * Added support for TCP when checking vis SNMP. The option '--tcp' can
19 be used to turn on TCP. The default transport protocol is UDP if the
20 option is not present.
21 * The mode of operation (local or SNMP) is shown in the debug
22 output. If SNMP is used, the debug output will also show the SNMP
23 protocol version, IP version and transport protocol (UDP or TCP).
24 * Amperage probe status via SNMP is of type "probe status", not
25 regular status. This has been fixed.
26 * Massive overall robustness improvements to handle OMSA bugs where
27 some information from OMSA is missing.
28 * Memory module enumeration via SNMP changed somewhat to reflect
29 enumeration provided by omreport. This ensures that the plugin's
30 output is identical in SNMP or local mode wrt. dimms IDs.
31 * Fan enumeration via SNMP changed somewhat to reflect enumeration
32 provided by omreport. This ensures that the plugin's output is
33 identical in SNMP or local mode wrt. fan IDs.
38 * Included new check for SD cards. Newer servers such as the R710 can
39 have SD cards installed, these should be monitored. The SD card
40 check is on by default. A new blacklisting keyword 'sd' has been
41 added. The SD card check can be turned off with '--check sdcard=0'.
42 * Handle special cases where power monitoring capability is disabled
43 due to non-redundant and/or non-instrumented power supplies.
44 * For physical disks probed via SNMP, check that values for vendor,
45 product ID and capacity is available before attempting to display
47 * If a physical disk is in sufficiently bad condition, the vendor
48 field reported by OMSA may be empty. The plugin now handles this
49 situation without throwing an internal error.
55 * Storage is no longer allowed to be absent. If the plugin doesn't
56 find a storage controller, it will give an alert. For diskless
57 systems or servers without a Dell controller that OMSA recognizes
58 you will now have to specify '--no-storage' or '--check storage=0'
60 * Report the system revision (if applicable) wherever the model name
61 is printed. E.g. "PowerEdge 2950 III" instead of "PowerEdge 2950".
62 * Small change in search path for omreport: The new location for OMSA
63 6.2.0 and later on Linux will be attempted first.
64 * Small bugfix for the '--check' parameter, if the argument is a
65 filename. The file could not contain a linebreak, this has been
67 * Added an option '--no-storage', which is equivalent to the general
68 option '--check storage=0'.
74 * If a physical disk is a hot spare, display this information in
76 * Report the bus protocol (e.g. SAS, SATA) and media type (e.g. HDD,
77 SDD) for physical disks in the debug output, if applicable
78 * Minor fix for 100GB physical disks, write "100GB" instead of "99GB"
79 * SNMP: Use new features of OMSA 6.3.0 to display occupied and total
80 slots in storage enclosures, if applicable. This information is not
81 available with omreport and check_openmanage will not display this
83 * SNMP: Added new processor IDs from the OMSA 6.3.0 MIBs
84 * SNMP: Use connection tables in a proper way to determine controller
85 and enclosure IDs, for use with physical disks and enclosure
86 components (fan, temp sensors etc.). This fixes a long standing bug
87 for servers with more than one controller, if checked via SNMP.
88 * SNMP: Use the nexus ID as last resort to find the controller for
89 physical disks. Workaround for older, broken OMSA versions.
90 * SNMP: Identify enclosures (e.g. '2:0:0') properly so that the
91 reporting with SNMP corresponds to the same report with omreport.
92 * SNMP: added a couple of workarounds for pre-historic OMSA versions
98 * More fine-grained reporting of temperature warnings for enclosure
100 * Max/min temperature limits for enclosure temp probes are reported in
102 * Report enclosure temperature probes that are "Inactive" as ok
103 * Don't try to print out the reading of enclosure temperature probes
104 if the reading doesn't exist or is not an integer
105 * Report enclosure EMMs that are "Not Installed" as ok, instead of
107 * Corrected typo in the PNP4Nagios template
113 * Remove reporting of which controller a logical drive is "attached"
114 to, since this information can't be reliably extracted via SNMP.
115 * Avoid collecting Lun ID via SNMP for virtual disks, we don't use it
116 * Report total memory and number of dimms in the ok output
117 * Difference in reporting if amperage probes have discrete readings
118 * Workaround for broken amperage probes
119 * Added workaround for bad temperature probes that yields no reading
121 * Get OMSA version via SNMP slightly more efficiently
127 * Added robustness for received SNMP values that are not defined in
128 the MIB. Instead of throwing a perl warning when this happens, the
129 plugin will not report the undefined value.
130 * Defined "Replacing" as a defined state for physical disks in SNMP
131 mode, even though this state is not defined in the MIB. It is
132 reported as such by omreport.
133 * Physical disk brand/model is now reported when the state of the disk
134 is "Rebuilding" or "Replacing".
135 * The state of a physical disk is reported in parentheses when
136 predictive failure is detected. It is useful to know if a disk is
137 online, offline, spare or even failed when predictive failure is
139 * Handling of physical disk predictive failure has been improved
141 * Refactoring of the perfdata code. In conformance with the plugin
142 development guidelines, the UOM (unit of measure) previously
143 reported in the perfdata output has been removed.
144 * The -p or --perfdata option now
145 takes an optional agrument 'minimal', which triggers shorter names
146 for the perfomance data labels. This shortens the output and is a
147 workaround for systems where the amount of output exceeds the 1024
149 * The PNP4Nagios template has been updated. Users of check_openmanage
150 and PNP4Nagios are advised to upgrade. This version of
151 check_openmanage needs the new template.
152 * Lots of other small improvements and updates.
158 * New option '--use-get_table' is added as a workaround for SNMPv3 on
159 Windows using net-snmp. This option will make check_openmanage use
160 the Net::SNMP function get_table() instead of get_entries() to
161 collect information via SNMP.
162 * Include a blacklisting option 'ctrl_pdisk' which takes the
163 controller number as argument. This blacklisting option only works
164 with omreport and is a workaround for broken disk firmwares that
165 contain illegal XML characters. These characters makes openmanage
166 barf and exit with an error. Patch from Bas Couwenberg.
167 * If the blacklisting keyword "all" is supplied for a component type,
168 that component type is not checked at all, i.e. the commands are
169 never executed. This will make check_openmanage execute faster if
170 blacklisting is heavily used.
171 * Option '--htmlinfo' now has a shorter equivalent '-I'
172 * The option '--short-state' now has a shorter equivalent '-S'
178 * Fixed an SNMP bug where the plugin didn't handle OID indexes that
179 were not sequential. Thanks to Gianluca Varenni for reporting.
180 * Fixed an SNMP bug when checking old hardware such as the PE 2650 and
181 PE 750. The controller id for physical drives were collected and
182 displayed incorrectly. This release uses an additional OID to fetch
183 this info, which would otherwise be unavailable. Thanks to Gianluca
184 Varenni for reporting this bug.
185 * Should use %snmp_probestatus, not %snmp_status when checking the
186 status of voltage probes. Thanks to Ken McKinlay for a patch.
187 * Fix when identifying blades via SNMP with very old OMSA
188 versions. Patch from Ken McKinlay.
189 * Better way of finding the ID of physical drives via SNMP
195 * Added support for storport driver version for controllers, only
196 applicable on servers running Windows. A new blacklisting keyword
197 for suppressing storport driver messages was added.
198 * The "all" keyword in blacklisting is now case insensitive.
199 * More fine-grained reporting in the rare case where a controller
200 battery fails during learning and charging states.
201 * New improved way of reporting perl warnings during execution of the
208 * Fix for path to omreport on Linux with OMSA 6.2.0
209 * A couple of other small fixes
215 * Fix for undefined device name for logical drives (thanks to Pontus
217 * Fixed a bug in the PNP4Nagios template, that prevented the template
218 from working with PNP4Nagios 0.6. Thanks to the PNP4Nagios team for
225 * CPU type, family etc. are now reported in case of a CPU failure (and
227 * The debug output now reports Openmanage version and plugin version
233 * New option '-a' or '--all' turns on checking of everything
234 * The manual page (POD info) is removed from the script and is now in
235 a separate file, to make check_openmanage fully ePN compatible
236 * ePN is no longer disabled by default, check_openmanage no longer has
237 an opinion on whether it should run under ePN or not
238 * The '-m' or '--man' option is no longer available
239 * The option '-v' or '--verbose' is renamed to '-d' or '--debug',
240 which makes more sense wrt. its usage
241 * The '-g' or '--global' option is removed. Checking the global health
242 status is now default if applicable
243 * Checking intrusion detection is now turned on by default
244 * The obsolete option '--snmp' is removed
245 * The option '--state' now has a shorter equivalent '-s'
246 * The basename stuff and options '--only-critical' and
247 '--only-warning' are now replaced by an option '--only'
248 * If plugin is run by Nagios, redirect stderr to stdout
249 * Added option '--omreport', that lets the user specify the full path
250 to the omreport binary
251 * Added non-8bit-legacy default search paths for omreport.exe for
253 * Minor changes to the plugin output, for consistency
254 * New blacklisting keyword 'bat_charge' disables warning messages
255 related to controller cache battery charging. Thanks to Robert
256 Heinzmann for a patch.
257 * For blacklisting, the component ID kan now be "ALL", in which all
258 components of that type is blacklisted.
259 * Man page is moved to manual section 8
265 * Fixed a bug that could cause errors and weird results when checking
266 cooling devices (fans) via SNMP. Thanks to Ken McKinlay for spotting
267 this bug and reporting it.
272 * For failed physical drives, check_openmanage will now output the
273 drive's vendor, model and size in GB or TB.
278 * The -s|--snmp option was redundant and no longer does anything. SNMP
279 is triggered automatically if the -H|--hostname option is
280 present. The -s|--snmp option is kept for compatibility, but has no
286 * Added support for performance data (temperatures) from attached
287 storage enclosures such as the MD1000
292 * Fixed a regression in the --htmlinfo option when it is not supplied
298 * New option --htmlinfo adds clickable HTML links in the plugin's
304 * Fixed a regression bug in CPU and power supply reporting that only
305 affects verbose output
306 * If blacklisting is used, the global health check (via the --global
307 option) is now negated. Checking the global health doesn't make
308 sense when one or more components is blacklisted. Thanks to Rene
309 Beaulieu for reporting this bug
310 * The PNP4Nagios template is now included in the tarball and zip
316 * Improved memory error reporting, when using omreport
317 * Collect performance data from pwrmonitoring (amperage probes) that
318 were previously ignored when using omreport
323 * Improved memory error reporting, when using SNMP
324 * Other small ehnancements
329 * The plugin is now compatible with the Nagios embedded Perl
330 interpreter (ePN) in theory. However, the plugin will not not use
331 ePN by default. We don't want any "accidents".
332 * License is now GPLv3, previously only specified as "GPL"
333 * New options --only-critical and --only-warning. With these options
334 the plugin will only print critical or warning alerts, respectively.
335 * Bugfixes and speed enhancements in the storage section, when
336 checking enclosure components via omreport
337 * The --okinfo option is now less verbose and more to the point
338 * Lots of code refactoring for readability, maintainability and
344 * Fixed a bug in the storage section, when checking controllers. This
345 is an obscure bug that only manifests itself in the odd case where a
346 server has multiple controllers, and one of the controllers are
347 missing some of the OIDs, in which case these OIDs will be missing
348 for the other controllers as well. The change is minor and only
349 includes using get_table() instead of get_entries() to collect the
350 SNMP result. Thanks to Stephan Bovet for reporting this bug.
355 * The --perfdata option can now optionally take an argument
356 "multiline", which makes the plugin produce multiline performance
357 data output in a Nagios 3.x way. Not really needed, but the plugin
359 * Added comment within the 10 first lines to disable the nagios
360 embedded perl (ePN) interpreter by default for Nagios 3.x
361 * Improvements in the performance data output. Units are now included
366 * Added --global option, which turns on checking of everything. If
367 used with SNMP, the global system health status is also probed, to
368 protect the user against bugs in the plugin. If used with omreport,
369 the overall chassis health is used.
370 * Support for SNMP version 3
371 * New check added: esmhealth. This checks the overall health of the
372 ESM log, i.e. the fill grade. More than 80% means a warning message
373 * Fixed alert log reporting to use the same format as for the ESM log
374 * Output messages are now sorted by severity
375 * Minor changes in how out-of-date controller firmware/driver is
377 * Code refactoring and cleanup
382 * Use "omreport about" to collect OMSA version. Slightly faster than
383 "omreport system version". This should give a small speedup in
384 certain configurations
385 * Fixed typo in output when a logical drive is rebuilding. Thanks to
386 Andreas Olsson for reporting
387 * Improved reporting of ESM log content
388 * Added omreport.sh as alternate omreport path
389 * Lots of other small fixes and enhancements
391 Plus: A few changes to make the plugin work with old PowerEdge models
392 (e.g. 2550, 2450) and/or old OMSA versions (e.g. version 4.5):
394 * Use the chassisModelName OID to determine if SNMP works (instead of
396 * No longer require a response when checking baseboard type via
397 SNMP. If there is no response, we assume that we're not dealing with
400 Thanks to Christian McHugh for help with testing and debugging this
406 * Use 'omreport system operatingsystem' to collect OS info, instead of
407 'omreport system' version which is incredibly slow. This should speed
408 things up in certain configurations.
409 * A few speedups, don't collect information that isn't needed
415 * New option --linebreak to specify the separator between line in case
417 * Added support for 64bit Windows. Thanks to Patrick Hemmen for a patch
418 * [Patrick Hemmen] Added install.bat for Windows installation
419 * [Patrick Hemmen] Improvements on install.sh. Will now install in
420 /usr/lib64 for x86_64
421 * RPMs are now architecture dependent, because of different libdir
426 * New option -o|--ok-info to display extra information when everything
427 is ok. The plugin can now display storage firmware and driver info,
428 DRAC and BMC firmware, and OMSA version
429 * Support for setting custom minimum temperature thresholds via the
430 -c|--critical and -w|--warning options
431 * Better and more detailed temperature error reporting
432 * Bugfix in the amperage report (including performance data). The
433 plugin now takes into account the correct unit and measurement for
434 amperage probes (other than watts)
435 * New option --port lets the user specify the remote SNMP port number
440 * Regression fix: Use the older Processor Device SNMP OIDs for older
441 PowerEdge models, that don't have the new Processor Device Status
442 OIDs. Thanks to Nicole Hähnel for reporting this bug.
443 * Default output (when there are no alerts) now shows RAC firmware,
444 BMC firmware, info about controllers and enclosures (firmware,
450 * Regression fix: Ignore unoccupied CPU slots with SNMP probing. This
451 fixes a bug introduced in versjon 3.2.1, which would output
452 something like this if one or more CPU slots were empty: CPU 1 needs
458 * Use Processor Device Status Table OIDs instead of Processor Device
459 Table when checking CPUs via SNMP
460 * Bugfix: don't report throttled CPUs as warnings when checking via
461 SNMP (same as for checking locally)
466 * New options --state and --short-state for displaying service state
468 * Lots of small fixes for code readability and maintainability
473 * Support for running natively on Windows (using omreport.exe). Thanks
474 to Peter Jestico for a patch.
475 * Support for compiled Windows version, i.e. check_openmanage.exe is
476 now a legal script name.
477 * Exit with error if script basename is illegal/unknown
478 * Various small fixes
483 * Use of alternate basenames for checking only one class of components
484 * Added support for checking the ESM log via SNMP
485 * Code refactoring for robustness and maintainability
486 * Numerous small fixes and enhancements
487 * Added install script in distribution tarball
492 * The script no longer aborts if it can't get system information via
493 SNMP. Give a warning instead, as this is not a critical error
494 * Increased robustness when checking controllers
499 * Man page fix in the 'check' section. Thanks to Ansgar Dahlen for
501 * Allow invalid command error from 'omreport chassis pwrmonitoring'
502 * Various small fixes
507 * Use unique IDs for storage components with regard to blacklisting,
508 which means that the blacklisting API has changed
509 * Added checks for storage components: connectors (channels),
510 enclosures, enclosure fans, enclosure power supplies, enclosure
511 temperature probes and enclosure management modules (EMMs)
512 * Improved verbose output
513 * New option -t|--timeout for setting the plugin timeout
514 * New option -w|--warning for setting custom temperature warning
516 * New option -c|--critical for setting custom temperature critical
518 * Option --check can no longer be specified in its short form (-c)
519 * Code cleanup and improvements
524 * The workaround for the OMSA bug introduced in OMSA 5.5.0 didn't take
525 multiple controllers into account. This has been fixed.
530 * New option -i|--info prefixes all alerts with the service tag
531 * New option -e|--extinfo gives and extra line of output in case of an
532 alert (model and service tag)
533 * New option --postmsg lets the user specify a post message string,
534 with info such as model, service tag etc.
535 * Options -b|--blacklist and -c|--check can now be specified multiple
536 times (actually quite useful)
541 * Slightly improved output for alerts on logical drives (vdisks)
542 * Now shows a rebuilding physical disk as a warning, as this is
543 usually accompanied by a degraded vdisk. Previous versions didn't
544 show this at all (omreport classifies it as "OK").
549 * Slightly improved output for charging controller batteries
554 * Bugfix for reporting physical drives with predictive failure (both
560 * Fix bug in option handling (ambiguous options)
561 * Slightly improved output if checking the storage subsystem is turned
563 * Don't complain if there are no logical drives. This is OK. Thanks to
564 Jamie Henderson for reporting this
569 * Fix bug in SNMP status level table
574 * Added workaround for a BUG introduced in OpenManage 5.5.0. OM
575 sometimes adds a newline in the controller driver version name,
576 which leads to problems parsing the output. Thanks to Hiren Patel
577 for bringing this to my attention.
582 * (snmp) Improved handling of cases where OM is not working properly
587 * Fixed issue where controller number for physical disks can't be
588 established via SNMP (now identifies as controller no. -1)
593 * Correctly identifies and reports error condition in which OpenManage
594 has stopped working (it happens)
600 * Same options for checking, blacklisting etc. supported with SNMP
601 * Same output with SNMP as with NRPE
606 * Collects performance data if the option '-p' or '--perfdata' is
608 * New blacklisting directives ctrl_fw and ctrl_driver
609 added. Suppresses the "special" warning messages concerning outdated
610 controller firmware and driver. Useful if you can't or won't
616 * Fix getting system model and serial number for newer blades
621 * Three new checks added:
622 - System battery probes (typical CMOS battery). Newer poweredge
624 - Power consumption monitoring (if the server supports it)
625 - ESM log, with same functionality as the alert log check. Disabled
631 * Internal refactoring: use ssv-formatted output from openmanage,
632 resulting in slightly faster execution and increased robustness.
633 * If /usr/bin/omreport doesn't exist, try
634 /opt/dell/srvadmin/oma/bin/omreport.
635 * Allow for no instrumented/redundant power supplies. Needed on
636 low-end poweredge models and blades.
641 * Openmanage reports non-critical warning about throttled CPUs on new
642 hardware models. Most og us use ondemand CPU frequency scaling (with
643 throttled CPUs as a result). This specific non-critical warning (CPU
644 Throttled) is ignored from now on.
645 * Remove superfluous Celcius sign when reporting temperatures.
650 * Accommodate blade systems with no fans or powersupplies, i.e. accept
651 errors from omreport when trying to check fans or powersupplies on
653 * Accommodate newer hardware with slightly different omreport
654 options. Use the newer options if they exist. Not really necessary
655 yet, but deprecated options may be removed in future versions of
661 * When everything is OK, check_openmanage now outputs the same info as
662 Gerhard Lausser's excellent check_hpasm plugin does for HP servers:
664 OK - System: 'poweredge 2850', S/N: 'XXXXXXX', ROM: 'A06
665 10/03/2006', hardware working fine, 2 logical drives, 4 physical