=head1 NAME collectd.conf - Configuration for the system statistics collection daemon B =head1 SYNOPSIS BaseDir "/path/to/data/" PIDFile "/path/to/pidfile/collectd.pid" Server "123.123.123.123" 12345 LoadPlugin cpu LoadPlugin load LoadPlugin ping Host "example.org" Host "provider.net" =head1 DESCRIPTION This config file controls how the system statistics collection daemon B behaves. The most significant option is B, which 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. Each line containes 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.Ee. either B or B. String containing of only alphanumeric characters and underscores do not need to be quoted. =head1 GLOBAL OPTIONS =over 4 =item B I Sets the base directory. This is the directory beneath all RRD-files are created. Possibly more subdirectories are created. This is also the working directory for the daemon. =item B I Loads the plugin I. There must be at least one such line or B will be mostly useless. The names of the plugins are listed in L. =item B I 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. =item B I Configures the interval in which to query the read plugins. Obviously smaller values lead to a higher system load produces by collectd, while higher values lead to more coarse statistics. =item B I Number of threads to start for reading plugins. The default value if B<5>, but you may want to increase this if you have more than five plugins that take a long time to read. Mostly those are plugin that do network-IO. Setting this to a value higher than the number of plugins you've loaded is totally useless. =back =head1 PLUGIN OPTIONS Some Plugins may register own options. These options must be inclosed in a C-Section. Which options exist depends on the plugin used: =head2 Plugin C To configure the C-plugin you first need to configure the Apache webserver correctly. The Apache-plugin C needs to be loaded and working and the C directive needs to be B. You can use the following snipped to base your Apache config upon: ExtendedStatus on SetHandler server-status Since it's C module is very similar to Apache's, B is also supported. It introduces a new field, called C, to count the number of currently connected clients. This field is also supported. The following options are accepted by the C-plugin: =over 4 =item B I Sets the URL of the C output. This needs to be the output generated by C and it needs to be the machine readable output generated by appending the C argument. =item B I Optional user name needed for authentication. =item B I Optional password needed for authentication. =item B I 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 and are checked by default depends on the distribution you use. =back =head2 Plugin C =over 4 =item B I Hostname of the host running B. Defaults to B. Please note that IPv6 support has been disabled unless someone can confirm or decline that B can handle it. =item B I TCP-Port to connect to. Defaults to B<3551>. =back =head2 Plugin C =over 4 =item B I Set the directory to store RRD-files under. Per default RRD-files are generated beneath the daemon's working directory, i.Ee. the B. =back =head2 Plugin C =over 4 =item B I Select partitions based on the devicename. =item B I Select partitions based on the mountpoint. =item B I Select partitions based on the filesystem type. =item B I|I Invert the selection: If set to true, all partitions B 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 at all, B partitions are selected. =back =head2 Plugin C =over 4 =item B I The dns plugin uses B to capture dns traffic and analyses it. This option sets the interface that should be used. If this option is not set, or set to "any", the plugin will try to get packets from B interfaces. This may not work on certain platforms, such as MacEOSEX. =item B I Ignore packets that originate from this address. =back =head2 Plugin C =over 4 =item B I If running as root change the group of the UNIX-socket after it has been created. Defaults to B. =item B I Change the file permissions of the UNIX-socket after it has been created. The permissions must be given as a numeric, octal value as you would pass to L. Defaults to B<0770>. =item B I Sets the maximum number of connections that can be handled in parallel. Since this many threads will be started immediately setting this to a very high value will waste valuable resources. Defaults to B<5> and will be forced to be at most B<16384> to prevent typos and dumb mistakes. =back =head2 Plugin C Please make sure to read L before using this plugin. It containes valueable information on when the executable is executed and the output that is expected from it. =over 4 =item B I I Execute the executable I as user I. =back =head2 Plugin C =over 4 =item B I Hostname to connect to. Defaults to B<127.0.0.1>. =item B I TCP-Port to connect to. Defaults to B<7634>. =back =head2 Plugin C =over 4 =item B I Select this interface. By default these interfaces will then be collected. For a more detailed description see B below. =item B I|I If no configuration if given, the B-plugin will collect data from all interfaces. This may not be practical, especially for loopback- and similar interfaces. Thus, you can use the B-option to pick the interfaces you're interested in. Sometimes, however, it's easier/prefered to collect all interfaces I a few ones. This option enables you to do that: By setting B to I the effect of B is inversed: All selected interfaces are ignored and all other interfaces are collected. =back =head2 Plugin C =over 4 =item B I I [I [I]] Select the rules to count. If only I
and I are given, this plugin will collect the counters of all rules which have a comment-match. The comment is then used as type-instance. If I or I is given, only the rule with the matching comment or the Ith rule will be collected. Again, the comment (or the number) will be used as the type-instance. If I is supplied, it will be used as the type-instance instead of the comment or the number. =back =head2 Plugin C =over 4 =item B I Select this irq. By default these irqs will then be collected. For a more detailed description see B below. =item B I|I If no configuration if given, the B-plugin will collect data from all irqs. This may not be practical, especially if no interrupts happen. Thus, you can use the B-option to pick the interupt you're interested in. Sometimes, however, it's easier/prefered to collect all interupts I a few ones. This option enables you to do that: By setting B to I the effect of B is inversed: All selected interupts are ignored and all other interupts are collected. =back =head2 Plugin C =over 4 =item B B Sets the log-level. If, for example, set to B, then all events with severity B, B, or B will be written to the logfile. =item B I Sets the file to write log messages to. The special strings B and B can be used to write to the standard output and standard error channels, respectively. This, of course, only makes much sense when collectd is running in foreground- or non-daemon-mode. =back =head2 Plugin C =over 4 =item B I Hostname to connect to. Defaults to B<127.0.0.1>. =item B I TCP-Port to connect to. Defaults to B<411>. =back =head2 Plugin C =over 4 =item B I Hostname of the database server. Defaults to B. =item B I Username to use when connecting to the database. =item B I Password needed to log into the database. =item B I Select this database. Defaults to I which is a perfecly reasonable option for what this plugin does. =back =head2 Plugin C =over 4 =item B I [I] =item B I [I] The B statement sets the server to send datagrams B. The statement may occur multiple times to send each datagram to multiple destinations. The B statement sets the interfaces to bind to. When multiple statements are found the daemon will bind to multiple interfaces. The argument I may be a hostname, an IPv4 address or an IPv6 address. If the argument is a multicast address the daemon will join that multicast group. If no B statement is found the server tries join both, the default IPv6 multicast group and the default IPv4 multicast group. If no B 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. The default IPv6 multicast group is C. The default IPv4 multicast group is C<239.192.74.66>. The optional I 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 default port B<25826> is assumed. =item B I<1-255> Set the time-to-live of sent packets. This applies to all, unicast and multicast, and IPv4 and IPv6 packets. The default is to not change this value. That means that multicast packets will be sent with a TTL of C<1> (one) on most operating systems. =item B I If set to I, write packets that were received via the network plugin to the sending sockets. This should only be activated when the B- and B-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, so the values will not loop. =item B I For each host/plugin/type combination the C caches the time of the last value being sent or received. Every I seconds the plugin searches and removes all entries that are older than I seconds, thus freeing the unused memory again. Since this process is somewhat expensive and normally doesn't do much, this value should not be too small. The default is 1800 seconds, but setting this to 86400 seconds (one day) will not do much harm either. =back =head2 Plugin C =over 4 =item B I Hostname of the host running B. Defaults to B. =item B I UDP-Port to connect to. Defaults to B<123>. =back =head2 Plugin C =over 4 =item B IB<@>I[B<:>I] Add a UPS to collect data from. The format is identical to the one accepted by L. =back =head2 Plugin C =over 4 =item B I Loads the Perl plugin I. This does basically the same as B would do in a Perl program. =item B I Prepends IB<::> to all plugin names loaded after this option. This is provided for convenience to keep plugin names short. =item B I Adds I to the B<@INC> array. This is the same as using the B<-IDir> command line option or B in the source code. =back =head2 Plugin C =over 4 =item B I Host to ping periodically. This option may be repeated several times to ping multiple hosts. =item B I<0-255> Sets the Time-To-Live of generated ICMP packets. =back =head2 Plugin C =over 4 =item B I Select more detailed statistics of processes matching this name. The statistics collected for these selected processes are size of the resident segment size (RSS), user- and system-time used, number of processes and number of threads, and minor and major pagefaults. =back =head2 Plugin C You can use the settings B, B, B, and B to finetune your RRD-files. Please read L 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. =over 4 =item B I Set the directory to store CSV-files under. Per default CSV-files are generated beneath the daemon's working directory, i.Ee. the B. =item B I Sets the stepsize of newly created RRD-files. Ideally (and per default) this setting is identical to the global B-option and should not be smaller. If unsure, don't set this option. =item B I Sets the heartbeat of newly created RRD-files. Ideally this setting is bigger than the B-setting, by default it's twice the B-setting. If unsure, don't set this option. =item B I The C calculates the number of PDPs per CDP based on the B, this setting and a timespan. This plugin creates RRD-files with three times five RRAs, i. e. five RRAs with the CFs B, B, and B. The five RRAs are optimized for graphs covering one hour, one day, one week, one month, and one year. So for each timespan, it calculates how many PDPs need to be consolidated into one CDP by calculating: number of PDPs = timespan / (stepsize * rrarows) Bottom line is, set this no smaller than the width of you graphs in pixels. The default is 1200. =item B I Adds an RRA-timespan, given in seconds. Use this option mulitple 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 above. =item B I Set the "XFiles Factor". The default is 0.1. If unsure, don't set this option. =item B I When the C uses a cache (by setting B, see below) it writes all values for a certain RRD-file if the oldest value is older than (or equal to) the number of seconds specified. If some RRD-file is not updated anymore for some reason (the computer was shut down, the network is broken, etc.) some values may still be in the cache. If B is set, then the entire cache is searched for entries older than B seconds and written to disk every I seconds. Since this is kind of expensive and does nothing under normal circumstances, this value should not be too small. 900 seconds might be a good value, though setting this to 7200 seconds doesn't normally do much harm either. =item B I If this option is set to a value greater than zero, the C 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 used. =back =head2 Plugin C =over 4 =item B I Selects the name of the sensor which you want to collect or ignore, depending on the B below. For example, the option "B I" will cause collectd to gather data for the voltage sensor I of the I on the isa bus at the address 0290. =item B I|I If no configuration if given, the B-plugin will collect data from all sensors. This may not be practical, especially for uninteresting sensors. Thus, you can use the B-option to pick the sensors you're interested in. Sometimes, however, it's easier/prefered to collect all sensors I a few ones. This option enables you to do that: By setting B to I the effect of B is inversed: All selected sensors are ignored and all other sensors are collected. =back =head2 Plugin C =over 4 =item B B Sets the log-level. If, for example, set to B, then all events with severity B, B, or B will be submitted to the syslog-daemon. =back =head2 Plugin C =over 4 =item B I Sets the socket-file which is to be created. =item B I If running as root change the group of the UNIX-socket after it has been created. Defaults to B. =item B I Change the file permissions of the UNIX-socket after it has been created. The permissions must be given as a numeric, octal value as you would pass to L. Defaults to B<0770>. =back =head1 SEE ALSO L =head1 AUTHOR Florian Forster Eocto@verplant.orgE =cut