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