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.
=head1 PLUGIN OPTIONS
-Some Plugins may register own options. These options must be inclosed in a
+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
=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
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
=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
=head2 Plugin C<exec>
Please make sure to read L<collectd-exec(5)> before using this plugin. It
-contains valueable information on when the executable is executed and the
+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 program is executed as the specified
+group. If only the colon follows the user name the group defaults to the
+user's login group.
=back
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
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
=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
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>
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>
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
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<RRATimespan> I<Seconds>
-Adds an RRA-timespan, given in seconds. Use this option mulitple times to have
+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.
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.