]> git.uio.no Git - check_openmanage.git/blob - check_openmanage.pod
foo
[check_openmanage.git] / check_openmanage.pod
1 # Man page created with:
2 #
3 #  pod2man -s 8 -r "`./check_openmanage -V | head -n 1`" -c 'Nagios plugin' check_openmanage.pod check_openmanage.8
4 #
5 # $Id$
6
7 =head1 NAME
8
9 check_openmanage - Nagios plugin for checking the hardware status on
10                    Dell servers running OpenManage
11
12 =head1 SYNOPSIS
13
14 check_openmanage [I<OPTION>]...
15
16 check_openmanage -H I<hostname> [I<OPTION>]...
17
18 =head1 DESCRIPTION
19
20 check_openmanage is a plugin for Nagios which checks the hardware
21 health of Dell servers running OpenManage Server Administrator
22 (OMSA). The plugin checks the health of the storage subsystem, power
23 supplies, memory modules, temperature probes etc., and gives an alert
24 if any of the components are faulty or operate outside normal
25 parameters.
26
27 check_openmanage is designed to be used by either locally (using NRPE
28 or similar) or remotely (using SNMP). In either mode, the output is
29 (nearly) the same. Note that checking the alert log is not supported
30 in SNMP mode.
31
32 =head1 GENERAL OPTIONS
33
34 =over 4
35
36 =item -t, --timeout I<SECONDS>
37
38 The number of seconds after which the plugin will abort. Default
39 timeout is 30 seconds if the option is not present.
40
41 =item -p, --perfdata [I<multline> or I<minimal>]
42
43 Collect performance data. Performance data collected include
44 temperatures (in Celsius) and fan speeds (in rpm). On systems that
45 support it, power consumption is also collected (in Watts). This
46 option takes one of two arguments, both of which are optional.
47
48 If the argument C<minimal> is specified, the plugin will use shorter
49 names for the performance data labels, e.g. C<t0> instead of
50 C<temp_0_system_board_ambient>. This can be used as a workaround in
51 cases where the plugin output needs shortening, for example if the
52 1024 character limit of NRPE is reached.
53
54 If given the argument C<multiline>, the plugin will output the
55 performance data on multiple lines, for Nagios 3.x and above.
56
57 =item -w, --warning I<STRING> or I<FILE>
58
59 Override the machine-default temperature warning thresholds. Syntax is
60 C<id1=max[/min],id2=max[/min],...>. The following example sets warning
61 limits to max 50C for probe 0, and max 45C and min 10C for probe 1:
62
63 check_openmanage -w 0=50,1=45/10
64
65 The minimum limit can be omitted, if desired. Most often, you are only
66 interested in setting the maximum thresholds.
67
68 This parameter can be either a string with the limits, or a file
69 containing the limits string. The option can be specified multiple
70 times.
71
72 NOTE: This option should only be used to narrow the field of OK
73 temperatures wrt. the OMSA defaults. To expand the field of OK
74 temperatures, increase the OMSA thresholds. See the plugin web page
75 for more information.
76
77 =item -c, --critical I<STRING> or I<FILE>
78
79 Override the machine-default temperature critical thresholds. Syntax
80 and behaviour is the same as for warning thresholds described above.
81
82 =item -o, --ok-info I<NUMBER>
83
84 This option lets you define how much output you want the plugin to
85 give when everything is OK, i.e. the verbosity level. The default
86 value is 0 (one line of output). The output levels are cumulative.
87
88 =over 4
89
90 =item B<0>
91
92 - Only one line (default)
93
94 =item B<1>
95
96 - BIOS and firmware info on a separate line
97
98 =item B<2>
99
100 - Storage controller and enclosure info on separate lines
101
102 =item B<3>
103
104 - OMSA version on separate line
105
106 =back
107
108 The reason that OMSA version is separated from the rest is that
109 finding it requires running a really slow omreport command, when the
110 plugin is run locally via NRPE.
111
112 =item -B, --show-blacklist
113
114 If used together with blacklisting, this option will make the plugin
115 output all blacklistings that are being used. The output will have the
116 correct blacklisting syntax, and will make it easy to maintain control
117 over which blacklistings that are used for each server, as any
118 blacklistings can be viewed from Nagios.
119
120 When blacklisting is not used, this option has no effect.
121
122 =item --omreport I<OMREPORT PATH>
123
124 Specify full path to omreport, if it is not installed in any of the
125 regular places. Usually this option is only needed on Windows, if
126 omreport is not installed on the C: drive.
127
128 =item -i, --info
129
130 Prefix any alerts with the service tag.
131
132 =item -e, --extinfo
133
134 Display a short summary of system information (model and service tag)
135 in case of an alert.
136
137 =item -I, --htmlinfo [I<CODE>]
138
139 Using this option will make the servicetag and model name into
140 clickable HTML links in the output. The model name link will point to
141 the official Dell documentation for that model, while the servicetag
142 link will point to a website containing support info for that
143 particular server.
144
145 This option takes an optional argument, which should be your country
146 code or C<me> for the middle east. If the country code is omitted the
147 servicetag link will still work, but it will not be speficic for your
148 country or area. Example for Germany:
149
150   check_openmanage --htmlinfo de
151
152 If this option is used together with either the I<--extinfo> or
153 I<--info> options, it is particularly useful. Only the most common
154 country codes is supported at this time.
155
156 =item --postmsg I<STRING> or I<FILE>
157
158 User specified post message. Useful for displaying arbitrary or
159 various system information at the end of alerts. The argument is
160 either a string with the message, or a file containing that
161 string. You can control the format with the following interpreted
162 sequences:
163
164 =over 4
165
166 =item B<%m>
167
168 System model
169
170 =item B<%s>
171
172 Service tag
173
174 =item B<%b>
175
176 BIOS version
177
178 =item B<%d>
179
180 BIOS release date
181
182 =item B<%o>
183
184 Operating system name
185
186 =item B<%r>
187
188 Operating system release
189
190 =item B<%p>
191
192 Number of physical drives
193
194 =item B<%l>
195
196 Number of logical drives
197
198 =item B<%n>
199
200 Line break. Will be a regular line break if run from a TTY, else an
201 HTML line break.
202
203 =item B<%%>
204
205 A literal C<%>
206
207 =back
208
209 =item -s, --state
210
211 Prefix each alert with its corresponding service state (i.e. warning,
212 critical etc.). This is useful in case of several alerts from the same
213 monitored system.
214
215 =item -S, --short-state
216
217 Same as the B<--state> option above, except that the state is
218 abbreviated to a single letter (W=warning, C=critical etc.).
219
220 =item --linebreak I<STRING>
221
222 check_openmanage will sometimes report more than one line, e.g. if
223 there are several alerts. If the script has a TTY, it will use regular
224 linebreaks. If not (which is the case with NRPE) it will use HTML
225 linebreaks. Sometimes it can be useful to control what the plugin uses
226 as a line separator, and this option provides that control.
227
228 The argument is the exact string to be used as the line
229 separator. There are two exceptions, i.e. two keywords that translates
230 to the following:
231
232 =over 4
233
234 =item B<REG>
235
236 Regular linebreaks, i.e. "\n".
237
238 =item B<HTML>
239
240 HTML linebreaks, i.e. "<br/>".
241
242 =back
243
244 This is a rather special option that is normally not needed. The
245 default behaviour should be sufficient for most users.
246
247 =item -d, --debug
248
249 Debug output. Will report status on everything, even if status is
250 ok. Blacklisted or unchecked components are ignored (i.e. no output).
251
252 NOTE: This option is intended for diagnostics and debugging purposes
253 only. Do not use this option from within Nagios, i.e. in the Nagios
254 config.
255
256 =item -h, --help
257
258 Display help text.
259
260 =item -V, --version
261
262 Display version info.
263
264 =back
265
266 =head1 SNMP OPTIONS
267
268 =over 4
269
270 =item -H, --hostname I<HOSTNAME>
271
272 The transport address of the destination SNMP device. Using this
273 option triggers SNMP mode.
274
275 =item -P, --protocol I<PROTOCOL>
276
277 SNMP protocol version. This option is optional and expects a digit
278 (i.e.  C<1>, C<2> or C<3>) to define the SNMP version. The default is
279 C<2>, i.e. SNMP version 2c.
280
281 =item -C, --community I<COMMUNITY>
282
283 This option expects a string that is to be used as the SNMP community
284 name when using SNMP version 1 or 2c.  By default the community name
285 is set to C<public> if the option is not present.
286
287 =item --port I<PORT>
288
289 SNMP port of the remote (monitored) system. Defaults to the well-known
290 SNMP port 161.
291
292 =item -6, --ipv6
293
294 This option will cause the plugin to use IPv6. The default is IPv4 if
295 the option is not present.
296
297 =item --tcp
298
299 This option will cause the plugin to use TCP as transport
300 protocol. The default is UDP if the option is not present.
301
302 =item -U, --username I<SECURITYNAME>
303
304 [SNMPv3] The User-based Security Model (USM) used by SNMPv3 requires
305 that a securityName be specified. This option is required when using
306 SNMP version 3, and expects a string 1 to 32 octets in lenght.
307
308 =item --authpassword I<PASSWORD>, --authkey I<KEY>
309
310 [SNMPv3] By default a securityLevel of C<noAuthNoPriv> is assumed.  If
311 the --authpassword option is specified, the securityLevel becomes
312 C<authNoPriv>.  The --authpassword option expects a string which is at
313 least 1 octet in length as argument.
314
315 Optionally, instead of the --authpassword option, the --authkey option
316 can be used so that a plain text password does not have to be
317 specified in a script.  The --authkey option expects a hexadecimal
318 string produced by localizing the password with the
319 authoritativeEngineID for the specific destination device.  The
320 C<snmpkey> utility included with the Net::SNMP distribution can be
321 used to create the hexadecimal string (see L<snmpkey>).
322
323 =item --authprotocol I<ALGORITHM>
324
325 [SNMPv3] Two different hash algorithms are defined by SNMPv3 which can
326 be used by the Security Model for authentication. These algorithms are
327 HMAC-MD5-96 C<MD5> (RFC 1321) and HMAC-SHA-96 C<SHA-1> (NIST FIPS PUB
328 180-1). The default algorithm used by the plugin is HMAC-MD5-96.  This
329 behavior can be changed by using this option. The option expects
330 either the string C<md5> or C<sha> to be passed as argument to modify
331 the hash algorithm.
332
333 =item --privpassword I<PASSWORD>, --privkey I<KEY>
334
335 [SNMPv3] By specifying the options --privkey or --privpassword, the
336 securityLevel associated with the object becomes
337 C<authPriv>. According to SNMPv3, privacy requires the use of
338 authentication. Therefore, if either of these two options are present
339 and the --authkey or --authpassword arguments are missing, the
340 creation of the object fails.  The --privkey and --privpassword
341 options expect the same input as the --authkey and --authpassword
342 options respectively.
343
344 =item --privprotocol I<ALGORITHM>
345
346 [SNMPv3] The User-based Security Model described in RFC 3414 defines a
347 single encryption protocol to be used for privacy.  This protocol,
348 CBC-DES C<DES> (NIST FIPS PUB 46-1), is used by default or if the
349 string C<des> is passed to the --privprotocol option. The Net::SNMP
350 module also supports RFC 3826 which describes the use of
351 CFB128-AES-128 C<AES> (NIST FIPS PUB 197) in the USM.  The AES
352 encryption protocol can be selected by passing C<aes> or C<aes128> to
353 the --privprotocol option.
354
355 One of the following arguments are required: des, aes, aes128, 3des,
356 3desde
357
358 =item --use-get_table
359
360 This option exists as a workaround when using check_openmanage with
361 SNMPv3 on Windows with net-snmp. Using this option will make
362 check_openmanage use the Net::SNMP function get_table() instead of
363 get_entries() while fetching values via SNMP. The latter is faster and
364 is the default.
365
366 =back
367
368 =head1 BLACKLISTING
369
370 =over 4
371
372 =item -b, --blacklist I<STRING> or I<FILE>
373
374 Blacklist missing and/or failed components, if you do not plan to fix
375 them. The parameter is either the blacklist string, or a file (that
376 may or may not exist) containing the string. The blacklist string
377 contains component names with component IDs separated by slash
378 (/). Blacklisted components are left unchecked.
379
380 TIP: Use the option C<-d> (or C<--debug>) to get the blacklist ID for
381 devices. The ID is listed in a separate column in the debug output.
382
383 NOTE: If blacklisting is in effect, the global health of the system is
384 not checked.
385
386 =over 9
387
388 =item B<Syntax:>
389
390 component1=id1[,id2,...]/component2=id1[,id2,...]/...
391
392 The ID part can also be C<all>, in which all components of that type
393 is blacklisted.
394
395 =item B<Example:>
396
397 check_openmanage -b ps=0/fan=3,5/pdisk=1:0:0:1/ctrl_driver=all
398
399 =back
400
401 In the example we blacklist powersupply 0, fans 3 and 5, physical disk
402 1:0:0:1, and warnings about out-of-date drivers for all
403 controllers. Legal component names include:
404
405 =over 8
406
407 =item B<ctrl>
408
409 Storage controller. Note that if a controller is blacklisted, all
410 components on that controller (such as physical and logical drives)
411 are blacklisted as well.
412
413 =item B<ctrl_fw>
414
415 Suppress the special warning message about old controller
416 firmware. Use this if you can not or will not upgrade the firmware.
417
418 =item B<ctrl_driver>
419
420 Suppress the special warning message about old controller driver.
421 Particularly useful on systems where you can not upgrade the driver.
422
423 =item B<ctrl_stdr>
424
425 Suppress the special warning message about old Storport driver on
426 Windows.
427
428 =item B<ctrl_pdisk>
429
430 This blacklisting keyword exists as a possible workaround for physical
431 drives with bad firmware which makes Openmanage choke. It takes the
432 controller number as argument. Use this option to blacklist all
433 physical drives on a specific controller. This blacklisting keyword is
434 only available in local mode, i.e. not with SNMP.
435
436 =item B<pdisk>
437
438 Physical disk.
439
440 =item B<vdisk>
441
442 Logical drive (virtual disk)
443
444 =item B<bat>
445
446 Controller cache battery
447
448 =item B<bat_charge>
449
450 Ignore warnings related to the controller cache battery charging
451 cycle, which happens approximately every 40 days on Dell servers. Note
452 that using this blacklist keyword makes check_openmanage ignore
453 non-critical cache battery errors.
454
455 =item B<conn>
456
457 Connector (channel)
458
459 =item B<encl>
460
461 Enclosure
462
463 =item B<encl_fan>
464
465 Enclosure fan
466
467 =item B<encl_ps>
468
469 Enclosure power supply
470
471 =item B<encl_temp>
472
473 Enclosure temperature probe
474
475 =item B<encl_emm>
476
477 Enclosure management module (EMM)
478
479 =item B<dimm>
480
481 Memory module
482
483 =item B<fan>
484
485 Fan
486
487 =item B<ps>
488
489 Powersupply
490
491 =item B<temp>
492
493 Temperature sensor
494
495 =item B<cpu>
496
497 Processor (CPU)
498
499 =item B<volt>
500
501 Voltage probe
502
503 =item B<bp>
504
505 System battery
506
507 =item B<amp>
508
509 Amperage probe (power consumption monitoring)
510
511 =item B<intr>
512
513 Intrusion sensor
514
515 =item B<sd>
516
517 SD card
518
519 =back
520
521 =back
522
523 =head1 CHECK CONTROL
524
525 =over 4
526
527 =item --no-storage
528
529 Turn off storage checking. This is an alias for C<--check storage=0>.
530
531 =item --only I<KEYWORD>
532
533 This option can be specifed once and expects a keyword. The different
534 keywords and the behaviour of check_openmanage is described below.
535
536 =over 4
537
538 =item B<critical>
539
540 Print only critical alerts. With this option any warning alerts are
541 suppressed.
542
543 =item B<warning>
544
545 Print only warning alerts. With this option any critical alerts are
546 suppressed.
547
548 =item B<chassis>
549
550 Check all chassis components and nothing else.
551
552 =item B<storage>
553
554 Only check storage
555
556 =item B<memory>
557
558 Only check memory modules
559
560 =item B<fans>
561
562 Only check fans
563
564 =item B<power>
565
566 Only check power supplies
567
568 =item B<temp>
569
570 Only check temperatures
571
572 =item B<cpu>
573
574 Only check processors
575
576 =item B<voltage>
577
578 Only check voltage probes
579
580 =item B<batteries>
581
582 Only check batteries
583
584 =item B<amperage>
585
586 Only check power usage
587
588 =item B<intrusion>
589
590 Only check chassis intrusion
591
592 =item B<sdcard>
593
594 Only check SD cards
595
596 =item B<esmhealth>
597
598 Only check ESM log overall health, i.e. fill grade
599
600 =item B<esmlog>
601
602 Only check the event log (ESM) content
603
604 =item B<alertlog>
605
606 Only check the alert log content
607
608 =back
609
610 =item --check I<STRING> or I<FILE>
611
612 This parameter allows you to adjust which components that should be
613 checked at all. This is a rougher approach than blacklisting, which
614 require that you specify component id or index. The parameter should
615 be either a string containing the adjustments, or a file containing
616 the string. No errors are raised if the file does not exist.
617
618 Note: This option is ignored with alternate basenames.
619
620 =over 9
621
622 =item B<Example:>
623
624 check_openmanage --check storage=0,intrusion=1
625
626 =back
627
628 Legal values are described below, along with the default value.
629
630 =over 4
631
632 =item B<storage>
633
634 Check storage subsystem (controllers, disks etc.). Default: ON
635
636 =item B<memory>
637
638 Check memory (dimms). Default: ON
639
640 =item B<fans>
641
642 Check chassis fans. Default: ON
643
644 =item B<power>
645
646 Check power supplies. Default: ON
647
648 =item B<temp>
649
650 Check temperature sensors. Default: ON
651
652 =item B<cpu>
653
654 Check CPUs. Default: ON
655
656 =item B<voltage>
657
658 Check voltage sensors. Default: ON
659
660 =item B<batteries>
661
662 Check system batteries. Default: ON
663
664 =item B<amperage>
665
666 Check amperage probes. Default: ON
667
668 =item B<intrusion>
669
670 Check chassis intrusion. Default: ON
671
672 =item B<sdcard>
673
674 Check SD cards. Default: ON
675
676 =item B<esmhealth>
677
678 Check the ESM log health, i.e. fill grade. Default: ON
679
680 =item B<esmlog>
681
682 Check the ESM log content. Default: OFF
683
684 =item B<alertlog>
685
686 Check the alert log content. Default: OFF
687
688 =back
689
690 =back
691
692 =head1 DIAGNOSTICS
693
694 The option C<--debug> (or C<-d>) can be specified to display all
695 monitored components.
696
697 =head1 DEPENDENCIES
698
699 If SNMP is requested, the perl module Net::SNMP is
700 required. Otherwise, only a regular perl distribution is required to
701 run the script. On the target (monitored) system, Dell Openmanage
702 Server Administrator (OMSA) must be installed and running.
703
704 =head1 EXIT STATUS
705
706 If no errors are discovered, a value of 0 (OK) is returned. An exit
707 value of 1 (WARNING) signifies one or more non-critical errors, while
708 2 (CRITICAL) signifies one or more critical errors.
709
710 The exit value 3 (UNKNOWN) is reserved for errors within the script,
711 or errors getting values from Dell OMSA.
712
713 =head1 AUTHOR
714
715 Written by Trond H. Amundsen <t.h.amundsen@usit.uio.no>
716
717 =head1 BUGS AND LIMITATIONS
718
719 Storage info is not collected or checked on very old PowerEdge models
720 and/or old OMSA versions, due to limitations in OMSA. The overall
721 support on those models/versions by this plugin is not well tested.
722
723 =head1 INCOMPATIBILITIES
724
725 The plugin should work with the Nagios embedded perl interpreter
726 (ePN). However, this is not thoroughly tested.
727
728 =head1 REPORTING BUGS
729
730 Report bugs to <t.h.amundsen@usit.uio.no>
731
732 =head1 LICENSE AND COPYRIGHT
733
734 This program is free software: you can redistribute it and/or modify
735 it under the terms of the GNU General Public License as published by
736 the Free Software Foundation, either version 3 of the License, or (at
737 your option) any later version.
738
739 This program is distributed in the hope that it will be useful, but
740 WITHOUT ANY WARRANTY; without even the implied warranty of
741 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
742 General Public License for more details.
743
744 You should have received a copy of the GNU General Public License
745 along with this program.  If not, see L<http://www.gnu.org/licenses/>.
746
747 =head1 SEE ALSO
748
749 L<http://folk.uio.no/trondham/software/check_openmanage.html>
750
751 =cut