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