From aa05b885e05fefe8439244601841f464619284c5 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Mon, 21 Jan 2008 18:16:55 +0100 Subject: [PATCH] collectd-exec(5): Documented the changes due to notifications and the Nagios plugin support. --- src/collectd-exec.pod | 105 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 12 deletions(-) diff --git a/src/collectd-exec.pod b/src/collectd-exec.pod index 29ff45bd..1d754a48 100644 --- a/src/collectd-exec.pod +++ b/src/collectd-exec.pod @@ -10,20 +10,65 @@ collectd-exec - Documentation of collectd's C Exec "myuser:mygroup" "myprog" Exec "otheruser" "/path/to/another/binary" + NotificationExec "user" "/usr/lib/collectd/exec/handle_notification" + NagiosExec "nagios:nagios" "/usr/lib/nagios/plugins/check_something" =head1 DESCRIPTION -The C forks of an executable and reads back values that it writes -to C. The executable is forked in a fashion similar to L: It is -forked once and not again until it exits. If it exited, it will be forked again -after at most I seconds. It is perfectly legal for the executable to -run for a long time and continuously write values to C. +The C forks of an executable either to receive values, to dispatch +notifications to the outside world or to be able to use Nagios plugins. If you want/need better performance or more functionality you should take a long look at the C, L. -=head1 DATA FORMAT +=head1 EXECUTABLE TYPES + +There are currently three types of executables that can be executed by the +C: + +=over 4 + +=item C + +These programs are forked and values that it writes to C are read back. +The executable is forked in a fashion similar to L: It is forked once and +not again until it exits. If it exited, it will be forked again after at most +I seconds. It is perfectly legal for the executable to run for a long +time and continuously write values to C. + +See L below for a description of the output format expected +from these programs. + +B If the executable only writes one value and then exits I will be +executed every I seconds. If I is short (the default is 10 +seconds) this may result in serious system load. + +=item C + +The program is forked once for each notification that is handled by the daemon. +The notification is passed to the program on C in a fashion similar to +HTTP-headers. In contrast to programs specified with C the execution of +this program is not serialized, so that several instances of this program may +run at once if multiple notifications are received. + +See L below for a description of the data passed to +these programs. + +=item C + +The executable is treated as a Nagios plugin. That means that the first line +printed to C by this program is used as the text of a notification and +the severity of the notification depends on the exit status of the executable +only. + +For information on how to write Nagios plugins please refer to the Nagios +documentation. If a plugin works with Nagios but not with collectd please +complain on the collectd mailing list instead. + +=back + +=head1 EXEC DATA FORMAT The forked executable is expected to print values to C. The expected format is as follows: @@ -84,20 +129,56 @@ Since examples usually let one understand a lot better, here are some: When collectd exits it sends a B to all still running child-processes upon which they have to quit. -=head1 CAVEATS +=head1 NOTIFICATION DATA FORMAT + +The notification executables receive values rather than providing them. In +fact, after the program is started C is connected to C. + +The data is passed to the executables over C in a format very similar to +HTTP-headers: There is one line per field. Every line consists of a field name, +ended by a colon, and the associated value until end-of-line. The input is +ended by two newlines immediately following another. + +The following is an example notification passed to a program: + + Severity: FAILURE + Time: 1200928930 + Host: myhost.mydomain.org + Message: This is a test notification to demonstrate the format + + +The following header files are currently used. Please note, however, that you +should ignore unknown header files to be as forward-compatible as possible. =over 4 -=item +=item B + +Severity of the notification. May either be B, B, or B. + +=item B