X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd-exec.pod;h=81b3a2ecc07ecb11302b7ede4d2e26f87e72f0d8;hb=be99a844a40d7037a910d37a894988b807631a6e;hp=32c3863d4b3e69082674c82f21547857ffbcd74c;hpb=2e8ad93a2f3856644a74fb508d10a9e8e4704293;p=collectd.git diff --git a/src/collectd-exec.pod b/src/collectd-exec.pod index 32c3863d..81b3a2ec 100644 --- a/src/collectd-exec.pod +++ b/src/collectd-exec.pod @@ -11,22 +11,20 @@ collectd-exec - Documentation of collectd's C Exec "myuser:mygroup" "myprog" Exec "otheruser" "/path/to/another/binary" "arg0" "arg1" 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 either to receive values, to dispatch -notifications to the outside world or to be able to use Nagios plugins. The -syntax of the configuration is explained in L but summarized -in the above synopsis. +The C forks of an executable either to receive values or to +dispatch notifications to the outside world. The syntax of the configuration is +explained in L but summarized in the above synopsis. If you want/need better performance or more functionality you should take a long look at the C, L. =head1 EXECUTABLE TYPES -There are currently three types of executables that can be executed by the +There are currently two types of executables that can be executed by the C: =over 4 @@ -57,17 +55,6 @@ 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 @@ -96,12 +83,13 @@ plugin within collectd. I identifies the type and number of values data-sets is available in the B file. See L for a description of the format of this file. -The I is an optional list of I, where each option if a +The I is an optional list of I, where each option is a key-value-pair. A list of currently understood options can be found below, all -other options will be ignored. +other options will be ignored. Values that contain spaces must be quoted with +double quotes. I is a colon-separated list of the time and the values, each either -an integer if the data-source is a counter, of a double if the data-source if +an integer if the data-source is a counter, or a double if the data-source is of type "gauge". You can submit an undefined gauge-value by using B. When submitting B to a counter the behavior is undefined. The time is given as epoch (i.Ee. standard UNIX time). @@ -152,10 +140,9 @@ Valid options are: =item BI (B) Sets the message of the notification. This is the message that will be made -accessible to the user, so it should contain some useful information. This -option must be the last option because the rest of the line will be its value, -even if there are spaces and equal-signs following it! This option is -mandatory. +accessible to the user, so it should contain some useful information. As with +all options: If the message includes spaces, it must be quoted with double +quotes. This option is mandatory. =item B|B|B (B) @@ -184,11 +171,13 @@ table. All the options are optional, but B without B or B without B doesn't make much sense and should be avoided. -Please note that this is the same format as used in the B, see -L. +=back =back +Please note that this is the same format as used in the B, see +L. + When collectd exits it sends a B to all still running child-processes upon which they have to quit. @@ -198,17 +187,19 @@ 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. +HTTP: At first there is a "header" with one line per field. Every line consists +of a field name, ended by a colon, and the associated value until end-of-line. +The "header" is ended by two newlines immediately following another, +i.Ee. an empty line. The rest, basically the "body", is the message of +the notification. 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 - + \n + 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. @@ -225,15 +216,54 @@ The time in epoch, i.Ee. as seconds since 1970-01-01 00:00:00 UTC. =item B -Name of the host concerned. +=item B + +=item B -=item B +=item B -Message of the notification. This message should be made accessible to the -user somehow. +=item B + +Identification of the performance data this notification is associated with. +All of these fields are optional because notifications do not B to be +associated with a certain value. =back +=head1 ENVIRONMENT + +The following environment variables are set by the plugin before calling +I: + +=over 4 + +=item COLLECTD_INTERVAL + +Value of the global interval setting. + +=item COLLECTD_HOSTNAME + +Hostname used by I to dispatch local values. + +=back + +=head1 USING NAGIOS PLUGINS + +Though the interface is far from perfect, there are tons of plugins for Nagios. +You can use these plugins with collectd by using a simple transition layer, +C, which is shipped with the collectd distribution in the +C directory. It is a simple Perl script that comes with embedded +documentation. To see it, run the following command: + + perldoc exec-nagios.px + +This script expects a configuration file, C. You can find an +example in the C directory, too. + +Even a simple mechanism to submit "performance data" to collectd is +implemented. If you need a more sophisticated setup, please rewrite the plugin +to make use of collectd's more powerful interface. + =head1 CAVEATS =over 4