Merge branch 'collectd-4.0' into collectd-4.1
[collectd.git] / src / collectd.conf.pod
index 2ddc5cb..db87f9c 100644 (file)
@@ -25,10 +25,10 @@ controls which plugins to load. These plugins ultimately define collectd's
 behavior.
 
 The syntax of this config file is similar to the config file of the famos
-B<Apache Webserver>. Each line containes either a key-value-pair or a
+B<Apache Webserver>. Each line contains either a key-value-pair or a
 section-start or -end. Empty lines and everything after the hash-symbol `#' is
 ignored. Values are either string, enclosed in double-quotes,
-(floating-point-)numbers or a boolean extression, i.E<nbsp>e. either B<true> or
+(floating-point-)numbers or a boolean expression, i.E<nbsp>e. either B<true> or
 B<false>. String containing of only alphanumeric characters and underscores do
 not need to be quoted.
 
@@ -45,13 +45,21 @@ directory for the daemon.
 =item B<LoadPlugin> I<Plugin>
 
 Loads the plugin I<Plugin>. There must be at least one such line or B<collectd>
-will be mostly useless. The names of the plugins are listed in L<collectd(1)>.
+will be mostly useless.
 
 =item B<PIDFile> I<File>
 
 Sets where to write the PID file to. This file is overwritten when it exists
-and deleted when the program ist stopped. Some init-scripts might override this
-setting using the B<-P> commandline option.
+and deleted when the program is stopped. Some init-scripts might override this
+setting using the B<-P> command-line option.
+
+=item B<PluginDir> I<Directory>
+
+Path to the plugins (shared objects) of collectd.
+
+=item B<TypesDB> I<File>
+
+Set the file that contains the data-set descriptions.
 
 =item B<Interval> I<Seconds>
 
@@ -70,8 +78,16 @@ a value higher than the number of plugins you've loaded is totally useless.
 
 =head1 PLUGIN OPTIONS
 
-Some Plugins may register own options. These options must be inclosed in a
-C<Plugin>-Section. Which options exist depends on the plugin used:
+Some plugins may register own options. These options must be enclosed in a
+C<Plugin>-Section. Which options exist depends on the plugin used. Some plugins
+require external configuration, too. The C<apache plugin>, for example,
+required C<mod_status> to be configured in the webserver you're going to
+collect data from. These plugins are listed below as well, even if they don't
+require any configuration within collectd's configfile.
+
+A list of all plugins and a short summary for each plugin can be found in the
+F<README> file shipped with the sourcecode and hopefully binary packets as
+well.
 
 =head2 Plugin C<apache>
 
@@ -87,7 +103,7 @@ the following snipped to base your Apache config upon:
     </Location>
   </IfModule>
 
-Since it's C<mod_status> module is very similar to Apache's, B<lighttpd> is
+Since its C<mod_status> module is very similar to Apache's, B<lighttpd> is
 also supported. It introduces a new field, called C<BusyServers>, to count the
 number of currently connected clients. This field is also supported.
 
@@ -112,7 +128,7 @@ Optional password needed for authentication.
 =item B<CACert> I<File>
 
 File that holds one or more SSL certificates. If you want to use HTTPS you will
-possibly need this option. What CA certificates come bundeled with C<libcurl>
+possibly need this option. What CA certificates come bundled with C<libcurl>
 and are checked by default depends on the distribution you use.
 
 =back
@@ -133,13 +149,21 @@ TCP-Port to connect to. Defaults to B<3551>.
 
 =back
 
+=head2 Plugin C<cpufreq>
+
+This plugin doesn't have any options. It reads
+F</sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq> (for the first CPU
+installed) to get the current CPU frequency. If this file does not exist make
+sure B<cpufreqd> (L<http://cpufreqd.sourceforge.net/>) or a similar tool is
+installed and an "cpu governor" (that's a kernel module) is loaded.
+
 =head2 Plugin C<csv>
 
 =over 4
 
 =item B<DataDir> I<Directory>
 
-Set the directory to store RRD-files under. Per default RRD-files are generated
+Set the directory to store CSV-files under. Per default CSV-files are generated
 beneath the daemon's working directory, i.E<nbsp>e. the B<BaseDir>.
 
 =back
@@ -164,7 +188,7 @@ Select partitions based on the filesystem type.
 
 Invert the selection: If set to true, all partitions B<except> the ones that
 match any one of the criteria are collected. By default only selected
-partitions are collected if a selection is made. If no selection is conifured
+partitions are collected if a selection is made. If no selection is configured
 at all, B<all> partitions are selected.
 
 =back
@@ -190,6 +214,10 @@ Ignore packets that originate from this address.
 
 =over 4
 
+=item B<SocketFile> I<Path>
+
+Sets the socket-file which is to be created.
+
 =item B<SocketGroup> I<Group>
 
 If running as root change the group of the UNIX-socket after it has been 
@@ -212,20 +240,38 @@ at most B<16384> to prevent typos and dumb mistakes.
 
 =head2 Plugin C<exec>
 
-Please make sure to read L<collectd/"SPECIAL PLUGINS"> before using this
-plugin. It containes valueable information on when the executable is executed
-and the output that is expected from it.
+Please make sure to read L<collectd-exec(5)> before using this plugin. It
+contains valuable information on when the executable is executed and the
+output that is expected from it.
 
 =over 4
 
-=item B<Exec> I<User> I<Executable>
+=item B<Exec> I<User>[:[I<Group>]] I<Executable>
 
-Execute the executable I<Executable> as user I<User>.
+Execute the executable I<Executable> as user I<User>. If the user name is
+followed by a colon and a group name, the effective group is set to that group.
+The real group and saved-set group will be set to the default group of that
+user. If no group is given the effective group ID will be the same as the real
+group ID.
+
+Please note that in order to change the user and/or group the daemon needs
+superuser privileges. If the daemon is run as an unprivileged user you must
+specify the same user/group here. If the daemon is run with superuser
+privileges, you must supply a non-root user here.
 
 =back
 
 =head2 Plugin C<hddtemp>
 
+To get values from B<hddtemp> collectd connects to B<localhost> (127.0.0.1),
+port B<7634/tcp>. The B<Host> and B<Port> options can be used to change these
+default values, see below. C<hddtemp> has to be running to work correctly. If
+C<hddtemp> is not running timeouts may appear which may interfere with other
+statistics..
+
+The B<hddtemp> homepage can be found at
+L<http://www.guzu.net/linux/hddtemp.php>.
+
 =over 4
 
 =item B<Host> I<Hostname>
@@ -252,7 +298,7 @@ a more detailed description see B<IgnoreSelected> below.
 If no configuration if given, the B<traffic>-plugin will collect data from
 all interfaces. This may not be practical, especially for loopback- and
 similar interfaces. Thus, you can use the B<Interface>-option to pick the
-interfaces you're interested in. Sometimes, however, it's easier/prefered
+interfaces you're interested in. Sometimes, however, it's easier/preferred
 to collect all interfaces I<except> a few ones. This option enables you to
 do that: By setting B<IgnoreSelected> to I<true> the effect of
 B<Interface> is inversed: All selected interfaces are ignored and all
@@ -292,11 +338,11 @@ detailed description see B<IgnoreSelected> below.
 
 If no configuration if given, the B<irq>-plugin will collect data from all
 irqs. This may not be practical, especially if no interrupts happen. Thus, you
-can use the B<Irq>-option to pick the interupt you're interested in.
-Sometimes, however, it's easier/prefered to collect all interupts I<except> a
+can use the B<Irq>-option to pick the interrupt you're interested in.
+Sometimes, however, it's easier/preferred to collect all interrupts I<except> a
 few ones. This option enables you to do that: By setting B<IgnoreSelected> to
-I<true> the effect of B<Irq> is inversed: All selected interupts are ignored
-and all other interupts are collected.
+I<true> the effect of B<Irq> is inversed: All selected interrupts are ignored
+and all other interrupts are collected.
 
 =back
 
@@ -320,6 +366,17 @@ running in foreground- or non-daemon-mode.
 
 =head2 Plugin C<mbmon>
 
+The C<mbmon plugin> uses mbmon to retrieve temperature, voltage, etc.
+
+Be default collectd connects to B<localhost> (127.0.0.1), port B<411/tcp>.  The
+B<Host> and B<Port> options can be used to change these values, see below.
+C<mbmon> has to be running to work correctly. If C<mbmon> is not running
+timeouts may appear which may interfere with other statistics..
+
+C<mbmon> must be run with the -r option ("print TAG and Value format");
+Debian's F</etc/init.d/mbmon> script already does this, other people
+will need to ensure that this is the case.
+
 =over 4
 
 =item B<Host> I<Hostname>
@@ -334,6 +391,20 @@ TCP-Port to connect to. Defaults to B<411>.
 
 =head2 Plugin C<mysql>
 
+The C<mysql plugin> requires B<mysqlclient> to be installed. It connects to the
+database when started and keeps the connection up as long as possible. When the
+connection is interrupted for whatever reason it will try to re-connect. The
+plugin will complaint loudly in case anything goes wrong.
+
+This plugin issues C<SHOW STATUS> and evaluates C<Bytes_{received,sent}>,
+C<Com_*> and C<Handler_*> which correspond to F<mysql_octets.rrd>,
+F<mysql_commands-*.rrd> and F<mysql_handler-*.rrd>. Also, the values of
+C<Qcache_*> are put in F<mysql_qcache.rrd> and values of C<Threads_*> are put
+in F<mysql_threads.rrd>. Please refer to the B<MySQL reference manual>,
+I<5.2.4. Server Status Variables> for an explanation of these values.
+
+Use the following options to configure the plugin:
+
 =over 4
 
 =item B<Host> I<Hostname>
@@ -350,11 +421,88 @@ Password needed to log into the database.
 
 =item B<Database> I<Database>
 
-Select this database. Defaults to I<no database> which is a perfecly reasonable
+Select this database. Defaults to I<no database> which is a perfectly reasonable
 option for what this plugin does.
 
 =back
 
+=head2 Plugin C<netlink>
+
+The C<netlink> plugin uses a netlink socket to query the Linux kernel about
+statistics of various interface and routing aspects.
+
+=over 4
+
+=item B<Interface> I<Interface>
+
+=item B<VerboseInterface> I<Interface>
+
+Instruct the plugin to collect interface statistics. This is basically the same
+as the statistics provided by the C<interface> plugin (see above) but
+potentially much more detailed.
+
+When configuring with B<Interface> only the basic statistics will be collected,
+namely octets, packets, and errors. These statistics are collected by
+the C<interface> plugin, too, so using both at the same time is no benefit.
+
+When configured with B<VerboseInterface> all counters B<except> the basic ones,
+so that no data needs to be collected twice if you use the C<interface> plugin.
+This includes dropped packets, received multicast packets, collisions and a
+whole zoo of differentiated RX and TX errors. You can try the following command
+to get an idea of what awaits you:
+
+  ip -s -s link list
+
+If I<Interface> is B<All>, all interfaces will be selected.
+
+=item B<QDisc> I<Interface> [I<QDisc>]
+
+=item B<Class> I<Interface> [I<Class>]
+
+=item B<Filter> I<Interface> [I<Filter>]
+
+Collect the octets and packets that pass a certain qdisc, class or filter.
+
+QDiscs and classes are identified by their type and handle (or classid).
+Filters don't necessarily have a handle, therefore the parent's handle is used.
+The notation used in collectd differs from that used in tc(1) in that it
+doesn't skip the major or minor number if it's zero and doesn't print special
+ids by their name.  So, for example, a qdisc may be identified by
+C<pfifo_fast-1:0> even though the minor number of B<all> qdiscs is zero and
+thus not displayed by tc(1).
+
+If B<QDisc>, B<Class>, or B<Filter> is given without the second argument,
+i.E<nbsp>.e. without an identifier, all qdiscs, classes, or filters that are
+associated with that interface will be collected.
+
+Since a filter itself doesn't necessarily have a handle, the parent's handle is
+used. This may lead to problems when more than one filter is attached to a
+qdisc or class. This isn't nice, but we don't know how this could be done any
+better. If you have a idea, please don't hesitate to tell us.
+
+As with the B<Interface> option you can specify B<All> as the interface,
+meaning all interfaces.
+
+Here are some examples to help you understand the above text more easily:
+
+  <Plugin netlink>
+    VerboseInterface "All"
+    QDisc "eth0" "pfifo_fast-1:0"
+    QDisc "ppp0"
+    Class "ppp0" "htb-1:10"
+    Filter "ppp0" "u32-1:0"
+  </Plugin>
+
+=item B<IgnoreSelected>
+
+The behaviour is the same as with all other similar plugins: If nothing is
+selected at all, everything is collected. If some things are selected using the
+options described above, only these statistics are collected. If you set
+B<IgnoreSelected> to B<true>, this behavior is inversed, i.E<nbsp>e. the
+specified statistics will not be collected.
+
+=back
+
 =head2 Plugin C<network>
 
 =over 4
@@ -375,13 +523,13 @@ the argument is a multicast address the daemon will join that multicast group.
 If no B<Listen> statement is found the server tries join both, the default IPv6
 multicast group and the default IPv4 multicast group. If no B<Server> statement
 is found the client will try to send data to the IPv6 multicast group first. If
-that failes the client will try the IPv4 multicast group.
+that fails the client will try the IPv4 multicast group.
 
 The default IPv6 multicast group is C<ff18::efc0:4a42>. The default IPv4
 multicast group is C<239.192.74.66>.
 
 The optional I<Port> argument sets the port to use. It can either be given
-using a numeric port number or a service name. If the argument is omited the
+using a numeric port number or a service name. If the argument is omitted the
 default port B<25826> is assumed.
 
 =item B<TimeToLive> I<1-255>
@@ -397,7 +545,7 @@ If set to I<true>, write packets that were received via the network plugin to
 the sending sockets. This should only be activated when the B<Listen>- and
 B<Server>-statements differ. Otherwise packets may be send multiple times to
 the same multicast group. While this results in more network traffic than
-neccessary it's not a huge problem since the plugin has a duplicate detection,
+necessary it's not a huge problem since the plugin has a duplicate detection,
 so the values will not loop.
 
 =item B<CacheFlush> I<Seconds>
@@ -426,6 +574,38 @@ UDP-Port to connect to. Defaults to B<123>.
 
 =back
 
+=head2 Plugin C<nut>
+
+=over 4
+
+=item B<UPS> I<upsname>B<@>I<hostname>[B<:>I<port>]
+
+Add a UPS to collect data from. The format is identical to the one accepted by
+L<upsc(8)>.
+
+=back
+
+=head2 Plugin C<perl>
+
+=over 4
+
+=item B<LoadPlugin> I<Plugin>
+
+Loads the Perl plugin I<Plugin>. This does basically the same as B<use> would
+do in a Perl program.
+
+=item B<BaseName> I<Name>
+
+Prepends I<Name>B<::> to all plugin names loaded after this option. This is
+provided for convenience to keep plugin names short.
+
+=item B<IncludeDir> I<Dir>
+
+Adds I<Dir> to the B<@INC> array. This is the same as using the B<-IDir>
+command line option or B<use lib Dir> in the source code.
+
+=back
+
 =head2 Plugin C<ping>
 
 =over 4
@@ -457,28 +637,31 @@ and minor and major pagefaults.
 =head2 Plugin C<rrdtool>
 
 You can use the settings B<StepSize>, B<HeartBeat>, B<RRARows>, and B<XFF> to
-finetune your RRD-files. Please read L<rrdcreate(1)> if you encounter problems
+fine-tune your RRD-files. Please read L<rrdcreate(1)> if you encounter problems
 using these settings. If you don't want to dive into the depths of RRDTool, you
-can savely ignore these settings.
+can safely ignore these settings.
 
 =over 4
 
 =item B<DataDir> I<Directory>
 
-Set the directory to store CSV-files under. Per default CSV-files are generated
+Set the directory to store RRD-files under. Per default RRD-files are generated
 beneath the daemon's working directory, i.E<nbsp>e. the B<BaseDir>.
 
 =item B<StepSize> I<Seconds>
 
-Sets the stepsize of newly created RRD-files. Ideally (and per default) this
-setting is identical to the global B<Interval>-option and should not be
-smaller. If unsure, don't set this option.
+B<Force> the stepsize of newly created RRD-files. Ideally (and per default)
+this setting is unset and the stepsize is set to the interval in which the data
+is collected. Do not use this option unless you absolutely have to for some
+reason. Setting this option may cause problems with the C<snmp plugin>, the
+C<exec plugin> or when the daemon is set up to receive data from other hosts.
 
 =item B<HeartBeat> I<Seconds>
 
-Sets the heartbeat of newly created RRD-files. Ideally this setting is bigger
-than the B<Interval>-setting, by default it's twice the B<Interval>-setting. If
-unsure, don't set this option.
+B<Force> the heartbeat of newly created RRD-files. This setting should be unset
+in which case the heartbeat is set to twice the B<StepSize> which should equal
+the interval in which data is collected. Do not set this option unless you have
+a very good reason to do so.
 
 =item B<RRARows> I<NumRows>
 
@@ -495,6 +678,14 @@ one CDP by calculating:
 Bottom line is, set this no smaller than the width of you graphs in pixels. The
 default is 1200.
 
+=item B<RRATimespan> I<Seconds>
+
+Adds an RRA-timespan, given in seconds. Use this option multiple times to have
+more then one RRA. If this option is never used, the built-in default of (3600,
+86400, 604800, 2678400, 31622400) is used.
+
+For more information on how RRA-sizes are calculated see B<RRARows> above.
+
 =item B<XFF> I<Factor>
 
 Set the "XFiles Factor". The default is 0.1. If unsure, don't set this option.
@@ -517,13 +708,21 @@ normally do much harm either.
 If this option is set to a value greater than zero, the C<rrdtool plugin> will
 save values in a cache, as described above. Writing multiple values at once
 reduces IO-operations and thus lessens the load produced by updating the files.
-The tradeoff is that the graphs kind of "drag behind" and that more memory is
+The trade off is that the graphs kind of "drag behind" and that more memory is
 used.
 
 =back
 
 =head2 Plugin C<sensors>
 
+The C<sensors plugin> uses B<lm_sensors> to retrieve sensor-values. This means
+that all the needed modules have to be loaded and lm_sensors has to be
+configured (most likely by editing F</etc/sensors.conf>. Read
+L<sensors.conf(5)> for details.
+
+The B<lm_sensors> homepage can be found at
+L<http://secure.netroedge.com/~lm78/>.
+
 =over 4
 
 =item B<Sensor> I<chip-bus-address/type-feature>
@@ -538,13 +737,19 @@ voltage sensor I<in1> of the I<it8712> on the isa bus at the address 0290.
 If no configuration if given, the B<sensors>-plugin will collect data from all
 sensors. This may not be practical, especially for uninteresting sensors.
 Thus, you can use the B<Sensor>-option to pick the sensors you're interested
-in. Sometimes, however, it's easier/prefered to collect all sensors I<except> a
+in. Sometimes, however, it's easier/preferred to collect all sensors I<except> a
 few ones. This option enables you to do that: By setting B<IgnoreSelected> to
 I<true> the effect of B<Sensor> is inversed: All selected sensors are ignored
 and all other sensors are collected.
 
 =back
 
+=head2 Plugin C<snmp>
+
+Since the configuration of the C<snmp plugin> is a little more complicated than
+other plugins, its documentation has been moved to an own manpage,
+L<collectd-snmp(5)>. Please see there for details.
+
 =head2 Plugin C<syslog>
 
 =over 4
@@ -578,9 +783,26 @@ L<chmod(1)>. Defaults to B<0770>.
 
 =back
 
+=head2 Plugin C<vserver>
+
+This plugin doesn't have any options. B<VServer> support is only available for
+Linux. It cannot yet be found in a vanilla kernel, though. To make use of this
+plugin you need a kernel that has B<VServer> support built in, i.E<nbsp>e. you
+need to apply the patches and compile your own kernel, which will then provide
+the F</proc/virtual> filesystem that is required by this plugin.
+
+The B<VServer> homepage can be found at L<http://linux-vserver.org/>.
+
 =head1 SEE ALSO
 
-L<collectd(1)>
+L<collectd(1)>,
+L<collectd-exec(5)>,
+L<collectd-unixsock(5)>,
+L<hddtemp(8)>,
+L<kstat(3KSTAT)>,
+L<mbmon(1)>,
+L<rrdtool(1)>,
+L<sensors(1)>
 
 =head1 AUTHOR