diff options
Diffstat (limited to 'lib/Nagios/Plugin.pm')
-rw-r--r-- | lib/Nagios/Plugin.pm | 123 |
1 files changed, 69 insertions, 54 deletions
diff --git a/lib/Nagios/Plugin.pm b/lib/Nagios/Plugin.pm index e6c0c04..5debdbc 100644 --- a/lib/Nagios/Plugin.pm +++ b/lib/Nagios/Plugin.pm | |||
@@ -109,7 +109,8 @@ __END__ | |||
109 | 109 | ||
110 | =head1 NAME | 110 | =head1 NAME |
111 | 111 | ||
112 | Nagios::Plugin - a family of perl modules to streamline writing Nagios plugins | 112 | Nagios::Plugin - a family of perl modules to streamline writing Nagios |
113 | plugins | ||
113 | 114 | ||
114 | 115 | ||
115 | =head1 SYNOPSIS | 116 | =head1 SYNOPSIS |
@@ -122,19 +123,24 @@ Nagios::Plugin - a family of perl modules to streamline writing Nagios plugins | |||
122 | $np = Nagios::Plugin->new; # OR | 123 | $np = Nagios::Plugin->new; # OR |
123 | $np = Nagios::Plugin->new( shortname => "PAGESIZE" ); | 124 | $np = Nagios::Plugin->new( shortname => "PAGESIZE" ); |
124 | 125 | ||
125 | # Exit methods - nagios_exit( CODE, MESSAGE ), nagios_die( MESSAGE, [CODE]) | 126 | # Exit methods - nagios_exit( CODE, MESSAGE ), |
127 | # nagios_die( MESSAGE, [CODE]) | ||
126 | $page = retrieve_page($page1) | 128 | $page = retrieve_page($page1) |
127 | or $np->nagios_exit( UNKNOWN, "Could not retrieve page" ); | 129 | or $np->nagios_exit( UNKNOWN, "Could not retrieve page" ); |
128 | # Return code: 3; output: PAGESIZE UNKNOWN - Could not retrieve page | 130 | # Return code: 3; |
131 | # output: PAGESIZE UNKNOWN - Could not retrieve page | ||
129 | test_page($page) | 132 | test_page($page) |
130 | or $np->nagios_exit( CRITICAL, "Bad page found" ); | 133 | or $np->nagios_exit( CRITICAL, "Bad page found" ); |
131 | 134 | ||
132 | # nagios_die() is just like nagios_exit(), but return code defaults to UNKNOWN | 135 | # nagios_die() is just like nagios_exit(), but return code defaults |
136 | # to UNKNOWN | ||
133 | $page = retrieve_page($page2) | 137 | $page = retrieve_page($page2) |
134 | or $np->nagios_die( "Could not retrieve page" ); | 138 | or $np->nagios_die( "Could not retrieve page" ); |
135 | # Return code: 3; output: PAGESIZE UNKNOWN - Could not retrieve page | 139 | # Return code: 3; |
140 | # output: PAGESIZE UNKNOWN - Could not retrieve page | ||
136 | 141 | ||
137 | # Threshold methods (NOT YET IMPLEMENTED - use Nagios::Plugin::Threshold for now) | 142 | # Threshold methods (NOT YET IMPLEMENTED - use |
143 | # Nagios::Plugin::Threshold for now) | ||
138 | $code = $np->check_threshold( | 144 | $code = $np->check_threshold( |
139 | check => $value, | 145 | check => $value, |
140 | warning => $warning_threshold, | 146 | warning => $warning_threshold, |
@@ -153,8 +159,9 @@ Nagios::Plugin - a family of perl modules to streamline writing Nagios plugins | |||
153 | } | 159 | } |
154 | ($code, $message) = $np->check_message(); | 160 | ($code, $message) = $np->check_message(); |
155 | nagios_exit( $code, $message ); | 161 | nagios_exit( $code, $message ); |
156 | # If any items in collection matched m/Error/, returns CRITICAL and the joined | 162 | # If any items in collection matched m/Error/, returns CRITICAL and |
157 | # set of Error messages; otherwise returns OK and the joined set of ok messages | 163 | # the joined set of Error messages; otherwise returns OK and the |
164 | # joined set of ok messages | ||
158 | 165 | ||
159 | # Perfdata methods | 166 | # Perfdata methods |
160 | $np->add_perfdata( | 167 | $np->add_perfdata( |
@@ -165,23 +172,26 @@ Nagios::Plugin - a family of perl modules to streamline writing Nagios plugins | |||
165 | ); | 172 | ); |
166 | $np->add_perfdata( label => "time", ... ); | 173 | $np->add_perfdata( label => "time", ... ); |
167 | $np->nagios_exit( OK, "page size at http://... was ${value}kB" ); | 174 | $np->nagios_exit( OK, "page size at http://... was ${value}kB" ); |
168 | # Return code: 0; output: | 175 | # Return code: 0; |
169 | # PAGESIZE OK - page size at http://... was 36kB | size=36kB;10:25;25: time=... | 176 | # output: PAGESIZE OK - page size at http://... was 36kB \ |
177 | # | size=36kB;10:25;25: time=... | ||
170 | 178 | ||
171 | # Option handling methods (NOT YET IMPLEMENTED - use Nagios::Plugin::Getopt for now) | 179 | # Option handling methods (NOT YET IMPLEMENTED - use |
180 | # Nagios::Plugin::Getopt for now) | ||
172 | 181 | ||
173 | 182 | ||
174 | 183 | ||
175 | =head1 DESCRIPTION | 184 | =head1 DESCRIPTION |
176 | 185 | ||
177 | Nagios::Plugin and its associated Nagios::Plugin::* modules are a family of perl modules | 186 | Nagios::Plugin and its associated Nagios::Plugin::* modules are a family of |
178 | to streamline writing Nagios plugins. The main end user modules are Nagios::Plugin, | 187 | perl modules to streamline writing Nagios plugins. The main end user modules |
179 | providing an object-oriented interface to the entire Nagios::Plugin::* collection, and | 188 | are Nagios::Plugin, providing an object-oriented interface to the entire |
180 | Nagios::Plugin::Functions, providing a simpler functional interface to a useful subset of | 189 | Nagios::Plugin::* collection, and Nagios::Plugin::Functions, providing a |
181 | the available functionality. | 190 | simpler functional interface to a useful subset of the available |
191 | functionality. | ||
182 | 192 | ||
183 | The purpose of the collection is to make it as simple as possible for developers to | 193 | The purpose of the collection is to make it as simple as possible for |
184 | create plugins that conform the Nagios Plugin guidelines | 194 | developers to create plugins that conform the Nagios Plugin guidelines |
185 | (http://nagiosplug.sourceforge.net/developer-guidelines.html). | 195 | (http://nagiosplug.sourceforge.net/developer-guidelines.html). |
186 | 196 | ||
187 | 197 | ||
@@ -201,14 +211,14 @@ The following variables are also exported on request: | |||
201 | 211 | ||
202 | =item %ERRORS | 212 | =item %ERRORS |
203 | 213 | ||
204 | A hash mapping error strings ("CRITICAL", "UNKNOWN", etc.) to the corresponding | 214 | A hash mapping error strings ("CRITICAL", "UNKNOWN", etc.) to the |
205 | status code. | 215 | corresponding status code. |
206 | 216 | ||
207 | =item %STATUS_TEXT | 217 | =item %STATUS_TEXT |
208 | 218 | ||
209 | A hash mapping status code constants (OK, WARNING, CRITICAL, etc.) to the | 219 | A hash mapping status code constants (OK, WARNING, CRITICAL, etc.) to the |
210 | corresponding error string ("OK", "WARNING, "CRITICAL", etc.) i.e. the reverse | 220 | corresponding error string ("OK", "WARNING, "CRITICAL", etc.) i.e. the |
211 | of %ERRORS. | 221 | reverse of %ERRORS. |
212 | 222 | ||
213 | =back | 223 | =back |
214 | 224 | ||
@@ -219,14 +229,15 @@ of %ERRORS. | |||
219 | 229 | ||
220 | Nagios::Plugin->new( shortname => 'PAGESIZE' ); | 230 | Nagios::Plugin->new( shortname => 'PAGESIZE' ); |
221 | 231 | ||
222 | Instantiates a new Nagios::Plugin object. Accepts the following named arguments: | 232 | Instantiates a new Nagios::Plugin object. Accepts the following named |
233 | arguments: | ||
223 | 234 | ||
224 | =over 4 | 235 | =over 4 |
225 | 236 | ||
226 | =item shortname | 237 | =item shortname |
227 | 238 | ||
228 | The 'shortname' for this plugin, used as the first token in the plugin output | 239 | The 'shortname' for this plugin, used as the first token in the plugin |
229 | by the various exit methods. Default: uc basename $0. | 240 | output by the various exit methods. Default: uc basename $0. |
230 | 241 | ||
231 | =back | 242 | =back |
232 | 243 | ||
@@ -268,32 +279,33 @@ NOT YET IMPLEMENTED - use Nagios::Plugin::Threshold directly for now. | |||
268 | EXPERIMENTAL AND SUBJECT TO CHANGE | 279 | EXPERIMENTAL AND SUBJECT TO CHANGE |
269 | 280 | ||
270 | add_messages and check_messages are higher-level convenience methods to add | 281 | add_messages and check_messages are higher-level convenience methods to add |
271 | and then check a set of messages, returning an appropriate return code and/or | 282 | and then check a set of messages, returning an appropriate return code |
272 | result message. | 283 | and/or result message. |
273 | 284 | ||
274 | =over 4 | 285 | =over 4 |
275 | 286 | ||
276 | =item add_message( <CODE>, $message ) | 287 | =item add_message( <CODE>, $message ) |
277 | 288 | ||
278 | Add a message with CODE status to the object. May be called multiple times. The messages | 289 | Add a message with CODE status to the object. May be called multiple times. |
279 | added are checked by check_messages, following. | 290 | The messages added are checked by check_messages, following. |
280 | 291 | ||
281 | Only CRITICAL, WARNING, and OK are accepted as valid codes. | 292 | Only CRITICAL, WARNING, and OK are accepted as valid codes. |
282 | 293 | ||
283 | 294 | ||
284 | =item check_messages() | 295 | =item check_messages() |
285 | 296 | ||
286 | Check the current set of messages and return an appropriate nagios return code and/or a | 297 | Check the current set of messages and return an appropriate nagios return |
287 | result message. In scalar context, returns only a return code; in list context returns | 298 | code and/or a result message. In scalar context, returns only a return |
288 | both a return code and an output message, suitable for passing directly to nagios_exit() | 299 | code; in list context returns both a return code and an output message, |
289 | e.g. | 300 | suitable for passing directly to nagios_exit() e.g. |
290 | 301 | ||
291 | $code = $np->check_messages; | 302 | $code = $np->check_messages; |
292 | ($code, $message) = $np->check_messages; | 303 | ($code, $message) = $np->check_messages; |
293 | 304 | ||
294 | check_messages returns CRITICAL if any critical messages are found, WARNING if any | 305 | check_messages returns CRITICAL if any critical messages are found, WARNING |
295 | warning messages are found, and OK otherwise. The message returned in list context defaults | 306 | if any warning messages are found, and OK otherwise. The message returned |
296 | to the joined set of error messages; this may be customised using the arguments below. | 307 | in list context defaults to the joined set of error messages; this may be |
308 | customised using the arguments below. | ||
297 | 309 | ||
298 | check_messages accepts the following named arguments (none are required): | 310 | check_messages accepts the following named arguments (none are required): |
299 | 311 | ||
@@ -345,12 +357,14 @@ Additional ok messages to supplement any passed in via add_message(). | |||
345 | 357 | ||
346 | =item add_perfdata( label => "size", value => $value, uom => "kB", threshold => $threshold ) | 358 | =item add_perfdata( label => "size", value => $value, uom => "kB", threshold => $threshold ) |
347 | 359 | ||
348 | Add a set of performance data to the object. May be called multiple times. The performance | 360 | Add a set of performance data to the object. May be called multiple times. |
349 | data is included in the standard plugin output messages by the various exit methods. | 361 | The performance data is included in the standard plugin output messages by |
362 | the various exit methods. | ||
350 | 363 | ||
351 | See the Nagios::Plugin::Performance documentation for more information on performance data | 364 | See the Nagios::Plugin::Performance documentation for more information on |
352 | and the various field definitions, as well as the relevant section of the Nagios Plugin | 365 | performance data and the various field definitions, as well as the relevant |
353 | guidelines (http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN202). | 366 | section of the Nagios Plugin guidelines |
367 | (http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN202). | ||
354 | 368 | ||
355 | =back | 369 | =back |
356 | 370 | ||
@@ -364,15 +378,16 @@ NOT YET IMPLEMENTED - use Nagios::Plugin::Getopt directly for now. | |||
364 | 378 | ||
365 | "Enough talk! Show me some examples!" | 379 | "Enough talk! Show me some examples!" |
366 | 380 | ||
367 | See the file 'check_stuff.pl' in the 't' directory for a complete working example of a | 381 | See the file 'check_stuff.pl' in the 't' directory for a complete working |
368 | plugin script. | 382 | example of a plugin script. |
369 | 383 | ||
370 | 384 | ||
371 | =head1 VERSIONING | 385 | =head1 VERSIONING |
372 | 386 | ||
373 | The Nagios::Plugin::* modules are currently experimental and so the interfaces may | 387 | The Nagios::Plugin::* modules are currently experimental and so the |
374 | change up until Nagios::Plugin hits version 1.0, although every attempt will be made to | 388 | interfaces may change up until Nagios::Plugin hits version 1.0, although |
375 | keep them as backwards compatible as possible. | 389 | every attempt will be made to keep them as backwards compatible as |
390 | possible. | ||
376 | 391 | ||
377 | 392 | ||
378 | =head1 SEE ALSO | 393 | =head1 SEE ALSO |
@@ -380,8 +395,9 @@ keep them as backwards compatible as possible. | |||
380 | See Nagios::Plugin::Functions for a simple functional interface to a subset | 395 | See Nagios::Plugin::Functions for a simple functional interface to a subset |
381 | of the available Nagios::Plugin functionality. | 396 | of the available Nagios::Plugin functionality. |
382 | 397 | ||
383 | See also Nagios::Plugin::Getopt, Nagios::Plugin::Range, Nagios::Plugin::Performance, | 398 | See also Nagios::Plugin::Getopt, Nagios::Plugin::Range, |
384 | Nagios::Plugin::Range, and Nagios::Plugin::Threshold. | 399 | Nagios::Plugin::Performance, Nagios::Plugin::Range, and |
400 | Nagios::Plugin::Threshold. | ||
385 | 401 | ||
386 | The Nagios Plugin project page is at http://nagiosplug.sourceforge.net. | 402 | The Nagios Plugin project page is at http://nagiosplug.sourceforge.net. |
387 | 403 | ||
@@ -394,21 +410,20 @@ nagiosplug-devel@lists.sourceforge.net. | |||
394 | 410 | ||
395 | =head1 AUTHOR | 411 | =head1 AUTHOR |
396 | 412 | ||
397 | Maintained by the Nagios Plugin development team - http://nagiosplug.sourceforge.net. | 413 | Maintained by the Nagios Plugin development team - |
414 | http://nagiosplug.sourceforge.net. | ||
398 | 415 | ||
399 | Originally by Ton Voon, E<lt>ton.voon@altinity.comE<gt>. | 416 | Originally by Ton Voon, E<lt>ton.voon@altinity.comE<gt>. |
400 | 417 | ||
401 | Nathan Vonnahme added extra tests and subsequent fixes. | 418 | Nathan Vonnahme added extra tests and subsequent fixes. |
402 | 419 | ||
403 | 420 | ||
404 | |||
405 | =head1 COPYRIGHT AND LICENSE | 421 | =head1 COPYRIGHT AND LICENSE |
406 | 422 | ||
407 | Copyright (C) 2006 by Nagios Plugin Development Team | 423 | Copyright (C) 2006 by Nagios Plugin Development Team |
408 | 424 | ||
409 | This library is free software; you can redistribute it and/or modify | 425 | This library is free software; you can redistribute it and/or modify it |
410 | it under the same terms as Perl itself, either Perl version 5.8.4 or, | 426 | under the same terms as Perl itself, either Perl version 5.8.4 or, at your |
411 | at your option, any later version of Perl 5 you may have available. | 427 | option, any later version of Perl 5 you may have available. |
412 | |||
413 | 428 | ||
414 | =cut | 429 | =cut |