X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd.conf.pod;h=3c8b26c4eff4ec0205acb3b37caf7ab363d3810a;hb=8bb8af140ec2c073a042da573d46525471045037;hp=946270fa7494222765ff7bf78bfd613e5dc1bca2;hpb=fb16e34624c30a30330031f1662a847442c41a69;p=collectd.git diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod index 946270fa..3c8b26c4 100644 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@ -501,12 +501,18 @@ File that holds one or more SSL certificates. If you want to use HTTPS you will possibly need this option. What CA certificates come bundled with C and are checked by default depends on the distribution you use. +=item B B|B + +Measure response time for the request. If this setting is enabled, B +blocks (see below) are optional. Disabled by default. + =item BMatchE> One or more B blocks that define how to match information in the data returned by C. The C plugin uses the same infrastructure that's used by the C plugin, so please see the documentation of the C -plugin below on how matches are defined. +plugin below on how matches are defined. If the B option +is set to B, B blocks are optional. =back @@ -613,6 +619,110 @@ Type-instance to use. Defaults to the current map key or current string array el =back +=head2 Plugin C + +The B uses B (L) and B +(L) to retrieve XML data via cURL. + + + + Host "my_host" + Instance "some_instance" + User "collectd" + Password "thaiNg0I" + VerifyPeer true + VerifyHost true + CACert "/path/to/ca.crt" + + + Type "magic_level" + #InstancePrefix "prefix-" + InstanceFrom "td[1]" + ValuesFrom "td[2]/span[@class=\"level\"]" + + + + +In the B block, there may be one or more B blocks, each defining a +URL to be fetched via HTTP (using libcurl). Within each B block there are +options which specify the connection parameters, for example authentication +information, and one or more B blocks. + +Each B block specifies how to get one type of information. The +string argument must be a valid XPath expression which returns a list +of "base elements". One value is dispatched for each "base element". The +I and values are looked up using further I expressions +that should be relative to the base element. + +Within the B block the following options are accepted: + +=over 4 + +=item B I + +Use I as the host name when submitting values. Defaults to the global +host name setting. + +=item B I + +Use I as the plugin instance when submitting values. Defaults to an +empty string (no plugin instance). + +=item B I +=item B I +=item B B|B +=item B B|B +=item B I + +These options behave exactly equivalent to the appropriate options of the +I and I plugins. Please see there for a detailed description. + +=item EB IE + +Within each B block, there must be one or more B blocks. Each +B block specifies how to get one type of information. The string +argument must be a valid XPath expression which returns a list of "base +elements". One value is dispatched for each "base element". + +Within the B block the following options are accepted: + +=over 4 + +=item B I + +Specifies the I used for submitting patches. This determines the number +of values that are required / expected and whether the strings are parsed as +signed or unsigned integer or as double values. See L for details. +This option is required. + +=item B I + +Prefix the I with I. The values are simply +concatenated together without any separator. +This option is optional. + +=item B I + +Specifies a XPath expression to use for determining the I. The +XPath expression must return exactly one element. The element's value is then +used as I, possibly prefixed with I (see above). + +This value is required. As a special exception, if the "base XPath expression" +(the argument to the B block) returns exactly one argument, then this +option may be omitted. + +=item B I [I ...] + +Specifies one or more XPath expression to use for reading the values. The +number of XPath expressions must match the number of data sources in the +I specified with B (see above). Each XPath expression must return +exactly one element. The element's value is then parsed as a number and used as +value for the appropriate value in the value list dispatched to the daemon. + +=back + +=back + =head2 Plugin C This plugin uses the B library (L) to @@ -866,19 +976,44 @@ Select partitions based on the mountpoint. Select partitions based on the filesystem type. -=item B I|I +=item B B|B 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 configured at all, B partitions are selected. -=item B I|I +=item B B|B Report using the device name rather than the mountpoint. i.e. with this I, (the default), it will report a disk as "root", but with it I, it will be "sda1" (or whichever). +=item B B|B + +When enabled, the blocks reserved for root are reported separately. When +disabled (the default for backwards compatibility reasons) the reserved space +will be included in the "free" space. + +When disabled, the "df" type will be used to store "free" and "used" space. The +mount point or disk name (see option B) is used as type +instance in this case (again: backwards compatibility). + +When enabled, the type "df_complex" is used and three files are created. The +mount point or disk name is used as plugin instance and the type instance is +set to "free", "reserved" and "used" as appropriate. + +Enabling this option is recommended. + +=item B B|B + +Enables or disables reporting of free, reserved and used inodes. Defaults to +inode collection being disabled. + +Enable this option if inodes are a scarce resource for you, usually because +many small files are stored on the disk. This is a usual scenario for mail +transfer agents and web caches. + =back =head2 Plugin C @@ -1073,6 +1208,12 @@ note that there are 1000 bytes in a kilobyte, not 1024. Controls whether or not to recurse into subdirectories. Enabled by default. +=item B I|I + +Controls whether or not to include "hidden" files and directories in the count. +"Hidden" files and directories are those, whose name begins with a dot. +Defaults to I, i.e. by default hidden files and directories are ignored. + =back =head2 Plugin C @@ -1442,6 +1583,11 @@ running in foreground- or non-daemon-mode. Prefix all lines printed by the current time. Defaults to B. +=item B B|B + +When enabled, all lines are prefixed by the severity of the log message, for +example "warning". Defaults to B. + =back B: There is no need to notify the daemon after moving or removing the @@ -1542,6 +1688,132 @@ TCP-Port to connect to. Defaults to B<11211>. =back +=head2 Plugin C + +The B connects to a Modbus "slave" via Modbus/TCP and reads +register values. It supports reading single registers (unsigned 16Ebit +values), large integer values (unsigned 32Ebit values) and floating point +values (two registers interpreted as IEEE floats in big endian notation). + +Synopsis: + + + RegisterBase 0 + RegisterType float + Type voltage + Instance "input-1" + + + + RegisterBase 2 + RegisterType float + Type voltage + Instance "input-2" + + + + Address "192.168.0.42" + Port "502" + Interval 60 + + + Instance "power-supply" + Collect "voltage-input-1" + Collect "voltage-input-2" + + + +=over 4 + +=item EB IE blocks + +Data blocks define a mapping between register numbers and the "types" used by +I. + +Within EDataE/E blocks, the following options are allowed: + +=over 4 + +=item B I + +Configures the base register to read from the device. If the option +B has been set to B or B, this and the next +register will be read (the register number is increased by one). + +=item B B|B|B + +Specifies what kind of data is returned by the device. If the type is B +or B, two 16Ebit registers will be read and the data is combined +into one value. Defaults to B. + +=item B I + +Specifies the "type" (data set) to use when dispatching the value to +I. Currently, only data sets with exactly one data source are +supported. + +=item B I + +Sets the type instance to use when dispatching the value to I. If +unset, an empty string (no type instance) is used. + +=back + +=item EB IE blocks + +Host blocks are used to specify to which hosts to connect and what data to read +from their "slaves". The string argument I is used as hostname when +dispatching the values to I. + +Within EHostE/E blocks, the following options are allowed: + +=over 4 + +=item B
I + +Specifies the node name (the actual network address) used to connect to the +host. This may be an IP address or a hostname. Please note that the used +I library only supports IPv4 at the moment. + +=item B I + +Specifies the port used to connect to the host. The port can either be given as +a number or as a service name. Please note that the I argument must be +a string, even if ports are given in their numerical form. Defaults to "502". + +=item B I + +Sets the interval (in seconds) in which the values will be collected from this +host. By default the global B setting will be used. + +=item EB IE + +Over each TCP connection, multiple Modbus devices may be reached. The slave ID +is used to specify which device should be addressed. For each device you want +to query, one B block must be given. + +Within ESlaveE/E blocks, the following options are allowed: + +=over 4 + +=item B I + +Specify the plugin instance to use when dispatching the values to I. +By default "slave_I" is used. + +=item B I + +Specifies which data to retrieve from the device. I must be the same +string as the I argument passed to a B block. You can specify this +option multiple times to collect more than one value from a slave. At least one +B option is mandatory. + +=back + +=back + +=back + =head2 Plugin C The C requires B to be installed. It connects to @@ -1640,6 +1912,463 @@ or SQL threads are not running. =back +=head2 Plugin C + +The netapp plugin can collect various performance and capacity information +from a NetApp filer using the NetApp API. + +Please note that NetApp has a wide line of products and a lot of different +software versions for each of these products. This plugin was developed for a +NetApp FAS3040 running OnTap 7.2.3P8 and tested on FAS2050 7.3.1.1L1, +FAS3140 7.2.5.1 and FAS3020 7.2.4P9. It I work for most combinations of +model and software version but it is very hard to test this. +If you have used this plugin with other models and/or software version, feel +free to send us a mail to tell us about the results, even if it's just a short +"It works". + +To collect these data collectd will log in to the NetApp via HTTP(S) and HTTP +basic authentication. + +B Create a special collectd user with just +the minimum of capabilities needed. The user only needs the "login-http-admin" +capability as well as a few more depending on which data will be collected. +Required capabilities are documented below. + +=head3 Synopsis + + + + Protocol "https" + Address "10.0.0.1" + Port 443 + User "username" + Password "aef4Aebe" + Interval 30 + + + Interval 30 + GetNameCache true + GetDirCache true + GetBufferCache true + GetInodeCache true + + + + Interval 30 + GetBusy true + + + + Interval 30 + GetIO "volume0" + IgnoreSelectedIO false + GetOps "volume0" + IgnoreSelectedOps false + GetLatency "volume0" + IgnoreSelectedLatency false + + + + Interval 30 + GetCapacity "vol0" + GetCapacity "vol1" + IgnoreSelectedCapacity false + GetSnapshot "vol1" + GetSnapshot "vol3" + IgnoreSelectedSnapshot false + + + + Interval 30 + GetCPULoad true + GetInterfaces true + GetDiskOps true + GetDiskIO true + + + + +The netapp plugin accepts the following configuration options: + +=over 4 + +=item B I + +A host block defines one NetApp filer. It will appear in collectd with the name +you specify here which does not have to be its real name nor its hostname. + +=item B B|B + +The protocol collectd will use to query this host. + +Optional + +Type: string + +Default: https + +Valid options: http, https + +=item B
I
+ +The hostname or IP address of the host. + +Optional + +Type: string + +Default: The "host" block's name. + +=item B I + +The TCP port to connect to on the host. + +Optional + +Type: integer + +Default: 80 for protocol "http", 443 for protocol "https" + +=item B I + +=item B I + +The username and password to use to login to the NetApp. + +Mandatory + +Type: string + +=item B I + +B + +=back + +The following options decide what kind of data will be collected. You can +either use them as a block and fine tune various parameters inside this block, +use them as a single statement to just accept all default values, or omit it to +not collect any data. + +The following options are valid inside all blocks: + +=over 4 + +=item B I + +Collect the respective statistics every I seconds. Defaults to the +host specific setting. + +=back + +=head3 The System block + +This will collect various performance data about the whole system. + +B To get this data the collectd user needs the +"api-perf-object-get-instances" capability. + +=over 4 + +=item B I + +Collect disk statistics every I seconds. + +=item B B|B + +If you set this option to true the current CPU usage will be read. This will be +the average usage between all CPUs in your NetApp without any information about +individual CPUs. + +B These are the same values that the NetApp CLI command "sysstat" +returns in the "CPU" field. + +Optional + +Type: boolean + +Default: true + +Result: Two value lists of type "cpu", and type instances "idle" and "system". + +=item B B|B + +If you set this option to true the current traffic of the network interfaces +will be read. This will be the total traffic over all interfaces of your NetApp +without any information about individual interfaces. + +B This is the same values that the NetApp CLI command "sysstat" returns +in the "Net kB/s" field. + +B + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "if_octects". + +=item B B|B + +If you set this option to true the current IO throughput will be read. This +will be the total IO of your NetApp without any information about individual +disks, volumes or aggregates. + +B This is the same values that the NetApp CLI command "sysstat" returns +in the "DiskEkB/s" field. + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "disk_octets". + +=item B B|B + +If you set this option to true the current number of HTTP, NFS, CIFS, FCP, +iSCSI, etc. operations will be read. This will be the total number of +operations on your NetApp without any information about individual volumes or +aggregates. + +B These are the same values that the NetApp CLI command "sysstat" +returns in the "NFS", "CIFS", "HTTP", "FCP" and "iSCSI" fields. + +Optional + +Type: boolean + +Default: true + +Result: A variable number of value lists of type "disk_ops_complex". Each type +of operation will result in one value list with the name of the operation as +type instance. + +=back + +=head3 The WAFL block + +This will collect various performance data about the WAFL file system. At the +moment this just means cache performance. + +B To get this data the collectd user needs the +"api-perf-object-get-instances" capability. + +B The interface to get these values is classified as "Diagnostics" by +NetApp. This means that it is not guaranteed to be stable even between minor +releases. + +=over 4 + +=item B I + +Collect disk statistics every I seconds. + +=item B B|B + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "cache_ratio" and type instance +"name_cache_hit". + +=item B B|B + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "cache_ratio" and type instance "find_dir_hit". + +=item B B|B + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "cache_ratio" and type instance +"inode_cache_hit". + +=item B B|B + +B This is the same value that the NetApp CLI command "sysstat" returns +in the "Cache hit" field. + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "cache_ratio" and type instance "buf_hash_hit". + +=back + +=head3 The Disks block + +This will collect performance data about the individual disks in the NetApp. + +B To get this data the collectd user needs the +"api-perf-object-get-instances" capability. + +=over 4 + +=item B I + +Collect disk statistics every I seconds. + +=item B B|B + +If you set this option to true the busy time of all disks will be calculated +and the value of the busiest disk in the system will be written. + +B This is the same values that the NetApp CLI command "sysstat" returns +in the "Disk util" field. Probably. + +Optional + +Type: boolean + +Default: true + +Result: One value list of type "percent" and type instance "disk_busy". + +=back + +=head3 The VolumePerf block + +This will collect various performance data about the individual volumes. + +You can select which data to collect about which volume using the following +options. They follow the standard ignorelist semantic. + +B To get this data the collectd user needs the +I capability. + +=over 4 + +=item B I + +Collect volume performance data every I seconds. + +=item B I + +=item B I + +=item B I + +Select the given volume for IO, operations or latency statistics collection. +The argument is the name of the volume without the C prefix. + +Since the standard ignorelist functionality is used here, you can use a string +starting and ending with a slash to specify regular expression matching: To +match the volumes "vol0", "vol2" and "vol7", you can use this regular +expression: + + GetIO "/^vol[027]$/" + +If no regular expression is specified, an exact match is required. Both, +regular and exact matching are case sensitive. + +If no volume was specified at all for either of the three options, that data +will be collected for all available volumes. + +=item B B|B + +=item B B|B + +=item B B|B + +When set to B, the volumes selected for IO, operations or latency +statistics collection will be ignored and the data will be collected for all +other volumes. + +When set to B, data will only be collected for the specified volumes and +all other volumes will be ignored. + +If no volumes have been specified with the above B options, all volumes +will be collected regardless of the B option. + +Defaults to B + +=back + +=head3 The VolumeUsage block + +This will collect capacity data about the individual volumes. + +B To get this data the collectd user needs the I +capability. + +=over 4 + +=item B I + +Collect volume usage statistics every I seconds. + +=item B I + +The current capacity of the volume will be collected. This will result in two +to four value lists, depending on the configuration of the volume. All data +sources are of type "df_complex" with the name of the volume as +plugin_instance. + +There will be type_instances "used" and "free" for the number of used and +available bytes on the volume. If the volume has some space reserved for +snapshots, a type_instance "snap_reserved" will be available. If the volume +has SIS enabled, a type_instance "sis_saved" will be available. This is the +number of bytes saved by the SIS feature. + +B The current NetApp API has a bug that results in this value being +reported as a 32Ebit number. This plugin tries to guess the correct +number which works most of the time. If you see strange values here, bug +NetApp support to fix this. + +Repeat this option to specify multiple volumes. + +=item B B|B + +Specify whether to collect only the volumes selected by the B +option or to ignore those volumes. B defaults to +B. However, if no B option is specified at all, all +capacities will be selected anyway. + +=item B I + +Select volumes from which to collect snapshot information. + +Usually, the space used for snapshots is included in the space reported as +"used". If snapshot information is collected as well, the space used for +snapshots is subtracted from the used space. + +To make things even more interesting, it is possible to reserve space to be +used for snapshots. If the space required for snapshots is less than that +reserved space, there is "reserved free" and "reserved used" space in addition +to "free" and "used". If the space required for snapshots exceeds the reserved +space, that part allocated in the normal space is subtracted from the "used" +space again. + +Repeat this option to specify multiple volumes. + +=item B + +Specify whether to collect only the volumes selected by the B +option or to ignore those volumes. B defaults to +B. However, if no B option is specified at all, all +capacities will be selected anyway. + +=back + =head2 Plugin C The C plugin uses a netlink socket to query the Linux kernel about @@ -1783,6 +2512,15 @@ B require this setting. This feature is only available if the I plugin was linked with I. +=item B I + +Set the outgoing interface for IP packets. This applies at least +to IPv6 packets and if possible to IPv4. If this option is not applicable, +undefined or a non-existent interface name is specified, the default +behaviour is to let the kernel choose the appropriate interface. Be warned +that the manual selection of an interface for unicast traffic is only +necessary in rare cases. + =back =item BListen> I [I]B> @@ -1831,6 +2569,14 @@ Each time a packet is received, the modification time of the file is checked using L. If the file has been changed, the contents is re-read. While the file is being read, it is locked using L. +=item B I + +Set the incoming interface for IP packets explicitly. This applies at least +to IPv6 packets and if possible to IPv4. If this option is not applicable, +undefined or a non-existent interface name is specified, the default +behaviour is, to let the kernel choose the appropriate interface. Thus incoming +traffic gets only accepted, if it arrives on the given interface. + =back =item B I<1-255> @@ -1864,6 +2610,14 @@ 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. +=item B B|B + +The network plugin cannot only receive and send statistics, it can also create +statistics about itself. Collected data included the number of received and +sent octets and packets, the length of the receive queue and the number of +values handled. When set to B, the I will make these +statistics available. Defaults to B. + =back =head2 Plugin C @@ -2165,6 +2919,31 @@ Available options: Specifies the location of the status file. +=item B B|B + +When enabled, the filename of the status file will be used as plugin instance +and the client's "common name" will be used as type instance. This is required +when reading multiple status files. Enabling this option is recommended, but to +maintain backwards compatibility this option is disabled by default. + +=item B B|B + +Sets whether or not statistics about the compression used by OpenVPN should be +collected. This information is only available in I mode. Enabled by +default. + +=item B B|B + +Sets whether or not traffic information is collected for each connected client +individually. If set to false, currently no traffic data is collected at all +because aggregating this data in a save manner is tricky. Defaults to B. + +=item B B|B + +When enabled, the number of currently connected clients or users is collected. +This is expecially interesting when B is disabled, but +can be configured independently from that option. Defaults to B. + =back =head2 Plugin C @@ -2274,6 +3053,24 @@ Default: B<0.9> Sets the Time-To-Live of generated ICMP packets. +=item B I + +Sets the source address to use. I may either be a numerical network +address or a network hostname. + +=item B I + +Sets the outgoing network device to be used. I has to specify an +interface name (e.Eg. C). This might not be supported by all +operating systems. + +=item B I + +Trigger a DNS resolv after the host has not replied to I packets. This +enables the use of dynamic DNS services (like dyndns.org) with the ping plugin. + +Default: B<-1> (disabled) + =back =head2 Plugin C @@ -2334,6 +3131,7 @@ L. + Interval 300 Service "service_name" Query backend # predefined Query rt36_tickets @@ -2397,7 +3195,8 @@ The username used to connect to the database. =item I -The interval collectd is using (as specified by the B option). +The interval with which this database is queried (as specified by the database +specific or global B options). =back @@ -2535,6 +3334,11 @@ for details. =over 4 +=item B I + +Specify the interval with which the database should be queried. The default is +to use the global B setting. + =item B I Specify the hostname or IP of the PostgreSQL server to connect to. If the @@ -2750,7 +3554,7 @@ C/var/run/collectd-powerdns>. 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. +io data (where available) and minor and major pagefaults. =item B I I @@ -2796,6 +3600,98 @@ matching values will be ignored. =back +=head2 Plugin C + +This plugin embeds a Python-interpreter into collectd and provides an interface +to collectd's plugin system. See L for its documentation. + +=head2 Plugin C + +The C plugin connects to a device running I, the +Linux-based operating system for routers by I. The plugin uses +I to connect and reads information about the interfaces and +wireless connections of the device. The configuration supports querying +multiple routers: + + + + Host "router0.example.com" + User "collectd" + Password "secr3t" + CollectInterface true + CollectCPULoad true + CollectMemory true + + + Host "router1.example.com" + User "collectd" + Password "5ecret" + CollectInterface true + CollectRegistrationTable true + CollectDF true + CollectDisk true + + + +As you can see above, the configuration of the I plugin consists of +one or more BRouterE> blocks. Within each block, the following +options are understood: + +=over 4 + +=item B I + +Hostname or IP-address of the router to connect to. + +=item B I + +Port name or port number used when connecting. If left unspecified, the default +will be chosen by I, currently "8728". This option expects a +string argument, even when a numeric port number is given. + +=item B I + +Use the user name I to authenticate. Defaults to "admin". + +=item B I + +Set the password used to authenticate. + +=item B B|B + +When set to B, interface statistics will be collected for all interfaces +present on the device. Defaults to B. + +=item B B|B + +When set to B, information about wireless LAN connections will be +collected. Defaults to B. + +=item B B|B + +When set to B, information about the CPU usage will be collected. The +number is a dimensionless value where zero indicates no CPU usage at all. +Defaults to B. + +=item B B|B + +When enabled, the amount of used and free memory will be collected. How used +memory is calculated is unknown, for example whether or not caches are counted +as used space. +Defaults to B. + +=item B B|B + +When enabled, the amount of used and free disk space will be collected. +Defaults to B. + +=item B B|B + +When enabled, the number of sectors written and bad blocks will be collected. +Defaults to B. + +=back + =head2 Plugin C The C plugin uses the RRDtool accelerator daemon, L, @@ -3126,6 +4022,7 @@ user using (extended) regular expressions, as described in L. Regex "\\" + ExcludeRegex "\\.*mail_spool defer" DSType "CounterInc" Type "counter" Instance "local_user" @@ -3160,6 +4057,13 @@ want to match literal parentheses you need to do the following: Regex "SPAM \\(Score: (-?[0-9]+\\.[0-9]+)\\)" +=item B I + +Sets an optional regular expression to use for excluding lines from the match. +An example which excludes all connections from localhost from the match: + + ExcludeRegex "127\\.0\\.0\\.1" + =item B I Sets how the values are cumulated. I is one of: @@ -3515,6 +4419,12 @@ create output in the I (JSON). Defaults to B. +=item B B + +If set to B, convert counter values to rates. If set to B (the +default) counter values are stored as is, i.Ee. as an increasing integer +number. + =back =head1 THRESHOLD CONFIGURATION @@ -4022,6 +4932,12 @@ Match values where the given regular expressions match the various fields of the identifier of a value. If multiple regular expressions are given, B regexen must match for a value to match. +=item B B|B + +When set to B, the result of the match is inverted, i.e. all value lists +where all regular expressions apply are not matched, all other value lists are +matched. Defaults to B. + =back Example: @@ -4155,6 +5071,77 @@ time. If the counter is reset for some reason (machine or service restarted, usually), the graph will be empty (NAN) for a long time. People may not understand why. +=item B + +Calculates a hash value of the host name and matches values according to that +hash value. This makes it possible to divide all hosts into groups and match +only values that are in a specific group. The intended use is in load +balancing, where you want to handle only part of all data and leave the rest +for other servers. + +The hashing function used tries to distribute the hosts evenly. First, it +calculates a 32Ebit hash value using the characters of the hostname: + + hash_value = 0; + for (i = 0; host[i] != 0; i++) + hash_value = (hash_value * 251) + host[i]; + +The constant 251 is a prime number which is supposed to make this hash value +more random. The code then checks the group for this host according to the +I and I arguments: + + if ((hash_value % Total) == Match) + matches; + else + does not match; + +Please note that when you set I to two (i.Ee. you have only two +groups), then the least significant bit of the hash value will be the XOR of +all least significant bits in the host name. One consequence is that when you +have two hosts, "server0.example.com" and "server1.example.com", where the host +name differs in one digit only and the digits differ by one, those hosts will +never end up in the same group. + +Available options: + +=over 4 + +=item B I I + +Divide the data into I groups and match all hosts in group I as +described above. The groups are numbered from zero, i.Ee. I must +be smaller than I. I must be at least one, although only values +greater than one really do make any sense. + +You can repeat this option to match multiple groups, for example: + + Match 3 7 + Match 5 7 + +The above config will divide the data into seven groups and match groups three +and five. One use would be to keep every value on two hosts so that if one +fails the missing data can later be reconstructed from the second host. + +=back + +Example: + + # Operate on the pre-cache chain, so that ignored values are not even in the + # global cache. + + + + # Divide all received hosts in seven groups and accept all hosts in + # group three. + Match 3 7 + + # If matched: Return and continue. + Target "return" + + # If not matched: Return and stop. + Target "stop" + + =back =head2 Available targets