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