1COLLECTD.CONF(5) collectd COLLECTD.CONF(5)
2
3
4
6 collectd.conf - Configuration for the system statistics collection
7 daemon collectd
8
10 BaseDir "/var/lib/collectd"
11 PIDFile "/run/collectd.pid"
12 Interval 10.0
13
14 LoadPlugin cpu
15 LoadPlugin load
16
17 <LoadPlugin df>
18 Interval 3600
19 </LoadPlugin>
20 <Plugin df>
21 ValuesPercentage true
22 </Plugin>
23
24 LoadPlugin ping
25 <Plugin ping>
26 Host "example.org"
27 Host "provider.net"
28 </Plugin>
29
31 This config file controls how the system statistics collection daemon
32 collectd behaves. The most significant option is LoadPlugin, which
33 controls which plugins to load. These plugins ultimately define
34 collectd's behavior. If the AutoLoadPlugin option has been enabled, the
35 explicit LoadPlugin lines may be omitted for all plugins with a
36 configuration block, i.e. a "<Plugin ...>" block.
37
38 The syntax of this config file is similar to the config file of the
39 famous Apache webserver. Each line contains either an option (a key and
40 a list of one or more values) or a section-start or -end. Empty lines
41 and everything after a non-quoted hash-symbol ("#") are ignored. Keys
42 are unquoted strings, consisting only of alphanumeric characters and
43 the underscore ("_") character. Keys are handled case insensitive by
44 collectd itself and all plugins included with it. Values can either be
45 an unquoted string, a quoted string (enclosed in double-quotes) a
46 number or a boolean expression. Unquoted strings consist of only
47 alphanumeric characters and underscores ("_") and do not need to be
48 quoted. Quoted strings are enclosed in double quotes ("""). You can use
49 the backslash character ("\") to include double quotes as part of the
50 string. Numbers can be specified in decimal and floating point format
51 (using a dot "." as decimal separator), hexadecimal when using the "0x"
52 prefix and octal with a leading zero (0). Boolean values are either
53 true or false.
54
55 Lines may be wrapped by using "\" as the last character before the
56 newline. This allows long lines to be split into multiple lines.
57 Quoted strings may be wrapped as well. However, those are treated
58 special in that whitespace at the beginning of the following lines will
59 be ignored, which allows for nicely indenting the wrapped lines.
60
61 The configuration is read and processed in order, i.e. from top to
62 bottom. So the plugins are loaded in the order listed in this config
63 file. It is a good idea to load any logging plugins first in order to
64 catch messages from plugins during configuration. Also, unless
65 AutoLoadPlugin is enabled, the LoadPlugin option must occur before the
66 appropriate "<Plugin ...>" block.
67
69 BaseDir Directory
70 Sets the base directory. This is the directory beneath which all
71 RRD-files are created. Possibly more subdirectories are created.
72 This is also the working directory for the daemon.
73
74 LoadPlugin Plugin
75 Loads the plugin Plugin. This is required to load plugins, unless
76 the AutoLoadPlugin option is enabled (see below). Without any
77 loaded plugins, collectd will be mostly useless.
78
79 Only the first LoadPlugin statement or block for a given plugin
80 name has any effect. This is useful when you want to split up the
81 configuration into smaller files and want each file to be "self
82 contained", i.e. it contains a Plugin block and the appropriate
83 LoadPlugin statement. The downside is that if you have multiple
84 conflicting LoadPlugin blocks, e.g. when they specify different
85 intervals, only one of them (the first one encountered) will take
86 effect and all others will be silently ignored.
87
88 LoadPlugin may either be a simple configuration statement or a
89 block with additional options, affecting the behavior of
90 LoadPlugin. A simple statement looks like this:
91
92 LoadPlugin "cpu"
93
94 Options inside a LoadPlugin block can override default settings and
95 influence the way plugins are loaded, e.g.:
96
97 <LoadPlugin perl>
98 Interval 60
99 </LoadPlugin>
100
101 The following options are valid inside LoadPlugin blocks:
102
103 Globals true|false
104 If enabled, collectd will export all global symbols of the
105 plugin (and of all libraries loaded as dependencies of the
106 plugin) and, thus, makes those symbols available for resolving
107 unresolved symbols in subsequently loaded plugins if that is
108 supported by your system.
109
110 This is useful (or possibly even required), e.g., when loading
111 a plugin that embeds some scripting language into the daemon
112 (e.g. the Perl and Python plugins). Scripting languages usually
113 provide means to load extensions written in C. Those extensions
114 require symbols provided by the interpreter, which is loaded as
115 a dependency of the respective collectd plugin. See the
116 documentation of those plugins (e.g., collectd-perl(5) or
117 collectd-python(5)) for details.
118
119 By default, this is disabled. As a special exception, if the
120 plugin name is either "perl" or "python", the default is
121 changed to enabled in order to keep the average user from ever
122 having to deal with this low level linking stuff.
123
124 Interval Seconds
125 Sets a plugin-specific interval for collecting metrics. This
126 overrides the global Interval setting. If a plugin provides its
127 own support for specifying an interval, that setting will take
128 precedence.
129
130 FlushInterval Seconds
131 Specifies the interval, in seconds, to call the flush callback
132 if it's defined in this plugin. By default, this is disabled.
133
134 FlushTimeout Seconds
135 Specifies the value of the timeout argument of the flush
136 callback.
137
138 AutoLoadPlugin false|true
139 When set to false (the default), each plugin needs to be loaded
140 explicitly, using the LoadPlugin statement documented above. If a
141 <Plugin ...> block is encountered and no configuration handling
142 callback for this plugin has been registered, a warning is logged
143 and the block is ignored.
144
145 When set to true, explicit LoadPlugin statements are not required.
146 Each <Plugin ...> block acts as if it was immediately preceded by a
147 LoadPlugin statement. LoadPlugin statements are still required for
148 plugins that don't provide any configuration, e.g. the Load plugin.
149
150 CollectInternalStats false|true
151 When set to true, various statistics about the collectd daemon will
152 be collected, with "collectd" as the plugin name. Defaults to
153 false.
154
155 The following metrics are reported:
156
157 "collectd-write_queue/queue_length"
158 The number of metrics currently in the write queue. You can
159 limit the queue length with the WriteQueueLimitLow and
160 WriteQueueLimitHigh options.
161
162 "collectd-write_queue/derive-dropped"
163 The number of metrics dropped due to a queue length limitation.
164 If this value is non-zero, your system can't handle all
165 incoming metrics and protects itself against overload by
166 dropping metrics.
167
168 "collectd-cache/cache_size"
169 The number of elements in the metric cache (the cache you can
170 interact with using collectd-unixsock(5)).
171
172 Include Path [pattern]
173 If Path points to a file, includes that file. If Path points to a
174 directory, recursively includes all files within that directory and
175 its subdirectories. If the "wordexp" function is available on your
176 system, shell-like wildcards are expanded before files are
177 included. This means you can use statements like the following:
178
179 Include "/etc/collectd.d/*.conf"
180
181 Starting with version 5.3, this may also be a block in which
182 further options affecting the behavior of Include may be specified.
183 The following option is currently allowed:
184
185 <Include "/etc/collectd.d">
186 Filter "*.conf"
187 </Include>
188
189 Filter pattern
190 If the "fnmatch" function is available on your system, a shell-
191 like wildcard pattern may be specified to filter which files to
192 include. This may be used in combination with recursively
193 including a directory to easily be able to arbitrarily mix
194 configuration files and other documents (e.g. README files).
195 The given example is similar to the first example above but
196 includes all files matching "*.conf" in any subdirectory of
197 "/etc/collectd.d".
198
199 If more than one file is included by a single Include option, the
200 files will be included in lexicographical order (as defined by the
201 "strcmp" function). Thus, you can e. g. use numbered prefixes to
202 specify the order in which the files are loaded.
203
204 To prevent loops and shooting yourself in the foot in interesting
205 ways the nesting is limited to a depth of 8 levels, which should be
206 sufficient for most uses. Since symlinks are followed it is still
207 possible to crash the daemon by looping symlinks. In our opinion
208 significant stupidity should result in an appropriate amount of
209 pain.
210
211 It is no problem to have a block like "<Plugin foo>" in more than
212 one file, but you cannot include files from within blocks.
213
214 PIDFile File
215 Sets where to write the PID file to. This file is overwritten when
216 it exists and deleted when the program is stopped. Some init-
217 scripts might override this setting using the -P command-line
218 option.
219
220 PluginDir Directory
221 Path to the plugins (shared objects) of collectd.
222
223 TypesDB File [File ...]
224 Set one or more files that contain the data-set descriptions. See
225 types.db(5) for a description of the format of this file.
226
227 If this option is not specified, a default file is read. If you
228 need to define custom types in addition to the types defined in the
229 default file, you need to explicitly load both. In other words, if
230 the TypesDB option is encountered the default behavior is disabled
231 and if you need the default types you have to also explicitly load
232 them.
233
234 Interval Seconds
235 Configures the interval in which to query the read plugins.
236 Obviously smaller values lead to a higher system load produced by
237 collectd, while higher values lead to more coarse statistics.
238
239 Warning: You should set this once and then never touch it again. If
240 you do, you will have to delete all your RRD files or know some
241 serious RRDtool magic! (Assuming you're using the RRDtool or
242 RRDCacheD plugin.)
243
244 MaxReadInterval Seconds
245 A read plugin doubles the interval between queries after each
246 failed attempt to get data.
247
248 This options limits the maximum value of the interval. The default
249 value is 86400.
250
251 Timeout Iterations
252 Consider a value list "missing" when no update has been read or
253 received for Iterations iterations. By default, collectd considers
254 a value list missing when no update has been received for twice the
255 update interval. Since this setting uses iterations, the maximum
256 allowed time without update depends on the Interval information
257 contained in each value list. This is used in the Threshold
258 configuration to dispatch notifications about missing values, see
259 collectd-threshold(5) for details.
260
261 ReadThreads Num
262 Number of threads to start for reading plugins. The default value
263 is 5, but you may want to increase this if you have more than five
264 plugins that take a long time to read. Mostly those are plugins
265 that do network-IO. Setting this to a value higher than the number
266 of registered read callbacks is not recommended.
267
268 WriteThreads Num
269 Number of threads to start for dispatching value lists to write
270 plugins. The default value is 5, but you may want to increase this
271 if you have more than five plugins that may take relatively long to
272 write to.
273
274 WriteQueueLimitHigh HighNum
275 WriteQueueLimitLow LowNum
276 Metrics are read by the read threads and then put into a queue to
277 be handled by the write threads. If one of the write plugins is
278 slow (e.g. network timeouts, I/O saturation of the disk) this queue
279 will grow. In order to avoid running into memory issues in such a
280 case, you can limit the size of this queue.
281
282 By default, there is no limit and memory may grow indefinitely.
283 This is most likely not an issue for clients, i.e. instances that
284 only handle the local metrics. For servers it is recommended to set
285 this to a non-zero value, though.
286
287 You can set the limits using WriteQueueLimitHigh and
288 WriteQueueLimitLow. Each of them takes a numerical argument which
289 is the number of metrics in the queue. If there are HighNum metrics
290 in the queue, any new metrics will be dropped. If there are less
291 than LowNum metrics in the queue, all new metrics will be enqueued.
292 If the number of metrics currently in the queue is between LowNum
293 and HighNum, the metric is dropped with a probability that is
294 proportional to the number of metrics in the queue (i.e. it
295 increases linearly until it reaches 100%.)
296
297 If WriteQueueLimitHigh is set to non-zero and WriteQueueLimitLow is
298 unset, the latter will default to half of WriteQueueLimitHigh.
299
300 If you do not want to randomly drop values when the queue size is
301 between LowNum and HighNum, set WriteQueueLimitHigh and
302 WriteQueueLimitLow to the same value.
303
304 Enabling the CollectInternalStats option is of great help to figure
305 out the values to set WriteQueueLimitHigh and WriteQueueLimitLow
306 to.
307
308 Hostname Name
309 Sets the hostname that identifies a host. If you omit this setting,
310 the hostname will be determined using the gethostname(2) system
311 call.
312
313 FQDNLookup true|false
314 If Hostname is determined automatically this setting controls
315 whether or not the daemon should try to figure out the "fully
316 qualified domain name", FQDN. This is done using a lookup of the
317 name returned by "gethostname". This option is enabled by default.
318
319 PreCacheChain ChainName
320 PostCacheChain ChainName
321 Configure the name of the "pre-cache chain" and the "post-cache
322 chain". Please see "FILTER CONFIGURATION" below on information on
323 chains and how these setting change the daemon's behavior.
324
326 Some plugins may register own options. These options must be enclosed
327 in a "Plugin"-Section. Which options exist depends on the plugin used.
328 Some plugins require external configuration, too. The "apache plugin",
329 for example, required "mod_status" to be configured in the webserver
330 you're going to collect data from. These plugins are listed below as
331 well, even if they don't require any configuration within collectd's
332 configuration file.
333
334 A list of all plugins and a short summary for each plugin can be found
335 in the README file shipped with the sourcecode and hopefully binary
336 packets as well.
337
338 Plugin "aggregation"
339 The Aggregation plugin makes it possible to aggregate several values
340 into one using aggregation functions such as sum, average, min and max.
341 This can be put to a wide variety of uses, e.g. average and total CPU
342 statistics for your entire fleet.
343
344 The grouping is powerful but, as with many powerful tools, may be a bit
345 difficult to wrap your head around. The grouping will therefore be
346 demonstrated using an example: The average and sum of the CPU usage
347 across all CPUs of each host is to be calculated.
348
349 To select all the affected values for our example, set "Plugin cpu" and
350 "Type cpu". The other values are left unspecified, meaning "all
351 values". The Host, Plugin, PluginInstance, Type and TypeInstance
352 options work as if they were specified in the "WHERE" clause of an
353 "SELECT" SQL statement.
354
355 Plugin "cpu"
356 Type "cpu"
357
358 Although the Host, PluginInstance (CPU number, i.e. 0, 1, 2, ...) and
359 TypeInstance (idle, user, system, ...) fields are left unspecified in
360 the example, the intention is to have a new value for each host / type
361 instance pair. This is achieved by "grouping" the values using the
362 "GroupBy" option. It can be specified multiple times to group by more
363 than one field.
364
365 GroupBy "Host"
366 GroupBy "TypeInstance"
367
368 We do neither specify nor group by plugin instance (the CPU number), so
369 all metrics that differ in the CPU number only will be aggregated. Each
370 aggregation needs at least one such field, otherwise no aggregation
371 would take place.
372
373 The full example configuration looks like this:
374
375 <Plugin "aggregation">
376 <Aggregation>
377 Plugin "cpu"
378 Type "cpu"
379
380 GroupBy "Host"
381 GroupBy "TypeInstance"
382
383 CalculateSum true
384 CalculateAverage true
385 </Aggregation>
386 </Plugin>
387
388 There are a couple of limitations you should be aware of:
389
390 · The Type cannot be left unspecified, because it is not reasonable
391 to add apples to oranges. Also, the internal lookup structure won't
392 work if you try to group by type.
393
394 · There must be at least one unspecified, ungrouped field. Otherwise
395 nothing will be aggregated.
396
397 As you can see in the example above, each aggregation has its own
398 Aggregation block. You can have multiple aggregation blocks and
399 aggregation blocks may match the same values, i.e. one value list can
400 update multiple aggregations. The following options are valid inside
401 Aggregation blocks:
402
403 Host Host
404 Plugin Plugin
405 PluginInstance PluginInstance
406 Type Type
407 TypeInstance TypeInstance
408 Selects the value lists to be added to this aggregation. Type must
409 be a valid data set name, see types.db(5) for details.
410
411 If the string starts with and ends with a slash ("/"), the string
412 is interpreted as a regular expression. The regex flavor used are
413 POSIX extended regular expressions as described in regex(7).
414 Example usage:
415
416 Host "/^db[0-9]\\.example\\.com$/"
417
418 GroupBy Host|Plugin|PluginInstance|TypeInstance
419 Group valued by the specified field. The GroupBy option may be
420 repeated to group by multiple fields.
421
422 SetHost Host
423 SetPlugin Plugin
424 SetPluginInstance PluginInstance
425 SetTypeInstance TypeInstance
426 Sets the appropriate part of the identifier to the provided string.
427
428 The PluginInstance should include the placeholder "%{aggregation}"
429 which will be replaced with the aggregation function, e.g.
430 "average". Not including the placeholder will result in duplication
431 warnings and/or messed up values if more than one aggregation
432 function are enabled.
433
434 The following example calculates the average usage of all "even"
435 CPUs:
436
437 <Plugin "aggregation">
438 <Aggregation>
439 Plugin "cpu"
440 PluginInstance "/[0,2,4,6,8]$/"
441 Type "cpu"
442
443 SetPlugin "cpu"
444 SetPluginInstance "even-%{aggregation}"
445
446 GroupBy "Host"
447 GroupBy "TypeInstance"
448
449 CalculateAverage true
450 </Aggregation>
451 </Plugin>
452
453 This will create the files:
454
455 · foo.example.com/cpu-even-average/cpu-idle
456
457 · foo.example.com/cpu-even-average/cpu-system
458
459 · foo.example.com/cpu-even-average/cpu-user
460
461 · ...
462
463 CalculateNum true|false
464 CalculateSum true|false
465 CalculateAverage true|false
466 CalculateMinimum true|false
467 CalculateMaximum true|false
468 CalculateStddev true|false
469 Boolean options for enabling calculation of the number of value
470 lists, their sum, average, minimum, maximum and / or standard
471 deviation. All options are disabled by default.
472
473 Plugin "amqp"
474 The AMQP plugin can be used to communicate with other instances of
475 collectd or third party applications using an AMQP 0.9.1 message
476 broker. Values are sent to or received from the broker, which handles
477 routing, queueing and possibly filtering out messages.
478
479 Synopsis:
480
481 <Plugin "amqp">
482 # Send values to an AMQP broker
483 <Publish "some_name">
484 Host "localhost"
485 Port "5672"
486 VHost "/"
487 User "guest"
488 Password "guest"
489 Exchange "amq.fanout"
490 # ExchangeType "fanout"
491 # RoutingKey "collectd"
492 # Persistent false
493 # ConnectionRetryDelay 0
494 # Format "command"
495 # StoreRates false
496 # TLSEnabled false
497 # TLSVerifyPeer true
498 # TLSVerifyHostName true
499 # TLSCACert "/path/to/ca.pem"
500 # TLSClientCert "/path/to/client-cert.pem"
501 # TLSClientKey "/path/to/client-key.pem"
502 # GraphitePrefix "collectd."
503 # GraphiteEscapeChar "_"
504 # GraphiteSeparateInstances false
505 # GraphiteAlwaysAppendDS false
506 # GraphitePreserveSeparator false
507 </Publish>
508
509 # Receive values from an AMQP broker
510 <Subscribe "some_name">
511 Host "localhost"
512 Port "5672"
513 VHost "/"
514 User "guest"
515 Password "guest"
516 Exchange "amq.fanout"
517 # ExchangeType "fanout"
518 # Queue "queue_name"
519 # QueueDurable false
520 # QueueAutoDelete true
521 # RoutingKey "collectd.#"
522 # ConnectionRetryDelay 0
523 # TLSEnabled false
524 # TLSVerifyPeer true
525 # TLSVerifyHostName true
526 # TLSCACert "/path/to/ca.pem"
527 # TLSClientCert "/path/to/client-cert.pem"
528 # TLSClientKey "/path/to/client-key.pem"
529 </Subscribe>
530 </Plugin>
531
532 The plugin's configuration consists of a number of Publish and
533 Subscribe blocks, which configure sending and receiving of values
534 respectively. The two blocks are very similar, so unless otherwise
535 noted, an option can be used in either block. The name given in the
536 blocks starting tag is only used for reporting messages, but may be
537 used to support flushing of certain Publish blocks in the future.
538
539 Host Host
540 Hostname or IP-address of the AMQP broker. Defaults to the default
541 behavior of the underlying communications library, rabbitmq-c,
542 which is "localhost".
543
544 Port Port
545 Service name or port number on which the AMQP broker accepts
546 connections. This argument must be a string, even if the numeric
547 form is used. Defaults to "5672".
548
549 VHost VHost
550 Name of the virtual host on the AMQP broker to use. Defaults to
551 "/".
552
553 User User
554 Password Password
555 Credentials used to authenticate to the AMQP broker. By default
556 "guest"/"guest" is used.
557
558 Exchange Exchange
559 In Publish blocks, this option specifies the exchange to send
560 values to. By default, "amq.fanout" will be used.
561
562 In Subscribe blocks this option is optional. If given, a binding
563 between the given exchange and the queue is created, using the
564 routing key if configured. See the Queue and RoutingKey options
565 below.
566
567 ExchangeType Type
568 If given, the plugin will try to create the configured exchange
569 with this type after connecting. When in a Subscribe block, the
570 queue will then be bound to this exchange.
571
572 Queue Queue (Subscribe only)
573 Configures the queue name to subscribe to. If no queue name was
574 configured explicitly, a unique queue name will be created by the
575 broker.
576
577 QueueDurable true|false (Subscribe only)
578 Defines if the queue subscribed to is durable (saved to persistent
579 storage) or transient (will disappear if the AMQP broker is
580 restarted). Defaults to "false".
581
582 This option should be used in conjunction with the Persistent
583 option on the publish side.
584
585 QueueAutoDelete true|false (Subscribe only)
586 Defines if the queue subscribed to will be deleted once the last
587 consumer unsubscribes. Defaults to "true".
588
589 RoutingKey Key
590 In Publish blocks, this configures the routing key to set on all
591 outgoing messages. If not given, the routing key will be computed
592 from the identifier of the value. The host, plugin, type and the
593 two instances are concatenated together using dots as the separator
594 and all containing dots replaced with slashes. For example
595 "collectd.host/example/com.cpu.0.cpu.user". This makes it possible
596 to receive only specific values using a "topic" exchange.
597
598 In Subscribe blocks, configures the routing key used when creating
599 a binding between an exchange and the queue. The usual wildcards
600 can be used to filter messages when using a "topic" exchange. If
601 you're only interested in CPU statistics, you could use the routing
602 key "collectd.*.cpu.#" for example.
603
604 Persistent true|false (Publish only)
605 Selects the delivery method to use. If set to true, the persistent
606 mode will be used, i.e. delivery is guaranteed. If set to false
607 (the default), the transient delivery mode will be used, i.e.
608 messages may be lost due to high load, overflowing queues or
609 similar issues.
610
611 ConnectionRetryDelay Delay
612 When the connection to the AMQP broker is lost, defines the time in
613 seconds to wait before attempting to reconnect. Defaults to 0,
614 which implies collectd will attempt to reconnect at each read
615 interval (in Subscribe mode) or each time values are ready for
616 submission (in Publish mode).
617
618 Format Command|JSON|Graphite (Publish only)
619 Selects the format in which messages are sent to the broker. If set
620 to Command (the default), values are sent as "PUTVAL" commands
621 which are identical to the syntax used by the Exec and UnixSock
622 plugins. In this case, the "Content-Type" header field will be set
623 to "text/collectd".
624
625 If set to JSON, the values are encoded in the JavaScript Object
626 Notation, an easy and straight forward exchange format. The
627 "Content-Type" header field will be set to "application/json".
628
629 If set to Graphite, values are encoded in the Graphite format,
630 which is "<metric> <value> <timestamp>\n". The "Content-Type"
631 header field will be set to "text/graphite".
632
633 A subscribing client should use the "Content-Type" header field to
634 determine how to decode the values. Currently, the AMQP plugin
635 itself can only decode the Command format.
636
637 StoreRates true|false (Publish only)
638 Determines whether or not "COUNTER", "DERIVE" and "ABSOLUTE" data
639 sources are converted to a rate (i.e. a "GAUGE" value). If set to
640 false (the default), no conversion is performed. Otherwise the
641 conversion is performed using the internal value cache.
642
643 Please note that currently this option is only used if the Format
644 option has been set to JSON.
645
646 GraphitePrefix (Publish and Format=Graphite only)
647 A prefix can be added in the metric name when outputting in the
648 Graphite format. It's added before the Host name. Metric name
649 will be "<prefix><host><postfix><plugin><type><name>"
650
651 GraphitePostfix (Publish and Format=Graphite only)
652 A postfix can be added in the metric name when outputting in the
653 Graphite format. It's added after the Host name. Metric name will
654 be "<prefix><host><postfix><plugin><type><name>"
655
656 GraphiteEscapeChar (Publish and Format=Graphite only)
657 Specify a character to replace dots (.) in the host part of the
658 metric name. In Graphite metric name, dots are used as separators
659 between different metric parts (host, plugin, type). Default is
660 "_" (Underscore).
661
662 GraphiteSeparateInstances true|false
663 If set to true, the plugin instance and type instance will be in
664 their own path component, for example "host.cpu.0.cpu.idle". If set
665 to false (the default), the plugin and plugin instance (and
666 likewise the type and type instance) are put into one component,
667 for example "host.cpu-0.cpu-idle".
668
669 GraphiteAlwaysAppendDS true|false
670 If set to true, append the name of the Data Source (DS) to the
671 "metric" identifier. If set to false (the default), this is only
672 done when there is more than one DS.
673
674 GraphitePreserveSeparator false|true
675 If set to false (the default) the "." (dot) character is replaced
676 with GraphiteEscapeChar. Otherwise, if set to true, the "." (dot)
677 character is preserved, i.e. passed through.
678
679 TLSEnabled true|false
680 If set to true then connect to the broker using a TLS connection.
681 If set to false (the default), then a plain text connection is
682 used.
683
684 Requires rabbitmq-c >= 0.4.
685
686 TLSVerifyPeer true|false
687 If set to true (the default) then the server certificate chain is
688 verified. Setting this to false will skip verification (insecure).
689
690 Requires rabbitmq-c >= 0.8.
691
692 TLSVerifyHostName true|false
693 If set to true (the default) then the server host name is verified.
694 Setting this to false will skip verification (insecure).
695
696 Requires rabbitmq-c >= 0.8.
697
698 TLSCACert Path
699 Path to the CA cert file in PEM format.
700
701 TLSClientCert Path
702 Path to the client certificate in PEM format. If this is set, then
703 TLSClientKey must be set as well.
704
705 TLSClientKey Path
706 Path to the client key in PEM format. If this is set, then
707 TLSClientCert must be set as well.
708
709 Plugin "amqp1"
710 The AMQP1 plugin can be used to communicate with other instances of
711 collectd or third party applications using an AMQP 1.0 message
712 intermediary. Metric values or notifications are sent to the messaging
713 intermediary which may handle direct messaging or queue based transfer.
714
715 Synopsis:
716
717 <Plugin "amqp1">
718 # Send values to an AMQP 1.0 intermediary
719 <Transport "name">
720 Host "localhost"
721 Port "5672"
722 User "guest"
723 Password "guest"
724 Address "collectd"
725 # RetryDelay 1
726 <Instance "some_name">
727 Format "command"
728 PreSettle false
729 Notify false
730 # StoreRates false
731 # GraphitePrefix "collectd."
732 # GraphiteEscapeChar "_"
733 # GraphiteSeparateInstances false
734 # GraphiteAlwaysAppendDS false
735 # GraphitePreserveSeparator false
736 </Instance>
737 </Transport>
738 </Plugin>
739
740 The plugin's configuration consists of a Transport that configures
741 communications to the AMQP 1.0 messaging bus and one or more Instance
742 corresponding to metric or event publishers to the messaging system.
743
744 The address in the Transport block concatenated with the name given in
745 the Instance block starting tag will be used as the send-to address for
746 communications over the messaging link.
747
748 The following options are accepted within each Transport block:
749
750 Host Host
751 Hostname or IP-address of the AMQP 1.0 intermediary. Defaults to
752 the default behavior of the underlying communications library,
753 libqpid-proton, which is "localhost".
754
755 Port Port
756 Service name or port number on which the AMQP 1.0 intermediary
757 accepts connections. This argument must be a string, even if the
758 numeric form is used. Defaults to "5672".
759
760 User User
761 Password Password
762 Credentials used to authenticate to the AMQP 1.0 intermediary. By
763 default "guest"/"guest" is used.
764
765 Address Address
766 This option specifies the prefix for the send-to value in the
767 message. By default, "collectd" will be used.
768
769 RetryDelay RetryDelay
770 When the AMQP1 connection is lost, defines the time in seconds to
771 wait before attempting to reconnect. Defaults to 1, which implies
772 attempt to reconnect at 1 second intervals.
773
774 The following options are accepted within each Instance block:
775
776 Format Command|JSON|Graphite
777 Selects the format in which messages are sent to the intermediary.
778 If set to Command (the default), values are sent as "PUTVAL"
779 commands which are identical to the syntax used by the Exec and
780 UnixSock plugins. In this case, the "Content-Type" header field
781 will be set to "text/collectd".
782
783 If set to JSON, the values are encoded in the JavaScript Object
784 Notation, an easy and straight forward exchange format. The
785 "Content-Type" header field will be set to "application/json".
786
787 If set to Graphite, values are encoded in the Graphite format,
788 which is "<metric> <value> <timestamp>\n". The "Content-Type"
789 header field will be set to "text/graphite".
790
791 A subscribing client should use the "Content-Type" header field to
792 determine how to decode the values.
793
794 PreSettle true|false
795 If set to false (the default), the plugin will wait for a message
796 acknowledgement from the messaging bus before sending the next
797 message. This indicates transfer of ownership to the messaging
798 system. If set to true, the plugin will not wait for a message
799 acknowledgement and the message may be dropped prior to transfer of
800 ownership.
801
802 Notify true|false
803 If set to false (the default), the plugin will service the instance
804 write call back as a value list. If set to true the plugin will
805 service the instance as a write notification callback for alert
806 formatting.
807
808 StoreRates true|false
809 Determines whether or not "COUNTER", "DERIVE" and "ABSOLUTE" data
810 sources are converted to a rate (i.e. a "GAUGE" value). If set to
811 false (the default), no conversion is performed. Otherwise the
812 conversion is performed using the internal value cache.
813
814 Please note that currently this option is only used if the Format
815 option has been set to JSON.
816
817 GraphitePrefix
818 A prefix can be added in the metric name when outputting in the
819 Graphite format. It's added before the Host name. Metric name
820 will be "<prefix><host><postfix><plugin><type><name>"
821
822 GraphitePostfix
823 A postfix can be added in the metric name when outputting in the
824 Graphite format. It's added after the Host name. Metric name will
825 be "<prefix><host><postfix><plugin><type><name>"
826
827 GraphiteEscapeChar
828 Specify a character to replace dots (.) in the host part of the
829 metric name. In Graphite metric name, dots are used as separators
830 between different metric parts (host, plugin, type). Default is
831 "_" (Underscore).
832
833 GraphiteSeparateInstances true|false
834 If set to true, the plugin instance and type instance will be in
835 their own path component, for example "host.cpu.0.cpu.idle". If set
836 to false (the default), the plugin and plugin instance (and
837 likewise the type and type instance) are put into one component,
838 for example "host.cpu-0.cpu-idle".
839
840 GraphiteAlwaysAppendDS true|false
841 If set to true, append the name of the Data Source (DS) to the
842 "metric" identifier. If set to false (the default), this is only
843 done when there is more than one DS.
844
845 GraphitePreserveSeparator false|true
846 If set to false (the default) the "." (dot) character is replaced
847 with GraphiteEscapeChar. Otherwise, if set to true, the "." (dot)
848 character is preserved, i.e. passed through.
849
850 Plugin "apache"
851 To configure the "apache"-plugin you first need to configure the Apache
852 webserver correctly. The Apache-plugin "mod_status" needs to be loaded
853 and working and the "ExtendedStatus" directive needs to be enabled. You
854 can use the following snipped to base your Apache config upon:
855
856 ExtendedStatus on
857 <IfModule mod_status.c>
858 <Location /mod_status>
859 SetHandler server-status
860 </Location>
861 </IfModule>
862
863 Since its "mod_status" module is very similar to Apache's, lighttpd is
864 also supported. It introduces a new field, called "BusyServers", to
865 count the number of currently connected clients. This field is also
866 supported.
867
868 The configuration of the Apache plugin consists of one or more
869 "<Instance />" blocks. Each block requires one string argument as the
870 instance name. For example:
871
872 <Plugin "apache">
873 <Instance "www1">
874 URL "http://www1.example.com/mod_status?auto"
875 </Instance>
876 <Instance "www2">
877 URL "http://www2.example.com/mod_status?auto"
878 </Instance>
879 </Plugin>
880
881 The instance name will be used as the plugin instance. To emulate the
882 old (version 4) behavior, you can use an empty string (""). In order
883 for the plugin to work correctly, each instance name must be unique.
884 This is not enforced by the plugin and it is your responsibility to
885 ensure it.
886
887 The following options are accepted within each Instance block:
888
889 URL http://host/mod_status?auto
890 Sets the URL of the "mod_status" output. This needs to be the
891 output generated by "ExtendedStatus on" and it needs to be the
892 machine readable output generated by appending the "?auto"
893 argument. This option is mandatory.
894
895 User Username
896 Optional user name needed for authentication.
897
898 Password Password
899 Optional password needed for authentication.
900
901 VerifyPeer true|false
902 Enable or disable peer SSL certificate verification. See
903 <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
904 default.
905
906 VerifyHost true|false
907 Enable or disable peer host name verification. If enabled, the
908 plugin checks if the "Common Name" or a "Subject Alternate Name"
909 field of the SSL certificate matches the host name provided by the
910 URL option. If this identity check fails, the connection is
911 aborted. Obviously, only works when connecting to a SSL enabled
912 server. Enabled by default.
913
914 CACert File
915 File that holds one or more SSL certificates. If you want to use
916 HTTPS you will possibly need this option. What CA certificates come
917 bundled with "libcurl" and are checked by default depends on the
918 distribution you use.
919
920 SSLCiphers list of ciphers
921 Specifies which ciphers to use in the connection. The list of
922 ciphers must specify valid ciphers. See
923 <http://www.openssl.org/docs/apps/ciphers.html> for details.
924
925 Timeout Milliseconds
926 The Timeout option sets the overall timeout for HTTP requests to
927 URL, in milliseconds. By default, the configured Interval is used
928 to set the timeout.
929
930 Plugin "apcups"
931 Host Hostname
932 Hostname of the host running apcupsd. Defaults to localhost. Please
933 note that IPv6 support has been disabled unless someone can confirm
934 or decline that apcupsd can handle it.
935
936 Port Port
937 TCP-Port to connect to. Defaults to 3551.
938
939 ReportSeconds true|false
940 If set to true, the time reported in the "timeleft" metric will be
941 converted to seconds. This is the recommended setting. If set to
942 false, the default for backwards compatibility, the time will be
943 reported in minutes.
944
945 PersistentConnection true|false
946 The plugin is designed to keep the connection to apcupsd open
947 between reads. If plugin poll interval is greater than 15 seconds
948 (hardcoded socket close timeout in apcupsd NIS), then this option
949 is false by default.
950
951 You can instruct the plugin to close the connection after each read
952 by setting this option to false or force keeping the connection by
953 setting it to true.
954
955 If apcupsd appears to close the connection due to inactivity quite
956 quickly, the plugin will try to detect this problem and switch to
957 an open-read-close mode.
958
959 Plugin "aquaero"
960 This plugin collects the value of the available sensors in an Aquaero 5
961 board. Aquaero 5 is a water-cooling controller board, manufactured by
962 Aqua Computer GmbH <http://www.aquacomputer.de/>, with a USB2
963 connection for monitoring and configuration. The board can handle
964 multiple temperature sensors, fans, water pumps and water level sensors
965 and adjust the output settings such as fan voltage or power used by the
966 water pump based on the available inputs using a configurable
967 controller included in the board. This plugin collects all the
968 available inputs as well as some of the output values chosen by this
969 controller. The plugin is based on the libaquaero5 library provided by
970 aquatools-ng.
971
972 Device DevicePath
973 Device path of the Aquaero 5's USB HID (human interface device),
974 usually in the form "/dev/usb/hiddevX". If this option is no set
975 the plugin will try to auto-detect the Aquaero 5 USB device based
976 on vendor-ID and product-ID.
977
978 Plugin "ascent"
979 This plugin collects information about an Ascent server, a free server
980 for the "World of Warcraft" game. This plugin gathers the information
981 by fetching the XML status page using "libcurl" and parses it using
982 "libxml2".
983
984 The configuration options are the same as for the "apache" plugin
985 above:
986
987 URL http://localhost/ascent/status/
988 Sets the URL of the XML status output.
989
990 User Username
991 Optional user name needed for authentication.
992
993 Password Password
994 Optional password needed for authentication.
995
996 VerifyPeer true|false
997 Enable or disable peer SSL certificate verification. See
998 <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
999 default.
1000
1001 VerifyHost true|false
1002 Enable or disable peer host name verification. If enabled, the
1003 plugin checks if the "Common Name" or a "Subject Alternate Name"
1004 field of the SSL certificate matches the host name provided by the
1005 URL option. If this identity check fails, the connection is
1006 aborted. Obviously, only works when connecting to a SSL enabled
1007 server. Enabled by default.
1008
1009 CACert File
1010 File that holds one or more SSL certificates. If you want to use
1011 HTTPS you will possibly need this option. What CA certificates come
1012 bundled with "libcurl" and are checked by default depends on the
1013 distribution you use.
1014
1015 Timeout Milliseconds
1016 The Timeout option sets the overall timeout for HTTP requests to
1017 URL, in milliseconds. By default, the configured Interval is used
1018 to set the timeout.
1019
1020 Plugin "barometer"
1021 This plugin reads absolute air pressure using digital barometer sensor
1022 on a I2C bus. Supported sensors are:
1023
1024 MPL115A2 from Freescale, see
1025 <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPL115A>.
1026 MPL3115 from Freescale see
1027 <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPL3115A2>.
1028 BMP085 from Bosch Sensortec
1029
1030 The sensor type - one of the above - is detected automatically by the
1031 plugin and indicated in the plugin_instance (you will see subdirectory
1032 "barometer-mpl115" or "barometer-mpl3115", or "barometer-bmp085"). The
1033 order of detection is BMP085 -> MPL3115 -> MPL115A2, the first one
1034 found will be used (only one sensor can be used by the plugin).
1035
1036 The plugin provides absolute barometric pressure, air pressure reduced
1037 to sea level (several possible approximations) and as an auxiliary
1038 value also internal sensor temperature. It uses (expects/provides)
1039 typical metric units - pressure in [hPa], temperature in [C], altitude
1040 in [m].
1041
1042 It was developed and tested under Linux only. The only platform
1043 dependency is the standard Linux i2c-dev interface (the particular bus
1044 driver has to support the SM Bus command subset).
1045
1046 The reduction or normalization to mean sea level pressure requires
1047 (depending on selected method/approximation) also altitude and
1048 reference to temperature sensor(s). When multiple temperature sensors
1049 are configured the minimum of their values is always used (expecting
1050 that the warmer ones are affected by e.g. direct sun light at that
1051 moment).
1052
1053 Synopsis:
1054
1055 <Plugin "barometer">
1056 Device "/dev/i2c-0";
1057 Oversampling 512
1058 PressureOffset 0.0
1059 TemperatureOffset 0.0
1060 Normalization 2
1061 Altitude 238.0
1062 TemperatureSensor "myserver/onewire-F10FCA000800/temperature"
1063 </Plugin>
1064
1065 Device device
1066 The only mandatory configuration parameter.
1067
1068 Device name of the I2C bus to which the sensor is connected. Note
1069 that typically you need to have loaded the i2c-dev module. Using
1070 i2c-tools you can check/list i2c buses available on your system by:
1071
1072 i2cdetect -l
1073
1074 Then you can scan for devices on given bus. E.g. to scan the whole
1075 bus 0 use:
1076
1077 i2cdetect -y -a 0
1078
1079 This way you should be able to verify that the pressure sensor
1080 (either type) is connected and detected on address 0x60.
1081
1082 Oversampling value
1083 Optional parameter controlling the oversampling/accuracy. Default
1084 value is 1 providing fastest and least accurate reading.
1085
1086 For MPL115 this is the size of the averaging window. To filter out
1087 sensor noise a simple averaging using floating window of this
1088 configurable size is used. The plugin will use average of the last
1089 "value" measurements (value of 1 means no averaging). Minimal size
1090 is 1, maximal 1024.
1091
1092 For MPL3115 this is the oversampling value. The actual oversampling
1093 is performed by the sensor and the higher value the higher accuracy
1094 and longer conversion time (although nothing to worry about in the
1095 collectd context). Supported values are: 1, 2, 4, 8, 16, 32, 64
1096 and 128. Any other value is adjusted by the plugin to the closest
1097 supported one.
1098
1099 For BMP085 this is the oversampling value. The actual oversampling
1100 is performed by the sensor and the higher value the higher accuracy
1101 and longer conversion time (although nothing to worry about in the
1102 collectd context). Supported values are: 1, 2, 4, 8. Any other
1103 value is adjusted by the plugin to the closest supported one.
1104
1105 PressureOffset offset
1106 Optional parameter for MPL3115 only.
1107
1108 You can further calibrate the sensor by supplying pressure and/or
1109 temperature offsets. This is added to the measured/caclulated
1110 value (i.e. if the measured value is too high then use negative
1111 offset). In hPa, default is 0.0.
1112
1113 TemperatureOffset offset
1114 Optional parameter for MPL3115 only.
1115
1116 You can further calibrate the sensor by supplying pressure and/or
1117 temperature offsets. This is added to the measured/caclulated
1118 value (i.e. if the measured value is too high then use negative
1119 offset). In C, default is 0.0.
1120
1121 Normalization method
1122 Optional parameter, default value is 0.
1123
1124 Normalization method - what approximation/model is used to compute
1125 the mean sea level pressure from the air absolute pressure.
1126
1127 Supported values of the "method" (integer between from 0 to 2) are:
1128
1129 0 - no conversion, absolute pressure is simply copied over. For
1130 this method you do not need to configure "Altitude" or
1131 "TemperatureSensor".
1132 1 - international formula for conversion , See
1133 <http://en.wikipedia.org/wiki/Atmospheric_pressure#Altitude_atmospheric_pressure_variation>.
1134 For this method you have to configure "Altitude" but do not need
1135 "TemperatureSensor" (uses fixed global temperature average
1136 instead).
1137 2 - formula as recommended by the Deutsche Wetterdienst (German
1138 Meteorological Service). See
1139 <http://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel#Theorie>
1140 For this method you have to configure both "Altitude" and
1141 "TemperatureSensor".
1142 Altitude altitude
1143 The altitude (in meters) of the location where you meassure the
1144 pressure.
1145
1146 TemperatureSensor reference
1147 Temperature sensor(s) which should be used as a reference when
1148 normalizing the pressure using "Normalization" method 2. When
1149 specified more sensors a minimum is found and used each time. The
1150 temperature reading directly from this pressure sensor/plugin is
1151 typically not suitable as the pressure sensor will be probably
1152 inside while we want outside temperature. The collectd reference
1153 name is something like
1154 <hostname>/<plugin_name>-<plugin_instance>/<type>-<type_instance>
1155 (<type_instance> is usually omitted when there is just single value
1156 type). Or you can figure it out from the path of the output data
1157 files.
1158
1159 Plugin "battery"
1160 The battery plugin reports the remaining capacity, power and voltage of
1161 laptop batteries.
1162
1163 ValuesPercentage false|true
1164 When enabled, remaining capacity is reported as a percentage, e.g.
1165 "42% capacity remaining". Otherwise the capacity is stored as
1166 reported by the battery, most likely in "Wh". This option does not
1167 work with all input methods, in particular when only "/proc/pmu" is
1168 available on an old Linux system. Defaults to false.
1169
1170 ReportDegraded false|true
1171 Typical laptop batteries degrade over time, meaning the capacity
1172 decreases with recharge cycles. The maximum charge of the previous
1173 charge cycle is tracked as "last full capacity" and used to
1174 determine that a battery is "fully charged".
1175
1176 When this option is set to false, the default, the battery plugin
1177 will only report the remaining capacity. If the ValuesPercentage
1178 option is enabled, the relative remaining capacity is calculated as
1179 the ratio of the "remaining capacity" and the "last full capacity".
1180 This is what most tools, such as the status bar of desktop
1181 environments, also do.
1182
1183 When set to true, the battery plugin will report three values:
1184 charged (remaining capacity), discharged (difference between "last
1185 full capacity" and "remaining capacity") and degraded (difference
1186 between "design capacity" and "last full capacity").
1187
1188 QueryStateFS false|true
1189 When set to true, the battery plugin will only read statistics
1190 related to battery performance as exposed by StateFS at /run/state.
1191 StateFS is used in Mer-based Sailfish OS, for example.
1192
1193 Plugin "bind"
1194 Starting with BIND 9.5.0, the most widely used DNS server software
1195 provides extensive statistics about queries, responses and lots of
1196 other information. The bind plugin retrieves this information that's
1197 encoded in XML and provided via HTTP and submits the values to
1198 collectd.
1199
1200 To use this plugin, you first need to tell BIND to make this
1201 information available. This is done with the "statistics-channels"
1202 configuration option:
1203
1204 statistics-channels {
1205 inet localhost port 8053;
1206 };
1207
1208 The configuration follows the grouping that can be seen when looking at
1209 the data with an XSLT compatible viewer, such as a modern web browser.
1210 It's probably a good idea to make yourself familiar with the provided
1211 values, so you can understand what the collected statistics actually
1212 mean.
1213
1214 Synopsis:
1215
1216 <Plugin "bind">
1217 URL "http://localhost:8053/"
1218 ParseTime false
1219 OpCodes true
1220 QTypes true
1221
1222 ServerStats true
1223 ZoneMaintStats true
1224 ResolverStats false
1225 MemoryStats true
1226
1227 <View "_default">
1228 QTypes true
1229 ResolverStats true
1230 CacheRRSets true
1231
1232 Zone "127.in-addr.arpa/IN"
1233 </View>
1234 </Plugin>
1235
1236 The bind plugin accepts the following configuration options:
1237
1238 URL URL
1239 URL from which to retrieve the XML data. If not specified,
1240 "http://localhost:8053/" will be used.
1241
1242 ParseTime true|false
1243 When set to true, the time provided by BIND will be parsed and used
1244 to dispatch the values. When set to false, the local time source is
1245 queried.
1246
1247 This setting is set to true by default for backwards compatibility;
1248 setting this to false is recommended to avoid problems with
1249 timezones and localization.
1250
1251 OpCodes true|false
1252 When enabled, statistics about the "OpCodes", for example the
1253 number of "QUERY" packets, are collected.
1254
1255 Default: Enabled.
1256
1257 QTypes true|false
1258 When enabled, the number of incoming queries by query types (for
1259 example "A", "MX", "AAAA") is collected.
1260
1261 Default: Enabled.
1262
1263 ServerStats true|false
1264 Collect global server statistics, such as requests received over
1265 IPv4 and IPv6, successful queries, and failed updates.
1266
1267 Default: Enabled.
1268
1269 ZoneMaintStats true|false
1270 Collect zone maintenance statistics, mostly information about
1271 notifications (zone updates) and zone transfers.
1272
1273 Default: Enabled.
1274
1275 ResolverStats true|false
1276 Collect resolver statistics, i. e. statistics about outgoing
1277 requests (e. g. queries over IPv4, lame servers). Since the global
1278 resolver counters apparently were removed in BIND 9.5.1 and 9.6.0,
1279 this is disabled by default. Use the ResolverStats option within a
1280 View "_default" block instead for the same functionality.
1281
1282 Default: Disabled.
1283
1284 MemoryStats
1285 Collect global memory statistics.
1286
1287 Default: Enabled.
1288
1289 Timeout Milliseconds
1290 The Timeout option sets the overall timeout for HTTP requests to
1291 URL, in milliseconds. By default, the configured Interval is used
1292 to set the timeout.
1293
1294 View Name
1295 Collect statistics about a specific "view". BIND can behave
1296 different, mostly depending on the source IP-address of the
1297 request. These different configurations are called "views". If you
1298 don't use this feature, you most likely are only interested in the
1299 "_default" view.
1300
1301 Within a <View name> block, you can specify which information you
1302 want to collect about a view. If no View block is configured, no
1303 detailed view statistics will be collected.
1304
1305 QTypes true|false
1306 If enabled, the number of outgoing queries by query type (e. g.
1307 "A", "MX") is collected.
1308
1309 Default: Enabled.
1310
1311 ResolverStats true|false
1312 Collect resolver statistics, i. e. statistics about outgoing
1313 requests (e. g. queries over IPv4, lame servers).
1314
1315 Default: Enabled.
1316
1317 CacheRRSets true|false
1318 If enabled, the number of entries ("RR sets") in the view's
1319 cache by query type is collected. Negative entries (queries
1320 which resulted in an error, for example names that do not
1321 exist) are reported with a leading exclamation mark, e. g.
1322 "!A".
1323
1324 Default: Enabled.
1325
1326 Zone Name
1327 When given, collect detailed information about the given zone
1328 in the view. The information collected if very similar to the
1329 global ServerStats information (see above).
1330
1331 You can repeat this option to collect detailed information
1332 about multiple zones.
1333
1334 By default no detailed zone information is collected.
1335
1336 Plugin "buddyinfo"
1337 The buddyinfo plugin collects information by reading "/proc/buddyinfo".
1338 This file contains information about the number of available contagious
1339 physical pages at the moment.
1340
1341 Zone ZoneName
1342 Zone to collect info about. Will collect all zones by default.
1343
1344 Plugin "capabilities"
1345 The "capabilities" plugin collects selected static platform data using
1346 dmidecode and expose it through micro embedded webserver. The data
1347 returned by plugin is in json format.
1348
1349 Synopsis:
1350
1351 <Plugin capabilities>
1352 Host "localhost"
1353 Port "9104"
1354 </Plugin>
1355
1356 Available configuration options for the "capabilities" plugin:
1357
1358 Host Hostname
1359 Bind to the hostname / address Host. By default, the plugin will
1360 bind to the "any" address, i.e. accept packets sent to any of the
1361 hosts addresses.
1362
1363 This option is supported only for libmicrohttpd newer than 0.9.0.
1364
1365 Port Port
1366 Port the embedded webserver should listen on. Defaults to 9104.
1367
1368 Plugin "ceph"
1369 The ceph plugin collects values from JSON data to be parsed by libyajl
1370 (<https://lloyd.github.io/yajl/>) retrieved from ceph daemon admin
1371 sockets.
1372
1373 A separate Daemon block must be configured for each ceph daemon to be
1374 monitored. The following example will read daemon statistics from four
1375 separate ceph daemons running on the same device (two OSDs, one MON,
1376 one MDS) :
1377
1378 <Plugin ceph>
1379 LongRunAvgLatency false
1380 ConvertSpecialMetricTypes true
1381 <Daemon "osd.0">
1382 SocketPath "/var/run/ceph/ceph-osd.0.asok"
1383 </Daemon>
1384 <Daemon "osd.1">
1385 SocketPath "/var/run/ceph/ceph-osd.1.asok"
1386 </Daemon>
1387 <Daemon "mon.a">
1388 SocketPath "/var/run/ceph/ceph-mon.ceph1.asok"
1389 </Daemon>
1390 <Daemon "mds.a">
1391 SocketPath "/var/run/ceph/ceph-mds.ceph1.asok"
1392 </Daemon>
1393 </Plugin>
1394
1395 The ceph plugin accepts the following configuration options:
1396
1397 LongRunAvgLatency true|false
1398 If enabled, latency values(sum,count pairs) are calculated as the
1399 long run average - average since the ceph daemon was started = (sum
1400 / count). When disabled, latency values are calculated as the
1401 average since the last collection = (sum_now - sum_last) /
1402 (count_now - count_last).
1403
1404 Default: Disabled
1405
1406 ConvertSpecialMetricTypes true|false
1407 If enabled, special metrics (metrics that differ in type from
1408 similar counters) are converted to the type of those similar
1409 counters. This currently only applies to filestore.journal_wr_bytes
1410 which is a counter for OSD daemons. The ceph schema reports this
1411 metric type as a sum,count pair while similar counters are treated
1412 as derive types. When converted, the sum is used as the counter
1413 value and is treated as a derive type. When disabled, all metrics
1414 are treated as the types received from the ceph schema.
1415
1416 Default: Enabled
1417
1418 Each Daemon block must have a string argument for the plugin instance
1419 name. A SocketPath is also required for each Daemon block:
1420
1421 Daemon DaemonName
1422 Name to be used as the instance name for this daemon.
1423
1424 SocketPath SocketPath
1425 Specifies the path to the UNIX admin socket of the ceph daemon.
1426
1427 Plugin "cgroups"
1428 This plugin collects the CPU user/system time for each cgroup by
1429 reading the cpuacct.stat files in the first cpuacct-mountpoint
1430 (typically /sys/fs/cgroup/cpu.cpuacct on machines using systemd).
1431
1432 CGroup Directory
1433 Select cgroup based on the name. Whether only matching cgroups are
1434 collected or if they are ignored is controlled by the
1435 IgnoreSelected option; see below.
1436
1437 See /"IGNORELISTS" for details.
1438
1439 IgnoreSelected true|false
1440 Invert the selection: If set to true, all cgroups except the ones
1441 that match any one of the criteria are collected. By default only
1442 selected cgroups are collected if a selection is made. If no
1443 selection is configured at all, all cgroups are selected.
1444
1445 Plugin "check_uptime"
1446 The check_uptime plugin designed to check and notify about host or
1447 service status based on uptime metric.
1448
1449 When new metric of uptime type appears in cache, OK notification is
1450 sent. When new value for metric is less than previous value, WARNING
1451 notification is sent about host/service restart. When no new updates
1452 comes for metric and cache entry expires, then FAILURE notification is
1453 sent about unreachable host or service.
1454
1455 By default (when no explicit configuration), plugin checks for uptime
1456 metric.
1457
1458 Synopsis:
1459
1460 <Plugin "check_uptime">
1461 Type "uptime"
1462 Type "my_uptime_type"
1463 </Plugin>
1464
1465 Type Type
1466 Metric type to check for status/values. The type should consist
1467 single GAUGE data source.
1468
1469 Plugin "chrony"
1470 The "chrony" plugin collects ntp data from a chronyd server, such as
1471 clock skew and per-peer stratum.
1472
1473 For talking to chronyd, it mimics what the chronyc control program does
1474 on the wire.
1475
1476 Available configuration options for the "chrony" plugin:
1477
1478 Host Hostname
1479 Hostname of the host running chronyd. Defaults to localhost.
1480
1481 Port Port
1482 UDP-Port to connect to. Defaults to 323.
1483
1484 Timeout Timeout
1485 Connection timeout in seconds. Defaults to 2.
1486
1487 Plugin Connectivity
1488 connectivity - Documentation of collectd's "connectivity plugin"
1489
1490 LoadPlugin connectivity
1491 # ...
1492 <Plugin connectivity>
1493 Interface eth0
1494 </Plugin>
1495
1496 The "connectivity plugin" queries interface status using netlink (man 7
1497 netlink) which provides information about network interfaces via the
1498 NETLINK_ROUTE family (man 7 rtnetlink). The plugin translates the value
1499 it receives to collectd's internal format and, depending on the write
1500 plugins you have loaded, it may be written to disk or submitted to
1501 another instance. The plugin listens to interfaces enumerated within
1502 the plugin configuration (see below). If no interfaces are listed,
1503 then the default is for all interfaces to be monitored.
1504
1505 This example shows "connectivity plugin" monitoring all interfaces.
1506 LoadPlugin connectivity <Plugin connectivity> </Plugin>
1507
1508 This example shows "connectivity plugin" monitoring 2 interfaces,
1509 "eth0" and "eth1". LoadPlugin connectivity <Plugin connectivity>
1510 Interface eth0
1511 Interface eth1 </Plugin>
1512
1513 This example shows "connectivity plugin" monitoring all interfaces
1514 except "eth1". LoadPlugin connectivity <Plugin connectivity>
1515 Interface eth1
1516 IgnoreSelected true </Plugin>
1517
1518 Interface interface_name
1519 interface(s) to monitor connect to.
1520
1521 Plugin "conntrack"
1522 This plugin collects IP conntrack statistics.
1523
1524 OldFiles
1525 Assume the conntrack_count and conntrack_max files to be found in
1526 /proc/sys/net/ipv4/netfilter instead of /proc/sys/net/netfilter/.
1527
1528 Plugin "cpu"
1529 The CPU plugin collects CPU usage metrics. By default, CPU usage is
1530 reported as Jiffies, using the "cpu" type. Two aggregations are
1531 available:
1532
1533 · Sum, per-state, over all CPUs installed in the system; and
1534
1535 · Sum, per-CPU, over all non-idle states of a CPU, creating an
1536 "active" state.
1537
1538 The two aggregations can be combined, leading to collectd only emitting
1539 a single "active" metric for the entire system. As soon as one of these
1540 aggregations (or both) is enabled, the cpu plugin will report a
1541 percentage, rather than Jiffies. In addition, you can request
1542 individual, per-state, per-CPU metrics to be reported as percentage.
1543
1544 The following configuration options are available:
1545
1546 ReportByState true|false
1547 When set to true, the default, reports per-state metrics, e.g.
1548 "system", "user" and "idle". When set to false, aggregates (sums)
1549 all non-idle states into one "active" metric.
1550
1551 ReportByCpu true|false
1552 When set to true, the default, reports per-CPU (per-core) metrics.
1553 When set to false, instead of reporting metrics for individual
1554 CPUs, only a global sum of CPU states is emitted.
1555
1556 ValuesPercentage false|true
1557 This option is only considered when both, ReportByCpu and
1558 ReportByState are set to true. In this case, by default, metrics
1559 will be reported as Jiffies. By setting this option to true, you
1560 can request percentage values in the un-aggregated (per-CPU, per-
1561 state) mode as well.
1562
1563 ReportNumCpu false|true
1564 When set to true, reports the number of available CPUs. Defaults
1565 to false.
1566
1567 ReportGuestState false|true
1568 When set to true, reports the "guest" and "guest_nice" CPU states.
1569 Defaults to false.
1570
1571 SubtractGuestState false|true
1572 This option is only considered when ReportGuestState is set to
1573 true. "guest" and "guest_nice" are included in respectively "user"
1574 and "nice". If set to true, "guest" will be subtracted from "user"
1575 and "guest_nice" will be subtracted from "nice". Defaults to true.
1576
1577 Plugin "cpufreq"
1578 This plugin is available on Linux and FreeBSD only. It doesn't have
1579 any options. On Linux it reads
1580 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq (for the first
1581 CPU installed) to get the current CPU frequency. If this file does not
1582 exist make sure cpufreqd (<http://cpufreqd.sourceforge.net/>) or a
1583 similar tool is installed and an "cpu governor" (that's a kernel
1584 module) is loaded.
1585
1586 On Linux, if the system has the cpufreq-stats kernel module loaded,
1587 this plugin reports the rate of p-state (cpu frequency) transitions and
1588 the percentage of time spent in each p-state.
1589
1590 On FreeBSD it does a sysctl dev.cpu.0.freq and submits this as instance
1591 0. At this time FreeBSD only has one frequency setting for all cores.
1592 See the BUGS section in the FreeBSD man page for cpufreq(4) for more
1593 details.
1594
1595 On FreeBSD the plugin checks the success of sysctl dev.cpu.0.freq and
1596 unregisters the plugin when this fails. A message will be logged to
1597 indicate this.
1598
1599 Plugin "cpusleep"
1600 This plugin doesn't have any options. It reads CLOCK_BOOTTIME and
1601 CLOCK_MONOTONIC and reports the difference between these clocks. Since
1602 BOOTTIME clock increments while device is suspended and MONOTONIC clock
1603 does not, the derivative of the difference between these clocks gives
1604 the relative amount of time the device has spent in suspend state. The
1605 recorded value is in milliseconds of sleep per seconds of wall clock.
1606
1607 Plugin "csv"
1608 DataDir Directory
1609 Set the directory to store CSV-files under. Per default CSV-files
1610 are generated beneath the daemon's working directory, i. e. the
1611 BaseDir. The special strings stdout and stderr can be used to
1612 write to the standard output and standard error channels,
1613 respectively. This, of course, only makes much sense when collectd
1614 is running in foreground- or non-daemon-mode.
1615
1616 StoreRates true|false
1617 If set to true, convert counter values to rates. If set to false
1618 (the default) counter values are stored as is, i. e. as an
1619 increasing integer number.
1620
1621 cURL Statistics
1622 All cURL-based plugins support collection of generic, request-based
1623 statistics. These are disabled by default and can be enabled
1624 selectively for each page or URL queried from the curl, curl_json, or
1625 curl_xml plugins. See the documentation of those plugins for specific
1626 information. This section describes the available metrics that can be
1627 configured for each plugin. All options are disabled by default.
1628
1629 See <http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html> for more
1630 details.
1631
1632 TotalTime true|false
1633 Total time of the transfer, including name resolving, TCP connect,
1634 etc.
1635
1636 NamelookupTime true|false
1637 Time it took from the start until name resolving was completed.
1638
1639 ConnectTime true|false
1640 Time it took from the start until the connect to the remote host
1641 (or proxy) was completed.
1642
1643 AppconnectTime true|false
1644 Time it took from the start until the SSL/SSH connect/handshake to
1645 the remote host was completed.
1646
1647 PretransferTime true|false
1648 Time it took from the start until just before the transfer begins.
1649
1650 StarttransferTime true|false
1651 Time it took from the start until the first byte was received.
1652
1653 RedirectTime true|false
1654 Time it took for all redirection steps include name lookup,
1655 connect, pre-transfer and transfer before final transaction was
1656 started.
1657
1658 RedirectCount true|false
1659 The total number of redirections that were actually followed.
1660
1661 SizeUpload true|false
1662 The total amount of bytes that were uploaded.
1663
1664 SizeDownload true|false
1665 The total amount of bytes that were downloaded.
1666
1667 SpeedDownload true|false
1668 The average download speed that curl measured for the complete
1669 download.
1670
1671 SpeedUpload true|false
1672 The average upload speed that curl measured for the complete
1673 upload.
1674
1675 HeaderSize true|false
1676 The total size of all the headers received.
1677
1678 RequestSize true|false
1679 The total size of the issued requests.
1680
1681 ContentLengthDownload true|false
1682 The content-length of the download.
1683
1684 ContentLengthUpload true|false
1685 The specified size of the upload.
1686
1687 NumConnects true|false
1688 The number of new connections that were created to achieve the
1689 transfer.
1690
1691 Plugin "curl"
1692 The curl plugin uses the libcurl (<http://curl.haxx.se/>) to read web
1693 pages and the match infrastructure (the same code used by the tail
1694 plugin) to use regular expressions with the received data.
1695
1696 The following example will read the current value of AMD stock from
1697 Google's finance page and dispatch the value to collectd.
1698
1699 <Plugin curl>
1700 <Page "stock_quotes">
1701 Plugin "quotes"
1702 URL "http://finance.google.com/finance?q=NYSE%3AAMD"
1703 AddressFamily "any"
1704 User "foo"
1705 Password "bar"
1706 Digest false
1707 VerifyPeer true
1708 VerifyHost true
1709 CACert "/path/to/ca.crt"
1710 Header "X-Custom-Header: foobar"
1711 Post "foo=bar"
1712
1713 MeasureResponseTime false
1714 MeasureResponseCode false
1715
1716 <Match>
1717 Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
1718 DSType "GaugeAverage"
1719 # Note: `stock_value' is not a standard type.
1720 Type "stock_value"
1721 Instance "AMD"
1722 </Match>
1723 </Page>
1724 </Plugin>
1725
1726 In the Plugin block, there may be one or more Page blocks, each
1727 defining a web page and one or more "matches" to be performed on the
1728 returned data. The string argument to the Page block is used as plugin
1729 instance.
1730
1731 The following options are valid within Page blocks:
1732
1733 Plugin Plugin
1734 Use Plugin as the plugin name when submitting values. Defaults to
1735 "curl".
1736
1737 URL URL
1738 URL of the web site to retrieve. Since a regular expression will be
1739 used to extract information from this data, non-binary data is a
1740 big plus here ;)
1741
1742 AddressFamily Type
1743 IP version to resolve URL to. Useful in cases when hostname in URL
1744 resolves to both IPv4 and IPv6 addresses, and you are interested in
1745 using one of them specifically. Use "ipv4" to enforce IPv4, "ipv6"
1746 to enforce IPv6, or "any" to keep the default behavior of resolving
1747 addresses to all IP versions your system allows. If "libcurl" is
1748 compiled without IPv6 support, using "ipv6" will result in a
1749 warning and fallback to "any". If "Type" cannot be parsed, a
1750 warning will be printed and the whole Page block will be ignored.
1751
1752 User Name
1753 Username to use if authorization is required to read the page.
1754
1755 Password Password
1756 Password to use if authorization is required to read the page.
1757
1758 Digest true|false
1759 Enable HTTP digest authentication.
1760
1761 VerifyPeer true|false
1762 Enable or disable peer SSL certificate verification. See
1763 <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
1764 default.
1765
1766 VerifyHost true|false
1767 Enable or disable peer host name verification. If enabled, the
1768 plugin checks if the "Common Name" or a "Subject Alternate Name"
1769 field of the SSL certificate matches the host name provided by the
1770 URL option. If this identity check fails, the connection is
1771 aborted. Obviously, only works when connecting to a SSL enabled
1772 server. Enabled by default.
1773
1774 CACert file
1775 File that holds one or more SSL certificates. If you want to use
1776 HTTPS you will possibly need this option. What CA certificates come
1777 bundled with "libcurl" and are checked by default depends on the
1778 distribution you use.
1779
1780 Header Header
1781 A HTTP header to add to the request. Multiple headers are added if
1782 this option is specified more than once.
1783
1784 Post Body
1785 Specifies that the HTTP operation should be a POST instead of a
1786 GET. The complete data to be posted is given as the argument. This
1787 option will usually need to be accompanied by a Header option to
1788 set an appropriate "Content-Type" for the post body (e.g. to
1789 "application/x-www-form-urlencoded").
1790
1791 MeasureResponseTime true|false
1792 Measure response time for the request. If this setting is enabled,
1793 Match blocks (see below) are optional. Disabled by default.
1794
1795 Beware that requests will get aborted if they take too long to
1796 complete. Adjust Timeout accordingly if you expect
1797 MeasureResponseTime to report such slow requests.
1798
1799 This option is similar to enabling the TotalTime statistic but it's
1800 measured by collectd instead of cURL.
1801
1802 MeasureResponseCode true|false
1803 Measure response code for the request. If this setting is enabled,
1804 Match blocks (see below) are optional. Disabled by default.
1805
1806 <Statistics>
1807 One Statistics block can be used to specify cURL statistics to be
1808 collected for each request to the remote web site. See the section
1809 "cURL Statistics" above for details. If this setting is enabled,
1810 Match blocks (see below) are optional.
1811
1812 <Match>
1813 One or more Match blocks that define how to match information in
1814 the data returned by "libcurl". The "curl" plugin uses the same
1815 infrastructure that's used by the "tail" plugin, so please see the
1816 documentation of the "tail" plugin below on how matches are
1817 defined. If the MeasureResponseTime or MeasureResponseCode options
1818 are set to true, Match blocks are optional.
1819
1820 Interval Interval
1821 Sets the interval (in seconds) in which the values will be
1822 collected from this URL. By default the global Interval setting
1823 will be used.
1824
1825 Timeout Milliseconds
1826 The Timeout option sets the overall timeout for HTTP requests to
1827 URL, in milliseconds. By default, the configured Interval is used
1828 to set the timeout. Prior to version 5.5.0, there was no timeout
1829 and requests could hang indefinitely. This legacy behaviour can be
1830 achieved by setting the value of Timeout to 0.
1831
1832 If Timeout is 0 or bigger than the Interval, keep in mind that each
1833 slow network connection will stall one read thread. Adjust the
1834 ReadThreads global setting accordingly to prevent this from
1835 blocking other plugins.
1836
1837 Plugin "curl_json"
1838 The curl_json plugin collects values from JSON data to be parsed by
1839 libyajl (<https://lloyd.github.io/yajl/>) retrieved via either libcurl
1840 (<http://curl.haxx.se/>) or read directly from a unix socket. The
1841 former can be used, for example, to collect values from CouchDB
1842 documents (which are stored JSON notation), and the latter to collect
1843 values from a uWSGI stats socket.
1844
1845 The following example will collect several values from the built-in
1846 "_stats" runtime statistics module of CouchDB
1847 (<http://wiki.apache.org/couchdb/Runtime_Statistics>).
1848
1849 <Plugin curl_json>
1850 <URL "http://localhost:5984/_stats">
1851 AddressFamily "any"
1852 Instance "httpd"
1853 <Key "httpd/requests/count">
1854 Type "http_requests"
1855 </Key>
1856
1857 <Key "httpd_request_methods/*/count">
1858 Type "http_request_methods"
1859 </Key>
1860
1861 <Key "httpd_status_codes/*/count">
1862 Type "http_response_codes"
1863 </Key>
1864 </URL>
1865 </Plugin>
1866
1867 This example will collect data directly from a uWSGI "Stats Server"
1868 socket.
1869
1870 <Plugin curl_json>
1871 <Sock "/var/run/uwsgi.stats.sock">
1872 Instance "uwsgi"
1873 <Key "workers/*/requests">
1874 Type "http_requests"
1875 </Key>
1876
1877 <Key "workers/*/apps/*/requests">
1878 Type "http_requests"
1879 </Key>
1880 </Sock>
1881 </Plugin>
1882
1883 In the Plugin block, there may be one or more URL blocks, each defining
1884 a URL to be fetched via HTTP (using libcurl) or Sock blocks defining a
1885 unix socket to read JSON from directly. Each of these blocks may have
1886 one or more Key blocks.
1887
1888 The Key string argument must be in a path format. Each component is
1889 used to match the key from a JSON map or the index of an JSON array. If
1890 a path component of a Key is a * wildcard, the values for all map keys
1891 or array indices will be collectd.
1892
1893 The following options are valid within URL blocks:
1894
1895 AddressFamily Type
1896 IP version to resolve URL to. Useful in cases when hostname in URL
1897 resolves to both IPv4 and IPv6 addresses, and you are interested in
1898 using one of them specifically. Use "ipv4" to enforce IPv4, "ipv6"
1899 to enforce IPv6, or "any" to keep the default behavior of resolving
1900 addresses to all IP versions your system allows. If "libcurl" is
1901 compiled without IPv6 support, using "ipv6" will result in a
1902 warning and fallback to "any". If "Type" cannot be parsed, a
1903 warning will be printed and the whole URL block will be ignored.
1904
1905 Host Name
1906 Use Name as the host name when submitting values. Defaults to the
1907 global host name setting.
1908
1909 Plugin Plugin
1910 Use Plugin as the plugin name when submitting values. Defaults to
1911 "curl_json".
1912
1913 Instance Instance
1914 Sets the plugin instance to Instance.
1915
1916 Interval Interval
1917 Sets the interval (in seconds) in which the values will be
1918 collected from this URL. By default the global Interval setting
1919 will be used.
1920
1921 User Name
1922 Password Password
1923 Digest true|false
1924 VerifyPeer true|false
1925 VerifyHost true|false
1926 CACert file
1927 Header Header
1928 Post Body
1929 Timeout Milliseconds
1930 These options behave exactly equivalent to the appropriate options
1931 of the cURL plugin. Please see there for a detailed description.
1932
1933 <Statistics>
1934 One Statistics block can be used to specify cURL statistics to be
1935 collected for each request to the remote URL. See the section "cURL
1936 Statistics" above for details.
1937
1938 The following options are valid within Key blocks:
1939
1940 Type Type
1941 Sets the type used to dispatch the values to the daemon. Detailed
1942 information about types and their configuration can be found in
1943 types.db(5). This option is mandatory.
1944
1945 Instance Instance
1946 Type-instance to use. Defaults to the current map key or current
1947 string array element value.
1948
1949 Plugin "curl_xml"
1950 The curl_xml plugin uses libcurl (<http://curl.haxx.se/>) and libxml2
1951 (<http://xmlsoft.org/>) to retrieve XML data via cURL.
1952
1953 <Plugin "curl_xml">
1954 <URL "http://localhost/stats.xml">
1955 AddressFamily "any"
1956 Host "my_host"
1957 #Plugin "curl_xml"
1958 Instance "some_instance"
1959 User "collectd"
1960 Password "thaiNg0I"
1961 VerifyPeer true
1962 VerifyHost true
1963 CACert "/path/to/ca.crt"
1964 Header "X-Custom-Header: foobar"
1965 Post "foo=bar"
1966
1967 <XPath "table[@id=\"magic_level\"]/tr">
1968 Type "magic_level"
1969 #InstancePrefix "prefix-"
1970 InstanceFrom "td[1]"
1971 #PluginInstanceFrom "td[1]"
1972 ValuesFrom "td[2]/span[@class=\"level\"]"
1973 </XPath>
1974 </URL>
1975 </Plugin>
1976
1977 In the Plugin block, there may be one or more URL blocks, each defining
1978 a URL to be fetched using libcurl. Within each URL block there are
1979 options which specify the connection parameters, for example
1980 authentication information, and one or more XPath blocks.
1981
1982 Each XPath block specifies how to get one type of information. The
1983 string argument must be a valid XPath expression which returns a list
1984 of "base elements". One value is dispatched for each "base element".
1985 The type instance and values are looked up using further XPath
1986 expressions that should be relative to the base element.
1987
1988 Within the URL block the following options are accepted:
1989
1990 AddressFamily Type
1991 IP version to resolve URL to. Useful in cases when hostname in URL
1992 resolves to both IPv4 and IPv6 addresses, and you are interested in
1993 using one of them specifically. Use "ipv4" to enforce IPv4, "ipv6"
1994 to enforce IPv6, or "any" to keep the default behavior of resolving
1995 addresses to all IP versions your system allows. If "libcurl" is
1996 compiled without IPv6 support, using "ipv6" will result in a
1997 warning and fallback to "any". If "Type" cannot be parsed, a
1998 warning will be printed and the whole URL block will be ignored.
1999
2000 Host Name
2001 Use Name as the host name when submitting values. Defaults to the
2002 global host name setting.
2003
2004 Plugin Plugin
2005 Use Plugin as the plugin name when submitting values. Defaults to
2006 'curl_xml'.
2007
2008 Instance Instance
2009 Use Instance as the plugin instance when submitting values. May be
2010 overridden by PluginInstanceFrom option inside XPath blocks.
2011 Defaults to an empty string (no plugin instance).
2012
2013 Interval Interval
2014 Sets the interval (in seconds) in which the values will be
2015 collected from this URL. By default the global Interval setting
2016 will be used.
2017
2018 Namespace Prefix URL
2019 If an XPath expression references namespaces, they must be
2020 specified with this option. Prefix is the "namespace prefix" used
2021 in the XML document. URL is the "namespace name", an URI reference
2022 uniquely identifying the namespace. The option can be repeated to
2023 register multiple namespaces.
2024
2025 Examples:
2026
2027 Namespace "s" "http://schemas.xmlsoap.org/soap/envelope/"
2028 Namespace "m" "http://www.w3.org/1998/Math/MathML"
2029
2030 User User
2031 Password Password
2032 Digest true|false
2033 VerifyPeer true|false
2034 VerifyHost true|false
2035 CACert CA Cert File
2036 Header Header
2037 Post Body
2038 Timeout Milliseconds
2039 These options behave exactly equivalent to the appropriate options
2040 of the cURL plugin. Please see there for a detailed description.
2041
2042 <Statistics>
2043 One Statistics block can be used to specify cURL statistics to be
2044 collected for each request to the remote URL. See the section "cURL
2045 Statistics" above for details.
2046
2047 <XPath XPath-expression>
2048 Within each URL block, there must be one or more XPath blocks. Each
2049 XPath block specifies how to get one type of information. The
2050 string argument must be a valid XPath expression which returns a
2051 list of "base elements". One value is dispatched for each "base
2052 element".
2053
2054 Within the XPath block the following options are accepted:
2055
2056 Type Type
2057 Specifies the Type used for submitting patches. This determines
2058 the number of values that are required / expected and whether
2059 the strings are parsed as signed or unsigned integer or as
2060 double values. See types.db(5) for details. This option is
2061 required.
2062
2063 InstancePrefix InstancePrefix
2064 Prefix the type instance with InstancePrefix. The values are
2065 simply concatenated together without any separator. This
2066 option is optional.
2067
2068 InstanceFrom InstanceFrom
2069 Specifies a XPath expression to use for determining the type
2070 instance. The XPath expression must return exactly one element.
2071 The element's value is then used as type instance, possibly
2072 prefixed with InstancePrefix (see above).
2073
2074 PluginInstanceFrom PluginInstanceFrom
2075 Specifies a XPath expression to use for determining the plugin
2076 instance. The XPath expression must return exactly one element.
2077 The element's value is then used as plugin instance.
2078
2079 If the "base XPath expression" (the argument to the XPath block)
2080 returns exactly one argument, then InstanceFrom and
2081 PluginInstanceFrom may be omitted. Otherwise, at least one of
2082 InstanceFrom or PluginInstanceFrom is required.
2083
2084 ValuesFrom ValuesFrom [ValuesFrom ...]
2085 Specifies one or more XPath expression to use for reading the
2086 values. The number of XPath expressions must match the number
2087 of data sources in the type specified with Type (see above).
2088 Each XPath expression must return exactly one element. The
2089 element's value is then parsed as a number and used as value
2090 for the appropriate value in the value list dispatched to the
2091 daemon. This option is required.
2092
2093 Plugin "dbi"
2094 This plugin uses the dbi library (<http://libdbi.sourceforge.net/>) to
2095 connect to various databases, execute SQL statements and read back the
2096 results. dbi is an acronym for "database interface" in case you were
2097 wondering about the name. You can configure how each column is to be
2098 interpreted and the plugin will generate one or more data sets from
2099 each row returned according to these rules.
2100
2101 Because the plugin is very generic, the configuration is a little more
2102 complex than those of other plugins. It usually looks something like
2103 this:
2104
2105 <Plugin dbi>
2106 <Query "out_of_stock">
2107 Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
2108 # Use with MySQL 5.0.0 or later
2109 MinVersion 50000
2110 <Result>
2111 Type "gauge"
2112 InstancePrefix "out_of_stock"
2113 InstancesFrom "category"
2114 ValuesFrom "value"
2115 </Result>
2116 </Query>
2117 <Database "product_information">
2118 #Plugin "warehouse"
2119 Driver "mysql"
2120 Interval 120
2121 DriverOption "host" "localhost"
2122 DriverOption "username" "collectd"
2123 DriverOption "password" "aZo6daiw"
2124 DriverOption "dbname" "prod_info"
2125 SelectDB "prod_info"
2126 Query "out_of_stock"
2127 </Database>
2128 </Plugin>
2129
2130 The configuration above defines one query with one result and one
2131 database. The query is then linked to the database with the Query
2132 option within the <Database> block. You can have any number of queries
2133 and databases and you can also use the Include statement to split up
2134 the configuration file in multiple, smaller files. However, the <Query>
2135 block must precede the <Database> blocks, because the file is
2136 interpreted from top to bottom!
2137
2138 The following is a complete list of options:
2139
2140 Query blocks
2141
2142 Query blocks define SQL statements and how the returned data should be
2143 interpreted. They are identified by the name that is given in the
2144 opening line of the block. Thus the name needs to be unique. Other than
2145 that, the name is not used in collectd.
2146
2147 In each Query block, there is one or more Result blocks. Result blocks
2148 define which column holds which value or instance information. You can
2149 use multiple Result blocks to create multiple values from one returned
2150 row. This is especially useful, when queries take a long time and
2151 sending almost the same query again and again is not desirable.
2152
2153 Example:
2154
2155 <Query "environment">
2156 Statement "select station, temperature, humidity from environment"
2157 <Result>
2158 Type "temperature"
2159 # InstancePrefix "foo"
2160 InstancesFrom "station"
2161 ValuesFrom "temperature"
2162 </Result>
2163 <Result>
2164 Type "humidity"
2165 InstancesFrom "station"
2166 ValuesFrom "humidity"
2167 </Result>
2168 </Query>
2169
2170 The following options are accepted:
2171
2172 Statement SQL
2173 Sets the statement that should be executed on the server. This is
2174 not interpreted by collectd, but simply passed to the database
2175 server. Therefore, the SQL dialect that's used depends on the
2176 server collectd is connected to.
2177
2178 The query has to return at least two columns, one for the instance
2179 and one value. You cannot omit the instance, even if the statement
2180 is guaranteed to always return exactly one line. In that case, you
2181 can usually specify something like this:
2182
2183 Statement "SELECT \"instance\", COUNT(*) AS value FROM table"
2184
2185 (That works with MySQL but may not be valid SQL according to the
2186 spec. If you use a more strict database server, you may have to
2187 select from a dummy table or something.)
2188
2189 Please note that some databases, for example Oracle, will fail if
2190 you include a semicolon at the end of the statement.
2191
2192 MinVersion Version
2193 MaxVersion Value
2194 Only use this query for the specified database version. You can use
2195 these options to provide multiple queries with the same name but
2196 with a slightly different syntax. The plugin will use only those
2197 queries, where the specified minimum and maximum versions fit the
2198 version of the database in use.
2199
2200 The database version is determined by
2201 "dbi_conn_get_engine_version", see the libdbi documentation
2202 <http://libdbi.sourceforge.net/docs/programmers-guide/reference-
2203 conn.html#DBI-CONN-GET-ENGINE-VERSION> for details. Basically, each
2204 part of the version is assumed to be in the range from 00 to 99 and
2205 all dots are removed. So version "4.1.2" becomes "40102", version
2206 "5.0.42" becomes "50042".
2207
2208 Warning: The plugin will use all matching queries, so if you
2209 specify multiple queries with the same name and overlapping ranges,
2210 weird stuff will happen. Don't to it! A valid example would be
2211 something along these lines:
2212
2213 MinVersion 40000
2214 MaxVersion 49999
2215 ...
2216 MinVersion 50000
2217 MaxVersion 50099
2218 ...
2219 MinVersion 50100
2220 # No maximum
2221
2222 In the above example, there are three ranges that don't overlap.
2223 The last one goes from version "5.1.0" to infinity, meaning "all
2224 later versions". Versions before "4.0.0" are not specified.
2225
2226 Type Type
2227 The type that's used for each line returned. See types.db(5) for
2228 more details on how types are defined. In short: A type is a
2229 predefined layout of data and the number of values and type of
2230 values has to match the type definition.
2231
2232 If you specify "temperature" here, you need exactly one gauge
2233 column. If you specify "if_octets", you will need two counter
2234 columns. See the ValuesFrom setting below.
2235
2236 There must be exactly one Type option inside each Result block.
2237
2238 InstancePrefix prefix
2239 Prepends prefix to the type instance. If InstancesFrom (see below)
2240 is not given, the string is simply copied. If InstancesFrom is
2241 given, prefix and all strings returned in the appropriate columns
2242 are concatenated together, separated by dashes ("-").
2243
2244 InstancesFrom column0 [column1 ...]
2245 Specifies the columns whose values will be used to create the
2246 "type-instance" for each row. If you specify more than one column,
2247 the value of all columns will be joined together with dashes ("-")
2248 as separation characters.
2249
2250 The plugin itself does not check whether or not all built instances
2251 are different. It's your responsibility to assure that each is
2252 unique. This is especially true, if you do not specify
2253 InstancesFrom: You have to make sure that only one row is returned
2254 in this case.
2255
2256 If neither InstancePrefix nor InstancesFrom is given, the type-
2257 instance will be empty.
2258
2259 ValuesFrom column0 [column1 ...]
2260 Names the columns whose content is used as the actual data for the
2261 data sets that are dispatched to the daemon. How many such columns
2262 you need is determined by the Type setting above. If you specify
2263 too many or not enough columns, the plugin will complain about that
2264 and no data will be submitted to the daemon.
2265
2266 The actual data type in the columns is not that important. The
2267 plugin will automatically cast the values to the right type if it
2268 know how to do that. So it should be able to handle integer an
2269 floating point types, as well as strings (if they include a number
2270 at the beginning).
2271
2272 There must be at least one ValuesFrom option inside each Result
2273 block.
2274
2275 MetadataFrom [column0 column1 ...]
2276 Names the columns whose content is used as metadata for the data
2277 sets that are dispatched to the daemon.
2278
2279 The actual data type in the columns is not that important. The
2280 plugin will automatically cast the values to the right type if it
2281 know how to do that. So it should be able to handle integer an
2282 floating point types, as well as strings (if they include a number
2283 at the beginning).
2284
2285 Database blocks
2286
2287 Database blocks define a connection to a database and which queries
2288 should be sent to that database. Since the used "dbi" library can
2289 handle a wide variety of databases, the configuration is very generic.
2290 If in doubt, refer to libdbi's documentation - we stick as close to the
2291 terminology used there.
2292
2293 Each database needs a "name" as string argument in the starting tag of
2294 the block. This name will be used as "PluginInstance" in the values
2295 submitted to the daemon. Other than that, that name is not used.
2296
2297 Plugin Plugin
2298 Use Plugin as the plugin name when submitting query results from
2299 this Database. Defaults to "dbi".
2300
2301 Interval Interval
2302 Sets the interval (in seconds) in which the values will be
2303 collected from this database. By default the global Interval
2304 setting will be used.
2305
2306 Driver Driver
2307 Specifies the driver to use to connect to the database. In many
2308 cases those drivers are named after the database they can connect
2309 to, but this is not a technical necessity. These drivers are
2310 sometimes referred to as "DBD", DataBase Driver, and some
2311 distributions ship them in separate packages. Drivers for the "dbi"
2312 library are developed by the libdbi-drivers project at
2313 <http://libdbi-drivers.sourceforge.net/>.
2314
2315 You need to give the driver name as expected by the "dbi" library
2316 here. You should be able to find that in the documentation for each
2317 driver. If you mistype the driver name, the plugin will dump a list
2318 of all known driver names to the log.
2319
2320 DriverOption Key Value
2321 Sets driver-specific options. What option a driver supports can be
2322 found in the documentation for each driver, somewhere at
2323 <http://libdbi-drivers.sourceforge.net/>. However, the options
2324 "host", "username", "password", and "dbname" seem to be de facto
2325 standards.
2326
2327 DBDs can register two types of options: String options and numeric
2328 options. The plugin will use the "dbi_conn_set_option" function
2329 when the configuration provides a string and the
2330 "dbi_conn_require_option_numeric" function when the configuration
2331 provides a number. So these two lines will actually result in
2332 different calls being used:
2333
2334 DriverOption "Port" 1234 # numeric
2335 DriverOption "Port" "1234" # string
2336
2337 Unfortunately, drivers are not too keen to report errors when an
2338 unknown option is passed to them, so invalid settings here may go
2339 unnoticed. This is not the plugin's fault, it will report errors if
2340 it gets them from the library / the driver. If a driver complains
2341 about an option, the plugin will dump a complete list of all
2342 options understood by that driver to the log. There is no way to
2343 programmatically find out if an option expects a string or a
2344 numeric argument, so you will have to refer to the appropriate
2345 DBD's documentation to find this out. Sorry.
2346
2347 SelectDB Database
2348 In some cases, the database name you connect with is not the
2349 database name you want to use for querying data. If this option is
2350 set, the plugin will "select" (switch to) that database after the
2351 connection is established.
2352
2353 Query QueryName
2354 Associates the query named QueryName with this database connection.
2355 The query needs to be defined before this statement, i. e. all
2356 query blocks you want to refer to must be placed above the database
2357 block you want to refer to them from.
2358
2359 Host Hostname
2360 Sets the host field of value lists to Hostname when dispatching
2361 values. Defaults to the global hostname setting.
2362
2363 Plugin "dcpmm"
2364 The dcpmm plugin will collect Intel(R) Optane(TM) DC Persistent Memory
2365 related performance statistics. The plugin requires root privileges to
2366 perform the statistics collection.
2367
2368 Synopsis:
2369
2370 <Plugin "dcpmm">
2371 Interval 10.0
2372 CollectHealth false
2373 CollectPerfMetrics true
2374 EnableDispatchAll false
2375 </Plugin>
2376
2377 Interval time in seconds
2378 Sets the Interval (in seconds) in which the values will be
2379 collected. Defaults to "global Interval" value. This will override
2380 the global Interval for dcpmm plugin. None of the other plugins
2381 will be affected.
2382
2383 CollectHealth true|false
2384 Collects health information. CollectHealth and CollectPerfMetrics
2385 cannot be true at the same time. Defaults to "false".
2386
2387 The health information metrics are the following:
2388 health_status Overall health summary (0: normal | 1:
2389 non-critical | 2: critical | 3: fatal).
2390 lifespan_remaining The moduleXs remaining life as a
2391 percentage value of factory expected life span.
2392 lifespan_used The moduleXs used life as a percentage
2393 value of factory expected life span.
2394 power_on_time The lifetime the DIMM has been powered
2395 on in seconds.
2396 uptime The current uptime of the DIMM for the
2397 current power cycle in seconds.
2398 last_shutdown_time The time the system was last shutdown.
2399 The time is represented in epoch (seconds).
2400 media_temperature The mediaXs current temperature in
2401 degree Celsius.
2402 controller_temperature The controllerXs current temperature
2403 in degree Celsius.
2404 max_media_temperature The mediaXs the highest temperature
2405 reported in degree Celsius.
2406 max_controller_temperature The controllerXs highest temperature
2407 reported in degree Celsius.
2408 tsc_cycles The number of tsc cycles during each
2409 interval.
2410 epoch The timestamp in seconds at which the
2411 metrics are collected from DCPMM DIMMs.
2412
2413 CollectPerfMetrics true|false
2414 Collects memory performance metrics. CollectHealth and
2415 CollectPerfMetrics cannot be true at the same time. Defaults to
2416 "true".
2417
2418 The memory performance metrics are the following:
2419 total_bytes_read Number of bytes transacted by the read
2420 operations.
2421 total_bytes_written Number of bytes transacted by the write
2422 operations.
2423 read_64B_ops_rcvd Number of read operations performed to the
2424 physical media in 64 bytes granularity.
2425 write_64B_ops_rcvd Number of write operations performed to the
2426 physical media in 64 bytes granularity.
2427 media_read_ops Number of read operations performed to the
2428 physical media.
2429 media_write_ops Number of write operations performed to the
2430 physical media.
2431 host_reads Number of read operations received from the
2432 CPU (memory controller).
2433 host_writes Number of write operations received from the
2434 CPU (memory controller).
2435 read_hit_ratio Measures the efficiency of the buffer in the
2436 read path. Range of 0.0 - 1.0.
2437 write_hit_ratio Measures the efficiency of the buffer in the
2438 write path. Range of 0.0 - 1.0.
2439 tsc_cycles The number of tsc cycles during each
2440 interval.
2441 epoch The timestamp in seconds at which the metrics
2442 are collected from DCPMM DIMMs.
2443
2444 EnableDispatchAll false
2445 This parameter helps to seamlessly enable simultaneous health and
2446 memory perf metrics collection in future. This is unused at the
2447 moment and must always be false.
2448
2449 Plugin "df"
2450 Device Device
2451 Select partitions based on the devicename.
2452
2453 See /"IGNORELISTS" for details.
2454
2455 MountPoint Directory
2456 Select partitions based on the mountpoint.
2457
2458 See /"IGNORELISTS" for details.
2459
2460 FSType FSType
2461 Select partitions based on the filesystem type.
2462
2463 See /"IGNORELISTS" for details.
2464
2465 IgnoreSelected true|false
2466 Invert the selection: If set to true, all partitions except the
2467 ones that match any one of the criteria are collected. By default
2468 only selected partitions are collected if a selection is made. If
2469 no selection is configured at all, all partitions are selected.
2470
2471 LogOnce false|false
2472 Only log stat() errors once.
2473
2474 ReportByDevice true|false
2475 Report using the device name rather than the mountpoint. i.e. with
2476 this false, (the default), it will report a disk as "root", but
2477 with it true, it will be "sda1" (or whichever).
2478
2479 ReportInodes true|false
2480 Enables or disables reporting of free, reserved and used inodes.
2481 Defaults to inode collection being disabled.
2482
2483 Enable this option if inodes are a scarce resource for you, usually
2484 because many small files are stored on the disk. This is a usual
2485 scenario for mail transfer agents and web caches.
2486
2487 ValuesAbsolute true|false
2488 Enables or disables reporting of free and used disk space in
2489 1K-blocks. Defaults to true.
2490
2491 ValuesPercentage false|true
2492 Enables or disables reporting of free and used disk space in
2493 percentage. Defaults to false.
2494
2495 This is useful for deploying collectd on the cloud, where machines
2496 with different disk size may exist. Then it is more practical to
2497 configure thresholds based on relative disk size.
2498
2499 Plugin "disk"
2500 The "disk" plugin collects information about the usage of physical
2501 disks and logical disks (partitions). Values collected are the number
2502 of octets written to and read from a disk or partition, the number of
2503 read/write operations issued to the disk and a rather complex "time" it
2504 took for these commands to be issued.
2505
2506 Using the following two options you can ignore some disks or configure
2507 the collection only of specific disks.
2508
2509 Disk Name
2510 Select the disk Name. Whether it is collected or ignored depends on
2511 the IgnoreSelected setting, see below. As with other plugins that
2512 use the daemon's ignorelist functionality, a string that starts and
2513 ends with a slash is interpreted as a regular expression. Examples:
2514
2515 Disk "sdd"
2516 Disk "/hda[34]/"
2517
2518 See /"IGNORELISTS" for details.
2519
2520 IgnoreSelected true|false
2521 Sets whether selected disks, i. e. the ones matches by any of the
2522 Disk statements, are ignored or if all other disks are ignored. The
2523 behavior (hopefully) is intuitive: If no Disk option is configured,
2524 all disks are collected. If at least one Disk option is given and
2525 no IgnoreSelected or set to false, only matching disks will be
2526 collected. If IgnoreSelected is set to true, all disks are
2527 collected except the ones matched.
2528
2529 UseBSDName true|false
2530 Whether to use the device's "BSD Name", on Mac OS X, instead of the
2531 default major/minor numbers. Requires collectd to be built with
2532 Apple's IOKitLib support.
2533
2534 UdevNameAttr Attribute
2535 Attempt to override disk instance name with the value of a
2536 specified udev attribute when built with libudev. If the attribute
2537 is not defined for the given device, the default name is used.
2538 Example:
2539
2540 UdevNameAttr "DM_NAME"
2541
2542 Plugin "dns"
2543 Interface Interface
2544 The dns plugin uses libpcap to capture dns traffic and analyzes it.
2545 This option sets the interface that should be used. If this option
2546 is not set, or set to "any", the plugin will try to get packets
2547 from all interfaces. This may not work on certain platforms, such
2548 as Mac OS X.
2549
2550 IgnoreSource IP-address
2551 Ignore packets that originate from this address.
2552
2553 SelectNumericQueryTypes true|false
2554 Enabled by default, collects unknown (and thus presented as numeric
2555 only) query types.
2556
2557 Plugin "dpdkevents"
2558 The dpdkevents plugin collects events from DPDK such as link status of
2559 network ports and Keep Alive status of DPDK logical cores. In order to
2560 get Keep Alive events following requirements must be met: - DPDK >=
2561 16.07 - support for Keep Alive implemented in DPDK application. More
2562 details can be found here:
2563 http://dpdk.org/doc/guides/sample_app_ug/keep_alive.html
2564
2565 Synopsis:
2566
2567 <Plugin "dpdkevents">
2568 <EAL>
2569 Coremask "0x1"
2570 MemoryChannels "4"
2571 FilePrefix "rte"
2572 </EAL>
2573 <Event "link_status">
2574 SendEventsOnUpdate true
2575 EnabledPortMask 0xffff
2576 PortName "interface1"
2577 PortName "interface2"
2578 SendNotification false
2579 </Event>
2580 <Event "keep_alive">
2581 SendEventsOnUpdate true
2582 LCoreMask "0xf"
2583 KeepAliveShmName "/dpdk_keepalive_shm_name"
2584 SendNotification false
2585 </Event>
2586 </Plugin>
2587
2588 Options:
2589
2590 The EAL block
2591
2592 Coremask Mask
2593 Memorychannels Channels
2594 Number of memory channels per processor socket.
2595
2596 FilePrefix File
2597 The prefix text used for hugepage filenames. The filename will be
2598 set to /var/run/.<prefix>_config where prefix is what is passed in
2599 by the user.
2600
2601 The Event block
2602
2603 The Event block defines configuration for specific event. It accepts a
2604 single argument which specifies the name of the event.
2605
2606 Link Status event
2607
2608 SendEventOnUpdate true|false
2609 If set to true link status value will be dispatched only when it is
2610 different from previously read value. This is an optional argument
2611 - default value is true.
2612
2613 EnabledPortMask Mask
2614 A hexidecimal bit mask of the DPDK ports which should be enabled. A
2615 mask of 0x0 means that all ports will be disabled. A bitmask of all
2616 F's means that all ports will be enabled. This is an optional
2617 argument - by default all ports are enabled.
2618
2619 PortName Name
2620 A string containing an optional name for the enabled DPDK ports.
2621 Each PortName option should contain only one port name; specify as
2622 many PortName options as desired. Default naming convention will be
2623 used if PortName is blank. If there are less PortName options than
2624 there are enabled ports, the default naming convention will be used
2625 for the additional ports.
2626
2627 SendNotification true|false
2628 If set to true, link status notifications are sent, instead of link
2629 status being collected as a statistic. This is an optional argument
2630 - default value is false.
2631
2632 Keep Alive event
2633
2634 SendEventOnUpdate true|false
2635 If set to true keep alive value will be dispatched only when it is
2636 different from previously read value. This is an optional argument
2637 - default value is true.
2638
2639 LCoreMask Mask
2640 An hexadecimal bit mask of the logical cores to monitor keep alive
2641 state.
2642
2643 KeepAliveShmName Name
2644 Shared memory name identifier that is used by secondary process to
2645 monitor the keep alive cores state.
2646
2647 SendNotification true|false
2648 If set to true, keep alive notifications are sent, instead of keep
2649 alive information being collected as a statistic. This is an
2650 optional argument - default value is false.
2651
2652 Plugin "dpdkstat"
2653 The dpdkstat plugin collects information about DPDK interfaces using
2654 the extended NIC stats API in DPDK.
2655
2656 Synopsis:
2657
2658 <Plugin "dpdkstat">
2659 <EAL>
2660 Coremask "0x4"
2661 MemoryChannels "4"
2662 FilePrefix "rte"
2663 SocketMemory "1024"
2664 LogLevel "7"
2665 RteDriverLibPath "/usr/lib/dpdk-pmd"
2666 </EAL>
2667 SharedMemObj "dpdk_collectd_stats_0"
2668 EnabledPortMask 0xffff
2669 PortName "interface1"
2670 PortName "interface2"
2671 </Plugin>
2672
2673 Options:
2674
2675 The EAL block
2676
2677 Coremask Mask
2678 A string containing an hexadecimal bit mask of the cores to run on.
2679 Note that core numbering can change between platforms and should be
2680 determined beforehand.
2681
2682 Memorychannels Channels
2683 A string containing a number of memory channels per processor
2684 socket.
2685
2686 FilePrefix File
2687 The prefix text used for hugepage filenames. The filename will be
2688 set to /var/run/.<prefix>_config where prefix is what is passed in
2689 by the user.
2690
2691 SocketMemory MB
2692 A string containing amount of Memory to allocate from hugepages on
2693 specific sockets in MB. This is an optional value.
2694
2695 LogLevel LogLevel_number
2696 A string containing log level number. This parameter is optional.
2697 If parameter is not present then default value "7" - (INFO) is
2698 used. Value "8" - (DEBUG) can be set to enable debug traces.
2699
2700 RteDriverLibPath Path
2701 A string containing path to shared pmd driver lib or path to
2702 directory, where shared pmd driver libs are available. This
2703 parameter is optional. This parameter enable loading of shared pmd
2704 driver libs from defined path. E.g.:
2705 "/usr/lib/dpdk-pmd/librte_pmd_i40e.so" or "/usr/lib/dpdk-pmd"
2706
2707 SharedMemObj Mask
2708 A string containing the name of the shared memory object that should
2709 be used to share stats from the DPDK secondary process to the
2710 collectd dpdkstat plugin. Defaults to dpdk_collectd_stats if no
2711 other value is configured.
2712
2713 EnabledPortMask Mask
2714 A hexidecimal bit mask of the DPDK ports which should be enabled. A
2715 mask of 0x0 means that all ports will be disabled. A bitmask of all
2716 Fs means that all ports will be enabled. This is an optional
2717 argument - default is all ports enabled.
2718
2719 PortName Name
2720 A string containing an optional name for the enabled DPDK ports.
2721 Each PortName option should contain only one port name; specify as
2722 many PortName options as desired. Default naming convention will be
2723 used if PortName is blank. If there are less PortName options than
2724 there are enabled ports, the default naming convention will be used
2725 for the additional ports.
2726
2727 Plugin "dpdk_telemetry"
2728 The dpdk_telemetry plugin collects DPDK ethernet device metrics via
2729 dpdk_telemetry library.
2730
2731 The plugin retrieves metrics from a DPDK packet forwarding application
2732 by sending the JSON formatted message via a UNIX domain socket. The
2733 DPDK telemetry component will respond with a JSON formatted reply,
2734 delivering the requested metrics. The plugin parses the JSON data, and
2735 publishes the metric values to collectd for further use.
2736
2737 Synopsis:
2738
2739 <Plugin dpdk_telemetry>
2740 ClientSocketPath "/var/run/.client"
2741 DpdkSocketPath "/var/run/dpdk/rte/telemetry"
2742 </Plugin>
2743
2744 Options:
2745
2746 ClientSocketPath Client_Path
2747 The UNIX domain client socket at Client_Path to receive messages from
2748 DPDK telemetry library. Defaults to "/var/run/.client".
2749
2750 DpdkSocketPath Dpdk_Path
2751 The UNIX domain DPDK telemetry socket to be connected at Dpdk_Path to
2752 send messages. Defaults to "/var/run/dpdk/rte/telemetry".
2753
2754 Plugin "email"
2755 SocketFile Path
2756 Sets the socket-file which is to be created.
2757
2758 SocketGroup Group
2759 If running as root change the group of the UNIX-socket after it has
2760 been created. Defaults to collectd.
2761
2762 SocketPerms Permissions
2763 Change the file permissions of the UNIX-socket after it has been
2764 created. The permissions must be given as a numeric, octal value as
2765 you would pass to chmod(1). Defaults to 0770.
2766
2767 MaxConns Number
2768 Sets the maximum number of connections that can be handled in
2769 parallel. Since this many threads will be started immediately
2770 setting this to a very high value will waste valuable resources.
2771 Defaults to 5 and will be forced to be at most 16384 to prevent
2772 typos and dumb mistakes.
2773
2774 Plugin "ethstat"
2775 The ethstat plugin collects information about network interface cards
2776 (NICs) by talking directly with the underlying kernel driver using
2777 ioctl(2).
2778
2779 Synopsis:
2780
2781 <Plugin "ethstat">
2782 Interface "eth0"
2783 Map "rx_csum_offload_errors" "if_rx_errors" "checksum_offload"
2784 Map "multicast" "if_multicast"
2785 </Plugin>
2786
2787 Options:
2788
2789 Interface Name
2790 Collect statistical information about interface Name.
2791
2792 Map Name Type [TypeInstance]
2793 By default, the plugin will submit values as type "derive" and type
2794 instance set to Name, the name of the metric as reported by the
2795 driver. If an appropriate Map option exists, the given Type and,
2796 optionally, TypeInstance will be used.
2797
2798 MappedOnly true|false
2799 When set to true, only metrics that can be mapped to a type will be
2800 collected, all other metrics will be ignored. Defaults to false.
2801
2802 Plugin "exec"
2803 Please make sure to read collectd-exec(5) before using this plugin. It
2804 contains valuable information on when the executable is executed and
2805 the output that is expected from it.
2806
2807 Exec User[:[Group]] Executable [<arg> [<arg> ...]]
2808 NotificationExec User[:[Group]] Executable [<arg> [<arg> ...]]
2809 Execute the executable Executable as user User. If the user name is
2810 followed by a colon and a group name, the effective group is set to
2811 that group. The real group and saved-set group will be set to the
2812 default group of that user. If no group is given the effective
2813 group ID will be the same as the real group ID.
2814
2815 Please note that in order to change the user and/or group the
2816 daemon needs superuser privileges. If the daemon is run as an
2817 unprivileged user you must specify the same user/group here. If the
2818 daemon is run with superuser privileges, you must supply a non-root
2819 user here.
2820
2821 The executable may be followed by optional arguments that are
2822 passed to the program. Please note that due to the configuration
2823 parsing numbers and boolean values may be changed. If you want to
2824 be absolutely sure that something is passed as-is please enclose it
2825 in quotes.
2826
2827 The Exec and NotificationExec statements change the semantics of
2828 the programs executed, i. e. the data passed to them and the
2829 response expected from them. This is documented in great detail in
2830 collectd-exec(5).
2831
2832 Plugin "fhcount"
2833 The "fhcount" plugin provides statistics about used, unused and total
2834 number of file handles on Linux.
2835
2836 The fhcount plugin provides the following configuration options:
2837
2838 ValuesAbsolute true|false
2839 Enables or disables reporting of file handles usage in absolute
2840 numbers, e.g. file handles used. Defaults to true.
2841
2842 ValuesPercentage false|true
2843 Enables or disables reporting of file handles usage in percentages,
2844 e.g. percent of file handles used. Defaults to false.
2845
2846 Plugin "filecount"
2847 The "filecount" plugin counts the number of files in a certain
2848 directory (and its subdirectories) and their combined size. The
2849 configuration is very straight forward:
2850
2851 <Plugin "filecount">
2852 <Directory "/var/qmail/queue/mess">
2853 Instance "qmail-message"
2854 </Directory>
2855 <Directory "/var/qmail/queue/todo">
2856 Instance "qmail-todo"
2857 </Directory>
2858 <Directory "/var/lib/php5">
2859 Instance "php5-sessions"
2860 Name "sess_*"
2861 </Directory>
2862 </Plugin>
2863
2864 The example above counts the number of files in QMail's queue
2865 directories and the number of PHP5 sessions. Jfiy: The "todo" queue
2866 holds the messages that QMail has not yet looked at, the "message"
2867 queue holds the messages that were classified into "local" and
2868 "remote".
2869
2870 As you can see, the configuration consists of one or more "Directory"
2871 blocks, each of which specifies a directory in which to count the
2872 files. Within those blocks, the following options are recognized:
2873
2874 Plugin Plugin
2875 Use Plugin as the plugin name when submitting values. Defaults to
2876 filecount.
2877
2878 Instance Instance
2879 Sets the plugin instance to Instance. If not given, the instance is
2880 set to the directory name with all slashes replaced by underscores
2881 and all leading underscores removed. Empty value is allowed.
2882
2883 Name Pattern
2884 Only count files that match Pattern, where Pattern is a shell-like
2885 wildcard as understood by fnmatch(3). Only the filename is checked
2886 against the pattern, not the entire path. In case this makes it
2887 easier for you: This option has been named after the -name
2888 parameter to find(1).
2889
2890 MTime Age
2891 Count only files of a specific age: If Age is greater than zero,
2892 only files that haven't been touched in the last Age seconds are
2893 counted. If Age is a negative number, this is inversed. For
2894 example, if -60 is specified, only files that have been modified in
2895 the last minute will be counted.
2896
2897 The number can also be followed by a "multiplier" to easily specify
2898 a larger timespan. When given in this notation, the argument must
2899 in quoted, i. e. must be passed as string. So the -60 could also
2900 be written as "-1m" (one minute). Valid multipliers are "s"
2901 (second), "m" (minute), "h" (hour), "d" (day), "w" (week), and "y"
2902 (year). There is no "month" multiplier. You can also specify
2903 fractional numbers, e. g. "0.5d" is identical to "12h".
2904
2905 Size Size
2906 Count only files of a specific size. When Size is a positive
2907 number, only files that are at least this big are counted. If Size
2908 is a negative number, this is inversed, i. e. only files smaller
2909 than the absolute value of Size are counted.
2910
2911 As with the MTime option, a "multiplier" may be added. For a
2912 detailed description see above. Valid multipliers here are "b"
2913 (byte), "k" (kilobyte), "m" (megabyte), "g" (gigabyte), "t"
2914 (terabyte), and "p" (petabyte). Please note that there are 1000
2915 bytes in a kilobyte, not 1024.
2916
2917 Recursive true|false
2918 Controls whether or not to recurse into subdirectories. Enabled by
2919 default.
2920
2921 IncludeHidden true|false
2922 Controls whether or not to include "hidden" files and directories
2923 in the count. "Hidden" files and directories are those, whose name
2924 begins with a dot. Defaults to false, i.e. by default hidden files
2925 and directories are ignored.
2926
2927 RegularOnly true|false
2928 Controls whether or not to include only regular files in the count.
2929 Defaults to true, i.e. by default non regular files are ignored.
2930
2931 FilesSizeType Type
2932 Sets the type used to dispatch files combined size. Empty value
2933 ("") disables reporting. Defaults to bytes.
2934
2935 FilesCountType Type
2936 Sets the type used to dispatch number of files. Empty value ("")
2937 disables reporting. Defaults to files.
2938
2939 TypeInstance Instance
2940 Sets the type instance used to dispatch values. Defaults to an
2941 empty string (no plugin instance).
2942
2943 Plugin "GenericJMX"
2944 The GenericJMX plugin is written in Java and therefore documented in
2945 collectd-java(5).
2946
2947 Plugin "gmond"
2948 The gmond plugin received the multicast traffic sent by gmond, the
2949 statistics collection daemon of Ganglia. Mappings for the standard
2950 "metrics" are built-in, custom mappings may be added via Metric blocks,
2951 see below.
2952
2953 Synopsis:
2954
2955 <Plugin "gmond">
2956 MCReceiveFrom "239.2.11.71" "8649"
2957 <Metric "swap_total">
2958 Type "swap"
2959 TypeInstance "total"
2960 DataSource "value"
2961 </Metric>
2962 <Metric "swap_free">
2963 Type "swap"
2964 TypeInstance "free"
2965 DataSource "value"
2966 </Metric>
2967 </Plugin>
2968
2969 The following metrics are built-in:
2970
2971 · load_one, load_five, load_fifteen
2972
2973 · cpu_user, cpu_system, cpu_idle, cpu_nice, cpu_wio
2974
2975 · mem_free, mem_shared, mem_buffers, mem_cached, mem_total
2976
2977 · bytes_in, bytes_out
2978
2979 · pkts_in, pkts_out
2980
2981 Available configuration options:
2982
2983 MCReceiveFrom MCGroup [Port]
2984 Sets sets the multicast group and UDP port to which to subscribe.
2985
2986 Default: 239.2.11.71 / 8649
2987
2988 <Metric Name>
2989 These blocks add a new metric conversion to the internal table.
2990 Name, the string argument to the Metric block, is the metric name
2991 as used by Ganglia.
2992
2993 Type Type
2994 Type to map this metric to. Required.
2995
2996 TypeInstance Instance
2997 Type-instance to use. Optional.
2998
2999 DataSource Name
3000 Data source to map this metric to. If the configured type has
3001 exactly one data source, this is optional. Otherwise the option
3002 is required.
3003
3004 Plugin "gps"
3005 The "gps plugin" connects to gpsd on the host machine. The host, port,
3006 timeout and pause are configurable.
3007
3008 This is useful if you run an NTP server using a GPS for source and you
3009 want to monitor it.
3010
3011 Mind your GPS must send $--GSA for having the data reported!
3012
3013 The following elements are collected:
3014
3015 satellites
3016 Number of satellites used for fix (type instance "used") and in
3017 view (type instance "visible"). 0 means no GPS satellites are
3018 visible.
3019
3020 dilution_of_precision
3021 Vertical and horizontal dilution (type instance "horizontal" or
3022 "vertical"). It should be between 0 and 3. Look at the
3023 documentation of your GPS to know more.
3024
3025 Synopsis:
3026
3027 LoadPlugin gps
3028 <Plugin "gps">
3029 # Connect to localhost on gpsd regular port:
3030 Host "127.0.0.1"
3031 Port "2947"
3032 # 15 ms timeout
3033 Timeout 0.015
3034 # PauseConnect of 5 sec. between connection attempts.
3035 PauseConnect 5
3036 </Plugin>
3037
3038 Available configuration options:
3039
3040 Host Host
3041 The host on which gpsd daemon runs. Defaults to localhost.
3042
3043 Port Port
3044 Port to connect to gpsd on the host machine. Defaults to 2947.
3045
3046 Timeout Seconds
3047 Timeout in seconds (default 0.015 sec).
3048
3049 The GPS data stream is fetch by the plugin form the daemon. It
3050 waits for data to be available, if none arrives it times out and
3051 loop for another reading. Mind to put a low value gpsd expects
3052 value in the micro-seconds area (recommended is 500 us) since the
3053 waiting function is blocking. Value must be between 500 us and 5
3054 sec., if outside that range the default value is applied.
3055
3056 This only applies from gpsd release-2.95.
3057
3058 PauseConnect Seconds
3059 Pause to apply between attempts of connection to gpsd in seconds
3060 (default 5 sec).
3061
3062 Plugin "gpu_nvidia"
3063 Efficiently collects various statistics from the system's NVIDIA GPUs
3064 using the NVML library. Currently collected are fan speed, core
3065 temperature, percent load, percent memory used, compute and memory
3066 frequencies, and power consumption.
3067
3068 GPUIndex
3069 If one or more of these options is specified, only GPUs at that
3070 index (as determined by nvidia-utils through nvidia-smi) have
3071 statistics collected. If no instance of this option is specified,
3072 all GPUs are monitored.
3073
3074 IgnoreSelected
3075 If set to true, all detected GPUs except the ones at indices
3076 specified by GPUIndex entries are collected. For greater clarity,
3077 setting IgnoreSelected without any GPUIndex directives will result
3078 in no statistics being collected.
3079
3080 InstanceByGPUIndex
3081 If set to false, the GPU ID will not be part of the plugin
3082 instance. The default is 'GPU ID'-'GPU name'
3083
3084 InstanceByGPUName
3085 If set to false, the GPU name will not be part of the plugin
3086 instance. The default is 'GPU ID'-'GPU name'
3087
3088 Plugin "grpc"
3089 The grpc plugin provides an RPC interface to submit values to or query
3090 values from collectd based on the open source gRPC framework. It
3091 exposes an end-point for dispatching values to the daemon.
3092
3093 The gRPC homepage can be found at <https://grpc.io/>.
3094
3095 Server Host Port
3096 The Server statement sets the address of a server to which to send
3097 metrics via the "DispatchValues" function.
3098
3099 The argument Host may be a hostname, an IPv4 address, or an IPv6
3100 address.
3101
3102 Optionally, Server may be specified as a configuration block which
3103 supports the following options:
3104
3105 EnableSSL false|true
3106 Whether to require SSL for outgoing connections. Default:
3107 false.
3108
3109 SSLCACertificateFile Filename
3110 SSLCertificateFile Filename
3111 SSLCertificateKeyFile Filename
3112 Filenames specifying SSL certificate and key material to be
3113 used with SSL connections.
3114
3115 Listen Host Port
3116 The Listen statement sets the network address to bind to. When
3117 multiple statements are specified, the daemon will bind to all of
3118 them. If none are specified, it defaults to 0.0.0.0:50051.
3119
3120 The argument Host may be a hostname, an IPv4 address, or an IPv6
3121 address.
3122
3123 Optionally, Listen may be specified as a configuration block which
3124 supports the following options:
3125
3126 EnableSSL true|false
3127 Whether to enable SSL for incoming connections. Default: false.
3128
3129 SSLCACertificateFile Filename
3130 SSLCertificateFile Filename
3131 SSLCertificateKeyFile Filename
3132 Filenames specifying SSL certificate and key material to be
3133 used with SSL connections.
3134
3135 VerifyPeer true|false
3136 When enabled, a valid client certificate is required to connect
3137 to the server. When disabled, a client certifiacte is not
3138 requested and any unsolicited client certificate is accepted.
3139 Enabled by default.
3140
3141 Plugin "hddtemp"
3142 To get values from hddtemp collectd connects to localhost (127.0.0.1),
3143 port 7634/tcp. The Host and Port options can be used to change these
3144 default values, see below. "hddtemp" has to be running to work
3145 correctly. If "hddtemp" is not running timeouts may appear which may
3146 interfere with other statistics..
3147
3148 The hddtemp homepage can be found at
3149 <http://www.guzu.net/linux/hddtemp.php>.
3150
3151 Host Hostname
3152 Hostname to connect to. Defaults to 127.0.0.1.
3153
3154 Port Port
3155 TCP-Port to connect to. Defaults to 7634.
3156
3157 Plugin "hugepages"
3158 To collect hugepages information, collectd reads directories
3159 "/sys/devices/system/node/*/hugepages" and "/sys/kernel/mm/hugepages".
3160 Reading of these directories can be disabled by the following options
3161 (default is enabled).
3162
3163 ReportPerNodeHP true|false
3164 If enabled, information will be collected from the hugepage
3165 counters in "/sys/devices/system/node/*/hugepages". This is used
3166 to check the per-node hugepage statistics on a NUMA system.
3167
3168 ReportRootHP true|false
3169 If enabled, information will be collected from the hugepage
3170 counters in "/sys/kernel/mm/hugepages". This can be used on both
3171 NUMA and non-NUMA systems to check the overall hugepage statistics.
3172
3173 ValuesPages true|false
3174 Whether to report hugepages metrics in number of pages. Defaults
3175 to true.
3176
3177 ValuesBytes false|true
3178 Whether to report hugepages metrics in bytes. Defaults to false.
3179
3180 ValuesPercentage false|true
3181 Whether to report hugepages metrics as percentage. Defaults to
3182 false.
3183
3184 Plugin "intel_pmu"
3185 The intel_pmu plugin collects performance counters data on Intel CPUs
3186 using Linux perf interface. All events are reported on a per core
3187 basis.
3188
3189 Synopsis:
3190
3191 <Plugin intel_pmu>
3192 ReportHardwareCacheEvents true
3193 ReportKernelPMUEvents true
3194 ReportSoftwareEvents true
3195 EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json"
3196 HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD"
3197 Cores "0-3" "4,6" "[12-15]"
3198 DispatchMultiPmu false
3199 </Plugin>
3200
3201 Options:
3202
3203 ReportHardwareCacheEvents false|true
3204 Enable or disable measuring of hardware CPU cache events:
3205 - L1-dcache-loads
3206 - L1-dcache-load-misses
3207 - L1-dcache-stores
3208 - L1-dcache-store-misses
3209 - L1-dcache-prefetches
3210 - L1-dcache-prefetch-misses
3211 - L1-icache-loads
3212 - L1-icache-load-misses
3213 - L1-icache-prefetches
3214 - L1-icache-prefetch-misses
3215 - LLC-loads
3216 - LLC-load-misses
3217 - LLC-stores
3218 - LLC-store-misses
3219 - LLC-prefetches
3220 - LLC-prefetch-misses
3221 - dTLB-loads
3222 - dTLB-load-misses
3223 - dTLB-stores
3224 - dTLB-store-misses
3225 - dTLB-prefetches
3226 - dTLB-prefetch-misses
3227 - iTLB-loads
3228 - iTLB-load-misses
3229 - branch-loads
3230 - branch-load-misses
3231
3232 ReportKernelPMUEvents false|true
3233 Enable or disable measuring of the following events:
3234 - cpu-cycles
3235 - instructions
3236 - cache-references
3237 - cache-misses
3238 - branches
3239 - branch-misses
3240 - bus-cycles
3241
3242 ReportSoftwareEvents false|true
3243 Enable or disable measuring of software events provided by kernel:
3244 - cpu-clock
3245 - task-clock
3246 - context-switches
3247 - cpu-migrations
3248 - page-faults
3249 - minor-faults
3250 - major-faults
3251 - alignment-faults
3252 - emulation-faults
3253
3254 EventList filename
3255 JSON performance counter event list file name. To be able to
3256 monitor all Intel CPU specific events JSON event list file should
3257 be downloaded. Use the pmu-tools event_download.py script to
3258 download event list for current CPU.
3259
3260 HardwareEvents events
3261 This field is a list of event names or groups of comma separated
3262 event names. This option requires EventList option to be
3263 configured.
3264
3265 Cores cores groups
3266 All events are reported on a per core basis. Monitoring of the
3267 events can be configured for a group of cores (aggregated
3268 statistics). This field defines groups of cores on which to monitor
3269 supported events. The field is represented as list of strings with
3270 core group values. Each string represents a list of cores in a
3271 group. If a group is enclosed in square brackets each core is added
3272 individually to a separate group (that is statistics are not
3273 aggregated). Allowed formats are:
3274 0,1,2,3
3275 0-10,20-18
3276 1,3,5-8,10,0x10-12
3277 [4-15,32-63]
3278
3279 If an empty string is provided as value for this field default
3280 cores configuration is applied - that is separate group is created
3281 for each core.
3282
3283 DispatchMultiPmu false|true
3284 Enable or disable dispatching of cloned multi PMU for uncore
3285 events. If disabled only total sum is dispatched as single event.
3286 If enabled separate metric is dispatched for every counter.
3287
3288 Plugin "intel_rdt"
3289 The intel_rdt plugin collects information provided by monitoring
3290 features of Intel Resource Director Technology (Intel(R) RDT) like
3291 Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM).
3292 These features provide information about utilization of shared
3293 resources. CMT monitors last level cache occupancy (LLC). MBM supports
3294 two types of events reporting local and remote memory bandwidth. Local
3295 memory bandwidth (MBL) reports the bandwidth of accessing memory
3296 associated with the local socket. Remote memory bandwidth (MBR) reports
3297 the bandwidth of accessing the remote socket. Also this technology
3298 allows to monitor instructions per clock (IPC). Monitor events are
3299 hardware dependant. Monitoring capabilities are detected on plugin
3300 initialization and only supported events are monitored.
3301
3302 Note: intel_rdt plugin is using model-specific registers (MSRs), which
3303 require an additional capability to be enabled if collectd is run as a
3304 service. Please refer to contrib/systemd.collectd.service file for
3305 more details.
3306
3307 Synopsis:
3308
3309 <Plugin "intel_rdt">
3310 Cores "0-2" "3,4,6" "8-10,15"
3311 Processes "sshd,qemu-system-x86" "bash"
3312 </Plugin>
3313
3314 Options:
3315
3316 Interval seconds
3317 The interval within which to retrieve statistics on monitored
3318 events in seconds. For milliseconds divide the time by 1000 for
3319 example if the desired interval is 50ms, set interval to 0.05. Due
3320 to limited capacity of counters it is not recommended to set
3321 interval higher than 1 sec.
3322
3323 Cores cores groups
3324 Monitoring of the events can be configured for group of cores
3325 (aggregated statistics). This field defines groups of cores on
3326 which to monitor supported events. The field is represented as list
3327 of strings with core group values. Each string represents a list of
3328 cores in a group. Allowed formats are:
3329 0,1,2,3
3330 0-10,20-18
3331 1,3,5-8,10,0x10-12
3332
3333 If an empty string is provided as value for this field default
3334 cores configuration is applied - a separate group is created for
3335 each core.
3336
3337 Processes process names groups
3338 Monitoring of the events can be configured for group of processes
3339 (aggregated statistics). This field defines groups of processes on
3340 which to monitor supported events. The field is represented as list
3341 of strings with process names group values. Each string represents
3342 a list of processes in a group. Allowed format is:
3343 sshd,bash,qemu
3344
3345 Note: By default global interval is used to retrieve statistics on
3346 monitored events. To configure a plugin specific interval use Interval
3347 option of the intel_rdt <LoadPlugin> block. For milliseconds divide the
3348 time by 1000 for example if the desired interval is 50ms, set interval
3349 to 0.05. Due to limited capacity of counters it is not recommended to
3350 set interval higher than 1 sec.
3351
3352 Plugin "interface"
3353 Interface Interface
3354 Select this interface. By default these interfaces will then be
3355 collected. For a more detailed description see IgnoreSelected
3356 below.
3357
3358 See /"IGNORELISTS" for details.
3359
3360 IgnoreSelected true|false
3361 If no configuration is given, the interface-plugin will collect
3362 data from all interfaces. This may not be practical, especially for
3363 loopback- and similar interfaces. Thus, you can use the
3364 Interface-option to pick the interfaces you're interested in.
3365 Sometimes, however, it's easier/preferred to collect all interfaces
3366 except a few ones. This option enables you to do that: By setting
3367 IgnoreSelected to true the effect of Interface is inverted: All
3368 selected interfaces are ignored and all other interfaces are
3369 collected.
3370
3371 It is possible to use regular expressions to match interface names,
3372 if the name is surrounded by /.../ and collectd was compiled with
3373 support for regexps. This is useful if there's a need to collect
3374 (or ignore) data for a group of interfaces that are similarly
3375 named, without the need to explicitly list all of them (especially
3376 useful if the list is dynamic). Example:
3377
3378 Interface "lo"
3379 Interface "/^veth/"
3380 Interface "/^tun[0-9]+/"
3381 IgnoreSelected "true"
3382
3383 This will ignore the loopback interface, all interfaces with names
3384 starting with veth and all interfaces with names starting with tun
3385 followed by at least one digit.
3386
3387 ReportInactive true|false
3388 When set to false, only interfaces with non-zero traffic will be
3389 reported. Note that the check is done by looking into whether a
3390 package was sent at any time from boot and the corresponding
3391 counter is non-zero. So, if the interface has been sending data in
3392 the past since boot, but not during the reported time-interval, it
3393 will still be reported.
3394
3395 The default value is true and results in collection of the data
3396 from all interfaces that are selected by Interface and
3397 IgnoreSelected options.
3398
3399 UniqueName true|false
3400 Interface name is not unique on Solaris (KSTAT), interface name is
3401 unique only within a module/instance. Following tuple is considered
3402 unique:
3403 (ks_module, ks_instance, ks_name) If this option is set to true,
3404 interface name contains above three fields separated by an
3405 underscore. For more info on KSTAT, visit
3406 <http://docs.oracle.com/cd/E23824_01/html/821-1468/kstat-3kstat.html#REFMAN3Ekstat-3kstat>
3407
3408 This option is only available on Solaris.
3409
3410 Plugin "ipmi"
3411 The ipmi plugin allows to monitor server platform status using the
3412 Intelligent Platform Management Interface (IPMI). Local and remote
3413 interfaces are supported.
3414
3415 The plugin configuration consists of one or more Instance blocks which
3416 specify one ipmi connection each. Each block requires one unique string
3417 argument as the instance name. If instances are not configured, an
3418 instance with the default option values will be created.
3419
3420 For backwards compatibility, any option other than Instance block will
3421 trigger legacy config handling and it will be treated as an option
3422 within Instance block. This support will go away in the next major
3423 version of Collectd.
3424
3425 Within the Instance blocks, the following options are allowed:
3426
3427 Address Address
3428 Hostname or IP to connect to. If not specified, plugin will try to
3429 connect to local management controller (BMC).
3430
3431 Username Username
3432 Password Password
3433 The username and the password to use for the connection to remote
3434 BMC.
3435
3436 AuthType MD5|rmcp+
3437 Forces the authentication type to use for the connection to remote
3438 BMC. By default most secure type is seleted.
3439
3440 Host Hostname
3441 Sets the host field of dispatched values. Defaults to the global
3442 hostname setting.
3443
3444 Sensor Sensor
3445 Selects sensors to collect or to ignore, depending on
3446 IgnoreSelected.
3447
3448 See /"IGNORELISTS" for details.
3449
3450 IgnoreSelected true|false
3451 If no configuration if given, the ipmi plugin will collect data
3452 from all sensors found of type "temperature", "voltage", "current"
3453 and "fanspeed". This option enables you to do that: By setting
3454 IgnoreSelected to true the effect of Sensor is inverted: All
3455 selected sensors are ignored and all other sensors are collected.
3456
3457 NotifySensorAdd true|false
3458 If a sensor appears after initialization time of a minute a
3459 notification is sent.
3460
3461 NotifySensorRemove true|false
3462 If a sensor disappears a notification is sent.
3463
3464 NotifySensorNotPresent true|false
3465 If you have for example dual power supply and one of them is
3466 (un)plugged then a notification is sent.
3467
3468 NotifyIPMIConnectionState true|false
3469 If a IPMI connection state changes after initialization time of a
3470 minute a notification is sent. Defaults to false.
3471
3472 SELEnabled true|false
3473 If system event log (SEL) is enabled, plugin will listen for sensor
3474 threshold and discrete events. When event is received the
3475 notification is sent. SEL event filtering can be configured using
3476 SELSensor and SELIgnoreSelected config options. Defaults to false.
3477
3478 SELSensor SELSensor
3479 Selects sensors to get events from or to ignore, depending on
3480 SELIgnoreSelected.
3481
3482 See /"IGNORELISTS" for details.
3483
3484 SELIgnoreSelected true|false
3485 If no configuration is given, the ipmi plugin will pass events from
3486 all sensors. This option enables you to do that: By setting
3487 SELIgnoreSelected to true the effect of SELSensor is inverted: All
3488 events from selected sensors are ignored and all events from other
3489 sensors are passed.
3490
3491 SELClearEvent true|false
3492 If SEL clear event is enabled, plugin will delete event from SEL
3493 list after it is received and successfully handled. In this case
3494 other tools that are subscribed for SEL events will receive an
3495 empty event. Defaults to false.
3496
3497 Plugin "ipstats"
3498 This plugin collects counts for ipv4 and ipv6 various types of packets
3499 passing through the system in total. At the moment it's only supported
3500 on FreeBSD.
3501
3502 The full list of options available to include in the counted statistics
3503 is:
3504 ip4receive IPv4 total packets received
3505 ip4badsum IPv4 checksum bad
3506 ip4tooshort IPv4 packet too short
3507 ip4toosmall IPv4 not enough data
3508 ip4badhlen IPv4 ip header length < data size
3509 ip4badlen IPv4 ip length < ip header length
3510 ip4fragment IPv4 fragments received
3511 ip4fragdrop IPv4 frags dropped (dups, out of space)
3512 ip4fragtimeout IPv4 fragments timed out
3513 ip4forward IPv4 packets forwarded
3514 ip4fastforward IPv4 packets fast forwarded
3515 ip4cantforward IPv4 packets rcvd for unreachable dest
3516 ip4redirectsent IPv4 packets forwarded on same net
3517 ip4noproto IPv4 unknown or unsupported protocol
3518 ip4deliver IPv4 datagrams delivered to upper level
3519 ip4transmit IPv4 total ip packets generated here
3520 ip4odrop IPv4 lost packets due to nobufs, etc.
3521 ip4reassemble IPv4 total packets reassembled ok
3522 ip4fragmented IPv4 datagrams successfully fragmented
3523 ip4ofragment IPv4 output fragments created
3524 ip4cantfrag IPv4 don't fragment flag was set, etc.
3525 ip4badoptions IPv4 error in option processing
3526 ip4noroute IPv4 packets discarded due to no route
3527 ip4badvers IPv4 ip version != 4
3528 ip4rawout IPv4 total raw ip packets generated
3529 ip4toolong IPv4 ip length > max ip packet size
3530 ip4notmember IPv4 multicasts for unregistered grps
3531 ip4nogif IPv4 no match gif found
3532 ip4badaddr IPv4 invalid address on header
3533
3534 ip6receive IPv6 total packets received
3535 ip6tooshort IPv6 packet too short
3536 ip6toosmall IPv6 not enough data
3537 ip6fragment IPv6 fragments received
3538 ip6fragdrop IPv6 frags dropped(dups, out of space)
3539 ip6fragtimeout IPv6 fragments timed out
3540 ip6fragoverflow IPv6 fragments that exceeded limit
3541 ip6forward IPv6 packets forwarded
3542 ip6cantforward IPv6 packets rcvd for unreachable dest
3543 ip6redirectsent IPv6 packets forwarded on same net
3544 ip6deliver IPv6 datagrams delivered to upper level
3545 ip6transmit IPv6 total ip packets generated here
3546 ip6odrop IPv6 lost packets due to nobufs, etc.
3547 ip6reassemble IPv6 total packets reassembled ok
3548 ip6fragmented IPv6 datagrams successfully fragmented
3549 ip6ofragment IPv6 output fragments created
3550 ip6cantfrag IPv6 don't fragment flag was set, etc.
3551 ip6badoptions IPv6 error in option processing
3552 ip6noroute IPv6 packets discarded due to no route
3553 ip6badvers IPv6 ip6 version != 6
3554 ip6rawout IPv6 total raw ip packets generated
3555 ip6badscope IPv6 scope error
3556 ip6notmember IPv6 don't join this multicast group
3557 ip6nogif IPv6 no match gif found
3558 ip6toomanyhdr IPv6 discarded due to too many headers
3559
3560 By default the following options are included in the counted packets:
3561
3562 - ip4receive - ip4forward - ip4transmit
3563
3564 - ip6receive - ip6forward - ip6transmit
3565
3566 For example to also count IPv4 and IPv6 fragments received, include the
3567 following configuration:
3568
3569 <Plugin ipstats>
3570 ip4fragment true
3571 ip6fragment true
3572 </Plugin>
3573
3574 Plugin "iptables"
3575 Chain Table Chain [Comment|Number [Name]]
3576 Chain6 Table Chain [Comment|Number [Name]]
3577 Select the iptables/ip6tables filter rules to count packets and
3578 bytes from.
3579
3580 If only Table and Chain are given, this plugin will collect the
3581 counters of all rules which have a comment-match. The comment is
3582 then used as type-instance.
3583
3584 If Comment or Number is given, only the rule with the matching
3585 comment or the nth rule will be collected. Again, the comment (or
3586 the number) will be used as the type-instance.
3587
3588 If Name is supplied, it will be used as the type-instance instead
3589 of the comment or the number.
3590
3591 Plugin "irq"
3592 Irq Irq
3593 Select this irq. By default these irqs will then be collected. For
3594 a more detailed description see IgnoreSelected below.
3595
3596 See /"IGNORELISTS" for details.
3597
3598 IgnoreSelected true|false
3599 If no configuration if given, the irq-plugin will collect data from
3600 all irqs. This may not be practical, especially if no interrupts
3601 happen. Thus, you can use the Irq-option to pick the interrupt
3602 you're interested in. Sometimes, however, it's easier/preferred to
3603 collect all interrupts except a few ones. This option enables you
3604 to do that: By setting IgnoreSelected to true the effect of Irq is
3605 inverted: All selected interrupts are ignored and all other
3606 interrupts are collected.
3607
3608 Plugin "java"
3609 The Java plugin makes it possible to write extensions for collectd in
3610 Java. This section only discusses the syntax and semantic of the
3611 configuration options. For more in-depth information on the Java
3612 plugin, please read collectd-java(5).
3613
3614 Synopsis:
3615
3616 <Plugin "java">
3617 JVMArg "-verbose:jni"
3618 JVMArg "-Djava.class.path=/opt/collectd/lib/collectd/bindings/java"
3619 LoadPlugin "org.collectd.java.Foobar"
3620 <Plugin "org.collectd.java.Foobar">
3621 # To be parsed by the plugin
3622 </Plugin>
3623 </Plugin>
3624
3625 Available configuration options:
3626
3627 JVMArg Argument
3628 Argument that is to be passed to the Java Virtual Machine (JVM).
3629 This works exactly the way the arguments to the java binary on the
3630 command line work. Execute "java --help" for details.
3631
3632 Please note that all these options must appear before (i. e. above)
3633 any other options! When another option is found, the JVM will be
3634 started and later options will have to be ignored!
3635
3636 LoadPlugin JavaClass
3637 Instantiates a new JavaClass object. The constructor of this object
3638 very likely then registers one or more callback methods with the
3639 server.
3640
3641 See collectd-java(5) for details.
3642
3643 When the first such option is found, the virtual machine (JVM) is
3644 created. This means that all JVMArg options must appear before
3645 (i. e. above) all LoadPlugin options!
3646
3647 Plugin Name
3648 The entire block is passed to the Java plugin as an
3649 org.collectd.api.OConfigItem object.
3650
3651 For this to work, the plugin has to register a configuration
3652 callback first, see "config callback" in collectd-java(5). This
3653 means, that the Plugin block must appear after the appropriate
3654 LoadPlugin block. Also note, that Name depends on the (Java) plugin
3655 registering the callback and is completely independent from the
3656 JavaClass argument passed to LoadPlugin.
3657
3658 Plugin "load"
3659 The Load plugin collects the system load. These numbers give a rough
3660 overview over the utilization of a machine. The system load is defined
3661 as the number of runnable tasks in the run-queue and is provided by
3662 many operating systems as a one, five or fifteen minute average.
3663
3664 The following configuration options are available:
3665
3666 ReportRelative false|true
3667 When enabled, system load divided by number of available CPU cores
3668 is reported for intervals 1 min, 5 min and 15 min. Defaults to
3669 false.
3670
3671 Plugin "logfile"
3672 LogLevel debug|info|notice|warning|err
3673 Sets the log-level. If, for example, set to notice, then all events
3674 with severity notice, warning, or err will be written to the
3675 logfile.
3676
3677 Please note that debug is only available if collectd has been
3678 compiled with debugging support.
3679
3680 File File
3681 Sets the file to write log messages to. The special strings stdout
3682 and stderr can be used to write to the standard output and standard
3683 error channels, respectively. This, of course, only makes much
3684 sense when collectd is running in foreground- or non-daemon-mode.
3685
3686 Timestamp true|false
3687 Prefix all lines printed by the current time. Defaults to true.
3688
3689 PrintSeverity true|false
3690 When enabled, all lines are prefixed by the severity of the log
3691 message, for example "warning". Defaults to false.
3692
3693 Note: There is no need to notify the daemon after moving or removing
3694 the log file (e. g. when rotating the logs). The plugin reopens the
3695 file for each line it writes.
3696
3697 Plugin "logparser"
3698 The logparser plugin is used to parse different kinds of logs. Setting
3699 proper options you can choose strings to collect. Plugin searches the
3700 log file for messages which contain several matches (two or more). When
3701 all mandatory matches are found then it sends proper notification
3702 containing all fetched values.
3703
3704 Synopsis:
3705
3706 <Plugin logparser>
3707 <Logfile "/var/log/syslog">
3708 FirstFullRead false
3709 <Message "pcie_errors">
3710 DefaultType "pcie_error"
3711 DefaultSeverity "warning"
3712 <Match "aer error">
3713 Regex "AER:.*error received"
3714 SubmatchIdx -1
3715 </Match>
3716 <Match "incident time">
3717 Regex "(... .. ..:..:..) .* pcieport.*AER"
3718 SubmatchIdx 1
3719 IsMandatory false
3720 </Match>
3721 <Match "root port">
3722 Regex "pcieport (.*): AER:"
3723 SubmatchIdx 1
3724 IsMandatory true
3725 </Match>
3726 <Match "device">
3727 PluginInstance true
3728 Regex " ([0-9a-fA-F:\\.]*): PCIe Bus Error"
3729 SubmatchIdx 1
3730 IsMandatory false
3731 </Match>
3732 <Match "severity_mandatory">
3733 Regex "severity="
3734 SubMatchIdx -1
3735 </Match>
3736 <Match "nonfatal">
3737 Regex "severity=.*\\([nN]on-[fF]atal"
3738 TypeInstance "non_fatal"
3739 IsMandatory false
3740 </Match>
3741 <Match "fatal">
3742 Regex "severity=.*\\([fF]atal"
3743 Severity "failure"
3744 TypeInstance "fatal"
3745 IsMandatory false
3746 </Match>
3747 <Match "corrected">
3748 Regex "severity=Corrected"
3749 TypeInstance "correctable"
3750 IsMandatory false
3751 </Match>
3752 <Match "error type">
3753 Regex "type=(.*),"
3754 SubmatchIdx 1
3755 IsMandatory false
3756 </Match>
3757 <Match "id">
3758 Regex ", id=(.*)"
3759 SubmatchIdx 1
3760 </Match>
3761 </Message>
3762 </Logfile>
3763 </Plugin>
3764
3765 Options:
3766
3767 Logfile File
3768 The Logfile block defines file to search. It may contain one or
3769 more Message blocks which are defined below.
3770
3771 FirstFullRead true|false
3772 Set to true if the file has to be parsed from the beginning on the
3773 first read. If false only subsequent writes to log file will be
3774 parsed.
3775
3776 Message Name
3777 Message block contains matches to search the log file for. Each
3778 Message block builds a notification message using matched elements
3779 if its mandatory Match blocks are matched.
3780
3781 DefaultPluginInstance String
3782 Sets the default value for the plugin instance of the notification.
3783
3784 DefaultType String
3785 Sets the default value for the type of the notification.
3786
3787 DefaultTypeInstance String
3788 Sets the default value for the type instance of the notification.
3789
3790 DefaultSeverity String
3791 Sets the default severity. Must be set to "OK", "WARNING" or
3792 "FAILURE". Default value is "OK".
3793
3794 Match Name
3795 Multiple Match blocks define regular expression patterns for
3796 extracting or excluding specific string patterns from parsing.
3797 First and last Match items in the same Message set boundaries of
3798 multiline message and are mandatory. If these matches are not
3799 found then the whole message is discarded.
3800
3801 Regex Regex
3802 Regular expression with pattern matching string. It may contain
3803 subexpressions, so next option SubmatchIdx specifies which
3804 subexpression should be stored.
3805
3806 SubmatchIdx Integer
3807 Index of subexpression to be used for notification. Multiple
3808 subexpressions are allowed. Index value 0 takes whole regular
3809 expression match as a result. Index value -1 does not add result
3810 to message item. Can be omitted, default value is 0.
3811
3812 Excluderegex Regex
3813 Regular expression for excluding lines containing specific matching
3814 strings. This is processed before checking Regex pattern. It is
3815 optional and can be omitted.
3816
3817 IsMandatory true|false
3818 Flag indicating if Match item is mandatory for message validation.
3819 If set to true, whole message is discarded if it's missing. For
3820 false its presence is optional. Default value is set to true.
3821
3822 PluginInstance true|String
3823 If set to true, it sets plugin instance to string returned by
3824 regex. It can be overridden by user string.
3825
3826 Type true|String
3827 Sets notification type using rules like PluginInstance.
3828
3829 TypeInstance true|String
3830 Sets notification type instance using rules like above.
3831
3832 Severity String
3833 Sets notification severity to one of the options: "OK", "WARNING",
3834 "FAILURE".
3835
3836 Plugin "log_logstash"
3837 The log logstash plugin behaves like the logfile plugin but formats
3838 messages as JSON events for logstash to parse and input.
3839
3840 LogLevel debug|info|notice|warning|err
3841 Sets the log-level. If, for example, set to notice, then all events
3842 with severity notice, warning, or err will be written to the
3843 logfile.
3844
3845 Please note that debug is only available if collectd has been
3846 compiled with debugging support.
3847
3848 File File
3849 Sets the file to write log messages to. The special strings stdout
3850 and stderr can be used to write to the standard output and standard
3851 error channels, respectively. This, of course, only makes much
3852 sense when collectd is running in foreground- or non-daemon-mode.
3853
3854 Note: There is no need to notify the daemon after moving or removing
3855 the log file (e. g. when rotating the logs). The plugin reopens the
3856 file for each line it writes.
3857
3858 Plugin "lpar"
3859 The LPAR plugin reads CPU statistics of Logical Partitions, a
3860 virtualization technique for IBM POWER processors. It takes into
3861 account CPU time stolen from or donated to a partition, in addition to
3862 the usual user, system, I/O statistics.
3863
3864 The following configuration options are available:
3865
3866 CpuPoolStats false|true
3867 When enabled, statistics about the processor pool are read, too.
3868 The partition needs to have pool authority in order to be able to
3869 acquire this information. Defaults to false.
3870
3871 ReportBySerial false|true
3872 If enabled, the serial of the physical machine the partition is
3873 currently running on is reported as hostname and the logical
3874 hostname of the machine is reported in the plugin instance.
3875 Otherwise, the logical hostname will be used (just like other
3876 plugins) and the plugin instance will be empty. Defaults to false.
3877
3878 Plugin "lua"
3879 This plugin embeds a Lua interpreter into collectd and provides an
3880 interface to collectd's plugin system. See collectd-lua(5) for its
3881 documentation.
3882
3883 Plugin "mbmon"
3884 The "mbmon plugin" uses mbmon to retrieve temperature, voltage, etc.
3885
3886 Be default collectd connects to localhost (127.0.0.1), port 411/tcp.
3887 The Host and Port options can be used to change these values, see
3888 below. "mbmon" has to be running to work correctly. If "mbmon" is not
3889 running timeouts may appear which may interfere with other statistics..
3890
3891 "mbmon" must be run with the -r option ("print TAG and Value format");
3892 Debian's /etc/init.d/mbmon script already does this, other people will
3893 need to ensure that this is the case.
3894
3895 Host Hostname
3896 Hostname to connect to. Defaults to 127.0.0.1.
3897
3898 Port Port
3899 TCP-Port to connect to. Defaults to 411.
3900
3901 Plugin "mcelog"
3902 The "mcelog plugin" uses mcelog to retrieve machine check exceptions.
3903
3904 By default the plugin connects to "/var/run/mcelog-client" to check if
3905 the mcelog server is running. When the server is running, the plugin
3906 will tail the specified logfile to retrieve machine check exception
3907 information and send a notification with the details from the logfile.
3908 The plugin will use the mcelog client protocol to retrieve memory
3909 related machine check exceptions. Note that for memory exceptions,
3910 notifications are only sent when there is a change in the number of
3911 corrected/uncorrected memory errors.
3912
3913 The Memory block
3914
3915 Note: these options cannot be used in conjunction with the logfile
3916 options, they are mutually exclusive.
3917
3918 McelogClientSocket Path Connect to the mcelog client socket using the
3919 UNIX domain socket at Path. Defaults to "/var/run/mcelog-client".
3920 PersistentNotification true|false Override default configuration to
3921 only send notifications when sent when there is a change in the number
3922 of corrected/uncorrected memory errors. When set to true notifications
3923 will be sent for every read cycle. Default is false. Does not affect
3924 the stats being dispatched.
3925 McelogLogfile Path
3926 The mcelog file to parse. Defaults to "/var/log/mcelog". Note: this
3927 option cannot be used in conjunction with the memory block options,
3928 they are mutually exclusive.
3929
3930 Plugin "md"
3931 The "md plugin" collects information from Linux Software-RAID devices
3932 (md).
3933
3934 All reported values are of the type "md_disks". Reported type instances
3935 are active, failed (present but not operational), spare (hot stand-by)
3936 and missing (physically absent) disks.
3937
3938 Device Device
3939 Select md devices based on device name. The device name is the
3940 basename of the device, i.e. the name of the block device without
3941 the leading "/dev/". See IgnoreSelected for more details.
3942
3943 See /"IGNORELISTS" for details.
3944
3945 IgnoreSelected true|false
3946 Invert device selection: If set to true, all md devices except
3947 those listed using Device are collected. If false (the default),
3948 only those listed are collected. If no configuration is given, the
3949 md plugin will collect data from all md devices.
3950
3951 Plugin "memcachec"
3952 The "memcachec plugin" connects to a memcached server, queries one or
3953 more given pages and parses the returned data according to user
3954 specification. The matches used are the same as the matches used in
3955 the "curl" and "tail" plugins.
3956
3957 In order to talk to the memcached server, this plugin uses the
3958 libmemcached library. Please note that there is another library with a
3959 very similar name, libmemcache (notice the missing `d'), which is not
3960 applicable.
3961
3962 Synopsis of the configuration:
3963
3964 <Plugin "memcachec">
3965 <Page "plugin_instance">
3966 Server "localhost"
3967 Key "page_key"
3968 Plugin "plugin_name"
3969 <Match>
3970 Regex "(\\d+) bytes sent"
3971 DSType CounterAdd
3972 Type "ipt_octets"
3973 Instance "type_instance"
3974 </Match>
3975 </Page>
3976 </Plugin>
3977
3978 The configuration options are:
3979
3980 <Page Name>
3981 Each Page block defines one page to be queried from the memcached
3982 server. The block requires one string argument which is used as
3983 plugin instance.
3984
3985 Server Address
3986 Sets the server address to connect to when querying the page. Must
3987 be inside a Page block.
3988
3989 Key Key
3990 When connected to the memcached server, asks for the page Key.
3991
3992 Plugin Plugin
3993 Use Plugin as the plugin name when submitting values. Defaults to
3994 "memcachec".
3995
3996 <Match>
3997 Match blocks define which strings to look for and how matches
3998 substrings are interpreted. For a description of match blocks,
3999 please see "Plugin tail".
4000
4001 Plugin "memcached"
4002 The memcached plugin connects to a memcached server and queries
4003 statistics about cache utilization, memory and bandwidth used.
4004 <http://memcached.org/>
4005
4006 <Plugin "memcached">
4007 <Instance "name">
4008 #Host "memcache.example.com"
4009 Address "127.0.0.1"
4010 Port 11211
4011 </Instance>
4012 </Plugin>
4013
4014 The plugin configuration consists of one or more Instance blocks which
4015 specify one memcached connection each. Within the Instance blocks, the
4016 following options are allowed:
4017
4018 Host Hostname
4019 Sets the host field of dispatched values. Defaults to the global
4020 hostname setting. For backwards compatibility, values are also
4021 dispatched with the global hostname when Host is set to 127.0.0.1
4022 or localhost and Address is not set.
4023
4024 Address Address
4025 Hostname or IP to connect to. For backwards compatibility, defaults
4026 to the value of Host or 127.0.0.1 if Host is unset.
4027
4028 Port Port
4029 TCP port to connect to. Defaults to 11211.
4030
4031 Socket Path
4032 Connect to memcached using the UNIX domain socket at Path. If this
4033 setting is given, the Address and Port settings are ignored.
4034
4035 Plugin "mic"
4036 The mic plugin gathers CPU statistics, memory usage and temperatures
4037 from Intel's Many Integrated Core (MIC) systems.
4038
4039 Synopsis:
4040
4041 <Plugin mic>
4042 ShowCPU true
4043 ShowCPUCores true
4044 ShowMemory true
4045
4046 ShowTemperatures true
4047 Temperature vddg
4048 Temperature vddq
4049 IgnoreSelectedTemperature true
4050
4051 ShowPower true
4052 Power total0
4053 Power total1
4054 IgnoreSelectedPower true
4055 </Plugin>
4056
4057 The following options are valid inside the Plugin mic block:
4058
4059 ShowCPU true|false
4060 If enabled (the default) a sum of the CPU usage across all cores is
4061 reported.
4062
4063 ShowCPUCores true|false
4064 If enabled (the default) per-core CPU usage is reported.
4065
4066 ShowMemory true|false
4067 If enabled (the default) the physical memory usage of the MIC
4068 system is reported.
4069
4070 ShowTemperatures true|false
4071 If enabled (the default) various temperatures of the MIC system are
4072 reported.
4073
4074 Temperature Name
4075 This option controls which temperatures are being reported. Whether
4076 matching temperatures are being ignored or only matching
4077 temperatures are reported depends on the IgnoreSelectedTemperature
4078 setting below. By default all temperatures are reported.
4079
4080 IgnoreSelectedTemperature false|true
4081 Controls the behavior of the Temperature setting above. If set to
4082 false (the default) only temperatures matching a Temperature option
4083 are reported or, if no Temperature option is specified, all
4084 temperatures are reported. If set to true, matching temperatures
4085 are ignored and all other temperatures are reported.
4086
4087 Known temperature names are:
4088
4089 die Die of the CPU
4090
4091 devmem
4092 Device Memory
4093
4094 fin Fan In
4095
4096 fout
4097 Fan Out
4098
4099 vccp
4100 Voltage ccp
4101
4102 vddg
4103 Voltage ddg
4104
4105 vddq
4106 Voltage ddq
4107
4108 ShowPower true|false
4109 If enabled (the default) various temperatures of the MIC system are
4110 reported.
4111
4112 Power Name
4113 This option controls which power readings are being reported.
4114 Whether matching power readings are being ignored or only matching
4115 power readings are reported depends on the IgnoreSelectedPower
4116 setting below. By default all power readings are reported.
4117
4118 IgnoreSelectedPower false|true
4119 Controls the behavior of the Power setting above. If set to false
4120 (the default) only power readings matching a Power option are
4121 reported or, if no Power option is specified, all power readings
4122 are reported. If set to true, matching power readings are ignored
4123 and all other power readings are reported.
4124
4125 Known power names are:
4126
4127 total0
4128 Total power utilization averaged over Time Window 0 (uWatts).
4129
4130 total1
4131 Total power utilization averaged over Time Window 0 (uWatts).
4132
4133 inst
4134 Instantaneous power (uWatts).
4135
4136 imax
4137 Max instantaneous power (uWatts).
4138
4139 pcie
4140 PCI-E connector power (uWatts).
4141
4142 c2x3
4143 2x3 connector power (uWatts).
4144
4145 c2x4
4146 2x4 connector power (uWatts).
4147
4148 vccp
4149 Core rail (uVolts).
4150
4151 vddg
4152 Uncore rail (uVolts).
4153
4154 vddq
4155 Memory subsystem rail (uVolts).
4156
4157 Plugin "memory"
4158 The memory plugin provides the following configuration options:
4159
4160 ValuesAbsolute true|false
4161 Enables or disables reporting of physical memory usage in absolute
4162 numbers, i.e. bytes. Defaults to true.
4163
4164 ValuesPercentage false|true
4165 Enables or disables reporting of physical memory usage in
4166 percentages, e.g. percent of physical memory used. Defaults to
4167 false.
4168
4169 This is useful for deploying collectd in a heterogeneous
4170 environment in which the sizes of physical memory vary.
4171
4172 Plugin "modbus"
4173 The modbus plugin connects to a Modbus "slave" via Modbus/TCP or
4174 Modbus/RTU and reads register values. It supports reading single
4175 registers (unsigned 16 bit values), large integer values (unsigned
4176 32 bit and 64 bit values) and floating point values (two registers
4177 interpreted as IEEE floats in big endian notation).
4178
4179 Synopsis:
4180
4181 <Data "voltage-input-1">
4182 RegisterBase 0
4183 RegisterType float
4184 RegisterCmd ReadHolding
4185 Type voltage
4186 Instance "input-1"
4187 #Scale 1.0
4188 #Shift 0.0
4189 </Data>
4190
4191 <Data "voltage-input-2">
4192 RegisterBase 2
4193 RegisterType float
4194 RegisterCmd ReadHolding
4195 Type voltage
4196 Instance "input-2"
4197 </Data>
4198
4199 <Data "supply-temperature-1">
4200 RegisterBase 0
4201 RegisterType Int16
4202 RegisterCmd ReadHolding
4203 Type temperature
4204 Instance "temp-1"
4205 </Data>
4206
4207 <Host "modbus.example.com">
4208 Address "192.168.0.42"
4209 Port "502"
4210 Interval 60
4211
4212 <Slave 1>
4213 Instance "power-supply"
4214 Collect "voltage-input-1"
4215 Collect "voltage-input-2"
4216 </Slave>
4217 </Host>
4218
4219 <Host "localhost">
4220 Device "/dev/ttyUSB0"
4221 Baudrate 38400
4222 Interval 20
4223
4224 <Slave 1>
4225 Instance "temperature"
4226 Collect "supply-temperature-1"
4227 </Slave>
4228 </Host>
4229
4230 <Data Name> blocks
4231 Data blocks define a mapping between register numbers and the
4232 "types" used by collectd.
4233
4234 Within <Data /> blocks, the following options are allowed:
4235
4236 RegisterBase Number
4237 Configures the base register to read from the device. If the
4238 option RegisterType has been set to Uint32 or Float, this and
4239 the next register will be read (the register number is
4240 increased by one).
4241
4242 RegisterType
4243 Int16|Int32|Int64|Uint16|Uint32|UInt64|Float|Int32LE|Uint32LE|FloatLE
4244 Specifies what kind of data is returned by the device. This
4245 defaults to Uint16. If the type is Int32, Int32LE, Uint32,
4246 Uint32LE, Float or FloatLE, two 16 bit registers at
4247 RegisterBase and RegisterBase+1 will be read and the data is
4248 combined into one 32 value. For Int32, Uint32 and Float the
4249 most significant 16 bits are in the register at RegisterBase
4250 and the least significant 16 bits are in the register at
4251 RegisterBase+1. For Int32LE, Uint32LE, or Float32LE, the high
4252 and low order registers are swapped with the most significant
4253 16 bits in the RegisterBase+1 and the least significant 16 bits
4254 in RegisterBase. If the type is Int64 or UInt64, four 16 bit
4255 registers at RegisterBase, RegisterBase+1, RegisterBase+2 and
4256 RegisterBase+3 will be read and the data combined into one
4257 64 value.
4258
4259 RegisterCmd ReadHolding|ReadInput
4260 Specifies register type to be collected from device. Works only
4261 with libmodbus 2.9.2 or higher. Defaults to ReadHolding.
4262
4263 Type Type
4264 Specifies the "type" (data set) to use when dispatching the
4265 value to collectd. Currently, only data sets with exactly one
4266 data source are supported.
4267
4268 Instance Instance
4269 Sets the type instance to use when dispatching the value to
4270 Instance. If unset, an empty string (no type instance) is used.
4271
4272 Scale Value
4273 The values taken from device are multiplied by Value. The field
4274 is optional and the default is 1.0.
4275
4276 Shift Value
4277 Value is added to values from device after they have been
4278 multiplied by Scale value. The field is optional and the
4279 default value is 0.0.
4280
4281 <Host Name> blocks
4282 Host blocks are used to specify to which hosts to connect and what
4283 data to read from their "slaves". The string argument Name is used
4284 as hostname when dispatching the values to collectd.
4285
4286 Within <Host /> blocks, the following options are allowed:
4287
4288 Address Hostname
4289 For Modbus/TCP, specifies the node name (the actual network
4290 address) used to connect to the host. This may be an IP address
4291 or a hostname. Please note that the used libmodbus library only
4292 supports IPv4 at the moment.
4293
4294 Port Service
4295 for Modbus/TCP, specifies the port used to connect to the host.
4296 The port can either be given as a number or as a service name.
4297 Please note that the Service argument must be a string, even if
4298 ports are given in their numerical form. Defaults to "502".
4299
4300 Device Devicenode
4301 For Modbus/RTU, specifies the path to the serial device being
4302 used.
4303
4304 Baudrate Baudrate
4305 For Modbus/RTU, specifies the baud rate of the serial device.
4306 Note, connections currently support only 8/N/1.
4307
4308 UARTType UARTType
4309 For Modbus/RTU, specifies the type of the serial device.
4310 RS232, RS422 and RS485 are supported. Defaults to RS232.
4311 Available only on Linux systems with libmodbus>=2.9.4.
4312
4313 Interval Interval
4314 Sets the interval (in seconds) in which the values will be
4315 collected from this host. By default the global Interval
4316 setting will be used.
4317
4318 <Slave ID>
4319 Over each connection, multiple Modbus devices may be reached.
4320 The slave ID is used to specify which device should be
4321 addressed. For each device you want to query, one Slave block
4322 must be given.
4323
4324 Within <Slave /> blocks, the following options are allowed:
4325
4326 Instance Instance
4327 Specify the plugin instance to use when dispatching the
4328 values to collectd. By default "slave_ID" is used.
4329
4330 Collect DataName
4331 Specifies which data to retrieve from the device. DataName
4332 must be the same string as the Name argument passed to a
4333 Data block. You can specify this option multiple times to
4334 collect more than one value from a slave. At least one
4335 Collect option is mandatory.
4336
4337 Plugin "mqtt"
4338 The MQTT plugin can send metrics to MQTT (Publish blocks) and receive
4339 values from MQTT (Subscribe blocks).
4340
4341 Synopsis:
4342
4343 <Plugin mqtt>
4344 <Publish "name">
4345 Host "mqtt.example.com"
4346 Prefix "collectd"
4347 </Publish>
4348 <Subscribe "name">
4349 Host "mqtt.example.com"
4350 Topic "collectd/#"
4351 </Subscribe>
4352 </Plugin>
4353
4354 The plugin's configuration is in Publish and/or Subscribe blocks,
4355 configuring the sending and receiving direction respectively. The
4356 plugin will register a write callback named "mqtt/name" where name is
4357 the string argument given to the Publish block. Both types of blocks
4358 share many but not all of the following options. If an option is valid
4359 in only one of the blocks, it will be mentioned explicitly.
4360
4361 Options:
4362
4363 Host Hostname
4364 Hostname of the MQTT broker to connect to.
4365
4366 Port Service
4367 Port number or service name of the MQTT broker to connect to.
4368
4369 User UserName
4370 Username used when authenticating to the MQTT broker.
4371
4372 Password Password
4373 Password used when authenticating to the MQTT broker.
4374
4375 ClientId ClientId
4376 MQTT client ID to use. Defaults to the hostname used by collectd.
4377
4378 QoS [0-2]
4379 Sets the Quality of Service, with the values 0, 1 and 2 meaning:
4380
4381 0 At most once
4382
4383 1 At least once
4384
4385 2 Exactly once
4386
4387 In Publish blocks, this option determines the QoS flag set on
4388 outgoing messages and defaults to 0. In Subscribe blocks,
4389 determines the maximum QoS setting the client is going to accept
4390 and defaults to 2. If the QoS flag on a message is larger than the
4391 maximum accepted QoS of a subscriber, the message's QoS will be
4392 downgraded.
4393
4394 Prefix Prefix (Publish only)
4395 This plugin will use one topic per value list which will looks like
4396 a path. Prefix is used as the first path element and defaults to
4397 collectd.
4398
4399 An example topic name would be:
4400
4401 collectd/cpu-0/cpu-user
4402
4403 Retain false|true (Publish only)
4404 Controls whether the MQTT broker will retain (keep a copy of) the
4405 last message sent to each topic and deliver it to new subscribers.
4406 Defaults to false.
4407
4408 StoreRates true|false (Publish only)
4409 Controls whether "DERIVE" and "COUNTER" metrics are converted to a
4410 rate before sending. Defaults to true.
4411
4412 CleanSession true|false (Subscribe only)
4413 Controls whether the MQTT "cleans" the session up after the
4414 subscriber disconnects or if it maintains the subscriber's
4415 subscriptions and all messages that arrive while the subscriber is
4416 disconnected. Defaults to true.
4417
4418 Topic TopicName (Subscribe only)
4419 Configures the topic(s) to subscribe to. You can use the single
4420 level "+" and multi level "#" wildcards. Defaults to collectd/#,
4421 i.e. all topics beneath the collectd branch.
4422
4423 CACert file
4424 Path to the PEM-encoded CA certificate file. Setting this option
4425 enables TLS communication with the MQTT broker, and as such, Port
4426 should be the TLS-enabled port of the MQTT broker. This option
4427 enables the use of TLS.
4428
4429 CertificateFile file
4430 Path to the PEM-encoded certificate file to use as client
4431 certificate when connecting to the MQTT broker. Only valid if
4432 CACert and CertificateKeyFile are also set.
4433
4434 CertificateKeyFile file
4435 Path to the unencrypted PEM-encoded key file corresponding to
4436 CertificateFile. Only valid if CACert and CertificateFile are also
4437 set.
4438
4439 TLSProtocol protocol
4440 If configured, this specifies the string protocol version (e.g.
4441 "tlsv1", "tlsv1.2") to use for the TLS connection to the broker. If
4442 not set a default version is used which depends on the version of
4443 OpenSSL the Mosquitto library was linked against. Only valid if
4444 CACert is set.
4445
4446 CipherSuite ciphersuite
4447 A string describing the ciphers available for use. See ciphers(1)
4448 and the "openssl ciphers" utility for more information. If unset,
4449 the default ciphers will be used. Only valid if CACert is set.
4450
4451 Plugin "mysql"
4452 The "mysql plugin" requires mysqlclient to be installed. It connects to
4453 one or more databases when started and keeps the connection up as long
4454 as possible. When the connection is interrupted for whatever reason it
4455 will try to re-connect. The plugin will complain loudly in case
4456 anything goes wrong.
4457
4458 This plugin issues the MySQL "SHOW STATUS" / "SHOW GLOBAL STATUS"
4459 command and collects information about MySQL network traffic, executed
4460 statements, requests, the query cache and threads by evaluating the
4461 "Bytes_{received,sent}", "Com_*", "Handler_*", "Qcache_*" and
4462 "Threads_*" return values. Please refer to the MySQL reference manual,
4463 5.1.6. Server Status Variables for an explanation of these values.
4464
4465 Optionally, master and slave statistics may be collected in a MySQL
4466 replication setup. In that case, information about the synchronization
4467 state of the nodes are collected by evaluating the "Position" return
4468 value of the "SHOW MASTER STATUS" command and the
4469 "Seconds_Behind_Master", "Read_Master_Log_Pos" and
4470 "Exec_Master_Log_Pos" return values of the "SHOW SLAVE STATUS" command.
4471 See the MySQL reference manual, 12.5.5.21 SHOW MASTER STATUS Syntax and
4472 12.5.5.31 SHOW SLAVE STATUS Syntax for details.
4473
4474 Synopsis:
4475
4476 <Plugin mysql>
4477 <Database foo>
4478 Host "hostname"
4479 User "username"
4480 Password "password"
4481 Port "3306"
4482 MasterStats true
4483 ConnectTimeout 10
4484 SSLKey "/path/to/key.pem"
4485 SSLCert "/path/to/cert.pem"
4486 SSLCA "/path/to/ca.pem"
4487 SSLCAPath "/path/to/cas/"
4488 SSLCipher "DHE-RSA-AES256-SHA"
4489 </Database>
4490
4491 <Database bar>
4492 Alias "squeeze"
4493 Host "localhost"
4494 Socket "/var/run/mysql/mysqld.sock"
4495 SlaveStats true
4496 SlaveNotifications true
4497 </Database>
4498
4499 <Database galera>
4500 Alias "galera"
4501 Host "localhost"
4502 Socket "/var/run/mysql/mysqld.sock"
4503 WsrepStats true
4504 </Database>
4505 </Plugin>
4506
4507 A Database block defines one connection to a MySQL database. It accepts
4508 a single argument which specifies the name of the database. None of the
4509 other options are required. MySQL will use default values as documented
4510 in the "mysql_real_connect()" and "mysql_ssl_set()" sections in the
4511 MySQL reference manual.
4512
4513 Alias Alias
4514 Alias to use as sender instead of hostname when reporting. This may
4515 be useful when having cryptic hostnames.
4516
4517 Host Hostname
4518 Hostname of the database server. Defaults to localhost.
4519
4520 User Username
4521 Username to use when connecting to the database. The user does not
4522 have to be granted any privileges (which is synonym to granting the
4523 "USAGE" privilege), unless you want to collect replication
4524 statistics (see MasterStats and SlaveStats below). In this case,
4525 the user needs the "REPLICATION CLIENT" (or "SUPER") privileges.
4526 Else, any existing MySQL user will do.
4527
4528 Password Password
4529 Password needed to log into the database.
4530
4531 Database Database
4532 Select this database. Defaults to no database which is a perfectly
4533 reasonable option for what this plugin does.
4534
4535 Port Port
4536 TCP-port to connect to. The port must be specified in its numeric
4537 form, but it must be passed as a string nonetheless. For example:
4538
4539 Port "3306"
4540
4541 If Host is set to localhost (the default), this setting has no
4542 effect. See the documentation for the "mysql_real_connect"
4543 function for details.
4544
4545 Socket Socket
4546 Specifies the path to the UNIX domain socket of the MySQL server.
4547 This option only has any effect, if Host is set to localhost (the
4548 default). Otherwise, use the Port option above. See the
4549 documentation for the "mysql_real_connect" function for details.
4550
4551 InnodbStats true|false
4552 If enabled, metrics about the InnoDB storage engine are collected.
4553 Disabled by default.
4554
4555 MasterStats true|false
4556 SlaveStats true|false
4557 Enable the collection of master / slave statistics in a replication
4558 setup. In order to be able to get access to these statistics, the
4559 user needs special privileges. See the User documentation above.
4560 Defaults to false.
4561
4562 SlaveNotifications true|false
4563 If enabled, the plugin sends a notification if the replication
4564 slave I/O and / or SQL threads are not running. Defaults to false.
4565
4566 WsrepStats true|false
4567 Enable the collection of wsrep plugin statistics, used in Master-
4568 Master replication setups like in MySQL Galera/Percona XtraDB
4569 Cluster. User needs only privileges to execute 'SHOW GLOBAL
4570 STATUS'. Defaults to false.
4571
4572 ConnectTimeout Seconds
4573 Sets the connect timeout for the MySQL client.
4574
4575 SSLKey Path
4576 If provided, the X509 key in PEM format.
4577
4578 SSLCert Path
4579 If provided, the X509 cert in PEM format.
4580
4581 SSLCA Path
4582 If provided, the CA file in PEM format (check OpenSSL docs).
4583
4584 SSLCAPath Path
4585 If provided, the CA directory (check OpenSSL docs).
4586
4587 SSLCipher String
4588 If provided, the SSL cipher to use.
4589
4590 Plugin "netapp"
4591 The netapp plugin can collect various performance and capacity
4592 information from a NetApp filer using the NetApp API.
4593
4594 Please note that NetApp has a wide line of products and a lot of
4595 different software versions for each of these products. This plugin was
4596 developed for a NetApp FAS3040 running OnTap 7.2.3P8 and tested on
4597 FAS2050 7.3.1.1L1, FAS3140 7.2.5.1 and FAS3020 7.2.4P9. It should work
4598 for most combinations of model and software version but it is very hard
4599 to test this. If you have used this plugin with other models and/or
4600 software version, feel free to send us a mail to tell us about the
4601 results, even if it's just a short "It works".
4602
4603 To collect these data collectd will log in to the NetApp via HTTP(S)
4604 and HTTP basic authentication.
4605
4606 Do not use a regular user for this! Create a special collectd user with
4607 just the minimum of capabilities needed. The user only needs the
4608 "login-http-admin" capability as well as a few more depending on which
4609 data will be collected. Required capabilities are documented below.
4610
4611 Synopsis
4612
4613 <Plugin "netapp">
4614 <Host "netapp1.example.com">
4615 Protocol "https"
4616 Address "10.0.0.1"
4617 Port 443
4618 User "username"
4619 Password "aef4Aebe"
4620 Interval 30
4621
4622 <WAFL>
4623 Interval 30
4624 GetNameCache true
4625 GetDirCache true
4626 GetBufferCache true
4627 GetInodeCache true
4628 </WAFL>
4629
4630 <Disks>
4631 Interval 30
4632 GetBusy true
4633 </Disks>
4634
4635 <VolumePerf>
4636 Interval 30
4637 GetIO "volume0"
4638 IgnoreSelectedIO false
4639 GetOps "volume0"
4640 IgnoreSelectedOps false
4641 GetLatency "volume0"
4642 IgnoreSelectedLatency false
4643 </VolumePerf>
4644
4645 <VolumeUsage>
4646 Interval 30
4647 GetCapacity "vol0"
4648 GetCapacity "vol1"
4649 IgnoreSelectedCapacity false
4650 GetSnapshot "vol1"
4651 GetSnapshot "vol3"
4652 IgnoreSelectedSnapshot false
4653 </VolumeUsage>
4654
4655 <Quota>
4656 Interval 60
4657 </Quota>
4658
4659 <Snapvault>
4660 Interval 30
4661 </Snapvault>
4662
4663 <System>
4664 Interval 30
4665 GetCPULoad true
4666 GetInterfaces true
4667 GetDiskOps true
4668 GetDiskIO true
4669 </System>
4670
4671 <VFiler vfilerA>
4672 Interval 60
4673
4674 SnapVault true
4675 # ...
4676 </VFiler>
4677 </Host>
4678 </Plugin>
4679
4680 The netapp plugin accepts the following configuration options:
4681
4682 Host Name
4683 A host block defines one NetApp filer. It will appear in collectd
4684 with the name you specify here which does not have to be its real
4685 name nor its hostname (see the Address option below).
4686
4687 VFiler Name
4688 A VFiler block may only be used inside a host block. It accepts all
4689 the same options as the Host block (except for cascaded VFiler
4690 blocks) and will execute all NetApp API commands in the context of
4691 the specified VFiler(R). It will appear in collectd with the name
4692 you specify here which does not have to be its real name. The
4693 VFiler name may be specified using the VFilerName option. If this
4694 is not specified, it will default to the name you specify here.
4695
4696 The VFiler block inherits all connection related settings from the
4697 surrounding Host block (which appear before the VFiler block) but
4698 they may be overwritten inside the VFiler block.
4699
4700 This feature is useful, for example, when using a VFiler as
4701 SnapVault target (supported since OnTap 8.1). In that case, the
4702 SnapVault statistics are not available in the host filer (vfiler0)
4703 but only in the respective VFiler context.
4704
4705 Protocol httpd|http
4706 The protocol collectd will use to query this host.
4707
4708 Optional
4709
4710 Type: string
4711
4712 Default: https
4713
4714 Valid options: http, https
4715
4716 Address Address
4717 The hostname or IP address of the host.
4718
4719 Optional
4720
4721 Type: string
4722
4723 Default: The "host" block's name.
4724
4725 Port Port
4726 The TCP port to connect to on the host.
4727
4728 Optional
4729
4730 Type: integer
4731
4732 Default: 80 for protocol "http", 443 for protocol "https"
4733
4734 User User
4735 Password Password
4736 The username and password to use to login to the NetApp.
4737
4738 Mandatory
4739
4740 Type: string
4741
4742 VFilerName Name
4743 The name of the VFiler in which context to execute API commands. If
4744 not specified, the name provided to the VFiler block will be used
4745 instead.
4746
4747 Optional
4748
4749 Type: string
4750
4751 Default: name of the VFiler block
4752
4753 Note: This option may only be used inside VFiler blocks.
4754
4755 Interval Interval
4756 TODO
4757
4758 The following options decide what kind of data will be collected. You
4759 can either use them as a block and fine tune various parameters inside
4760 this block, use them as a single statement to just accept all default
4761 values, or omit it to not collect any data.
4762
4763 The following options are valid inside all blocks:
4764
4765 Interval Seconds
4766 Collect the respective statistics every Seconds seconds. Defaults
4767 to the host specific setting.
4768
4769 The System block
4770
4771 This will collect various performance data about the whole system.
4772
4773 Note: To get this data the collectd user needs the "api-perf-object-
4774 get-instances" capability.
4775
4776 Interval Seconds
4777 Collect disk statistics every Seconds seconds.
4778
4779 GetCPULoad true|false
4780 If you set this option to true the current CPU usage will be read.
4781 This will be the average usage between all CPUs in your NetApp
4782 without any information about individual CPUs.
4783
4784 Note: These are the same values that the NetApp CLI command
4785 "sysstat" returns in the "CPU" field.
4786
4787 Optional
4788
4789 Type: boolean
4790
4791 Default: true
4792
4793 Result: Two value lists of type "cpu", and type instances "idle"
4794 and "system".
4795
4796 GetInterfaces true|false
4797 If you set this option to true the current traffic of the network
4798 interfaces will be read. This will be the total traffic over all
4799 interfaces of your NetApp without any information about individual
4800 interfaces.
4801
4802 Note: This is the same values that the NetApp CLI command "sysstat"
4803 returns in the "Net kB/s" field.
4804
4805 Or is it?
4806
4807 Optional
4808
4809 Type: boolean
4810
4811 Default: true
4812
4813 Result: One value list of type "if_octects".
4814
4815 GetDiskIO true|false
4816 If you set this option to true the current IO throughput will be
4817 read. This will be the total IO of your NetApp without any
4818 information about individual disks, volumes or aggregates.
4819
4820 Note: This is the same values that the NetApp CLI command "sysstat"
4821 returns in the "Disk kB/s" field.
4822
4823 Optional
4824
4825 Type: boolean
4826
4827 Default: true
4828
4829 Result: One value list of type "disk_octets".
4830
4831 GetDiskOps true|false
4832 If you set this option to true the current number of HTTP, NFS,
4833 CIFS, FCP, iSCSI, etc. operations will be read. This will be the
4834 total number of operations on your NetApp without any information
4835 about individual volumes or aggregates.
4836
4837 Note: These are the same values that the NetApp CLI command
4838 "sysstat" returns in the "NFS", "CIFS", "HTTP", "FCP" and "iSCSI"
4839 fields.
4840
4841 Optional
4842
4843 Type: boolean
4844
4845 Default: true
4846
4847 Result: A variable number of value lists of type
4848 "disk_ops_complex". Each type of operation will result in one value
4849 list with the name of the operation as type instance.
4850
4851 The WAFL block
4852
4853 This will collect various performance data about the WAFL file system.
4854 At the moment this just means cache performance.
4855
4856 Note: To get this data the collectd user needs the "api-perf-object-
4857 get-instances" capability.
4858
4859 Note: The interface to get these values is classified as "Diagnostics"
4860 by NetApp. This means that it is not guaranteed to be stable even
4861 between minor releases.
4862
4863 Interval Seconds
4864 Collect disk statistics every Seconds seconds.
4865
4866 GetNameCache true|false
4867 Optional
4868
4869 Type: boolean
4870
4871 Default: true
4872
4873 Result: One value list of type "cache_ratio" and type instance
4874 "name_cache_hit".
4875
4876 GetDirCache true|false
4877 Optional
4878
4879 Type: boolean
4880
4881 Default: true
4882
4883 Result: One value list of type "cache_ratio" and type instance
4884 "find_dir_hit".
4885
4886 GetInodeCache true|false
4887 Optional
4888
4889 Type: boolean
4890
4891 Default: true
4892
4893 Result: One value list of type "cache_ratio" and type instance
4894 "inode_cache_hit".
4895
4896 GetBufferCache true|false
4897 Note: This is the same value that the NetApp CLI command "sysstat"
4898 returns in the "Cache hit" field.
4899
4900 Optional
4901
4902 Type: boolean
4903
4904 Default: true
4905
4906 Result: One value list of type "cache_ratio" and type instance
4907 "buf_hash_hit".
4908
4909 The Disks block
4910
4911 This will collect performance data about the individual disks in the
4912 NetApp.
4913
4914 Note: To get this data the collectd user needs the "api-perf-object-
4915 get-instances" capability.
4916
4917 Interval Seconds
4918 Collect disk statistics every Seconds seconds.
4919
4920 GetBusy true|false
4921 If you set this option to true the busy time of all disks will be
4922 calculated and the value of the busiest disk in the system will be
4923 written.
4924
4925 Note: This is the same values that the NetApp CLI command "sysstat"
4926 returns in the "Disk util" field. Probably.
4927
4928 Optional
4929
4930 Type: boolean
4931
4932 Default: true
4933
4934 Result: One value list of type "percent" and type instance
4935 "disk_busy".
4936
4937 The VolumePerf block
4938
4939 This will collect various performance data about the individual
4940 volumes.
4941
4942 You can select which data to collect about which volume using the
4943 following options. They follow the standard ignorelist semantic.
4944
4945 Note: To get this data the collectd user needs the api-perf-object-get-
4946 instances capability.
4947
4948 Interval Seconds
4949 Collect volume performance data every Seconds seconds.
4950
4951 GetIO Volume
4952 GetOps Volume
4953 GetLatency Volume
4954 Select the given volume for IO, operations or latency statistics
4955 collection. The argument is the name of the volume without the
4956 "/vol/" prefix.
4957
4958 Since the standard ignorelist functionality is used here, you can
4959 use a string starting and ending with a slash to specify regular
4960 expression matching: To match the volumes "vol0", "vol2" and
4961 "vol7", you can use this regular expression:
4962
4963 GetIO "/^vol[027]$/"
4964
4965 If no regular expression is specified, an exact match is required.
4966 Both, regular and exact matching are case sensitive.
4967
4968 If no volume was specified at all for either of the three options,
4969 that data will be collected for all available volumes.
4970
4971 See /"IGNORELISTS" for details.
4972
4973 IgnoreSelectedIO true|false
4974 IgnoreSelectedOps true|false
4975 IgnoreSelectedLatency true|false
4976 When set to true, the volumes selected for IO, operations or
4977 latency statistics collection will be ignored and the data will be
4978 collected for all other volumes.
4979
4980 When set to false, data will only be collected for the specified
4981 volumes and all other volumes will be ignored.
4982
4983 If no volumes have been specified with the above Get* options, all
4984 volumes will be collected regardless of the IgnoreSelected* option.
4985
4986 Defaults to false
4987
4988 The VolumeUsage block
4989
4990 This will collect capacity data about the individual volumes.
4991
4992 Note: To get this data the collectd user needs the api-volume-list-info
4993 capability.
4994
4995 Interval Seconds
4996 Collect volume usage statistics every Seconds seconds.
4997
4998 GetCapacity VolumeName
4999 The current capacity of the volume will be collected. This will
5000 result in two to four value lists, depending on the configuration
5001 of the volume. All data sources are of type "df_complex" with the
5002 name of the volume as plugin_instance.
5003
5004 There will be type_instances "used" and "free" for the number of
5005 used and available bytes on the volume. If the volume has some
5006 space reserved for snapshots, a type_instance "snap_reserved" will
5007 be available. If the volume has SIS enabled, a type_instance
5008 "sis_saved" will be available. This is the number of bytes saved by
5009 the SIS feature.
5010
5011 Note: The current NetApp API has a bug that results in this value
5012 being reported as a 32 bit number. This plugin tries to guess the
5013 correct number which works most of the time. If you see strange
5014 values here, bug NetApp support to fix this.
5015
5016 Repeat this option to specify multiple volumes.
5017
5018 IgnoreSelectedCapacity true|false
5019 Specify whether to collect only the volumes selected by the
5020 GetCapacity option or to ignore those volumes.
5021 IgnoreSelectedCapacity defaults to false. However, if no
5022 GetCapacity option is specified at all, all capacities will be
5023 selected anyway.
5024
5025 GetSnapshot VolumeName
5026 Select volumes from which to collect snapshot information.
5027
5028 Usually, the space used for snapshots is included in the space
5029 reported as "used". If snapshot information is collected as well,
5030 the space used for snapshots is subtracted from the used space.
5031
5032 To make things even more interesting, it is possible to reserve
5033 space to be used for snapshots. If the space required for snapshots
5034 is less than that reserved space, there is "reserved free" and
5035 "reserved used" space in addition to "free" and "used". If the
5036 space required for snapshots exceeds the reserved space, that part
5037 allocated in the normal space is subtracted from the "used" space
5038 again.
5039
5040 Repeat this option to specify multiple volumes.
5041
5042 IgnoreSelectedSnapshot
5043 Specify whether to collect only the volumes selected by the
5044 GetSnapshot option or to ignore those volumes.
5045 IgnoreSelectedSnapshot defaults to false. However, if no
5046 GetSnapshot option is specified at all, all capacities will be
5047 selected anyway.
5048
5049 The Quota block
5050
5051 This will collect (tree) quota statistics (used disk space and number
5052 of used files). This mechanism is useful to get usage information for
5053 single qtrees. In case the quotas are not used for any other purpose,
5054 an entry similar to the following in "/etc/quotas" would be sufficient:
5055
5056 /vol/volA/some_qtree tree - - - - -
5057
5058 After adding the entry, issue "quota on -w volA" on the NetApp filer.
5059
5060 Interval Seconds
5061 Collect SnapVault(R) statistics every Seconds seconds.
5062
5063 The SnapVault block
5064
5065 This will collect statistics about the time and traffic of SnapVault(R)
5066 transfers.
5067
5068 Interval Seconds
5069 Collect SnapVault(R) statistics every Seconds seconds.
5070
5071 Plugin "netlink"
5072 The "netlink" plugin uses a netlink socket to query the Linux kernel
5073 about statistics of various interface and routing aspects.
5074
5075 Interface Interface
5076 VerboseInterface Interface
5077 Instruct the plugin to collect interface statistics. This is
5078 basically the same as the statistics provided by the "interface"
5079 plugin (see above) but potentially much more detailed.
5080
5081 When configuring with Interface only the basic statistics will be
5082 collected, namely octets, packets, and errors. These statistics are
5083 collected by the "interface" plugin, too, so using both at the same
5084 time is no benefit.
5085
5086 When configured with VerboseInterface all counters except the basic
5087 ones will be collected, so that no data needs to be collected twice
5088 if you use the "interface" plugin. This includes dropped packets,
5089 received multicast packets, collisions and a whole zoo of
5090 differentiated RX and TX errors. You can try the following command
5091 to get an idea of what awaits you:
5092
5093 ip -s -s link list
5094
5095 If Interface is All, all interfaces will be selected.
5096
5097 QDisc Interface [QDisc]
5098 Class Interface [Class]
5099 Filter Interface [Filter]
5100 Collect the octets and packets that pass a certain qdisc, class or
5101 filter.
5102
5103 QDiscs and classes are identified by their type and handle (or
5104 classid). Filters don't necessarily have a handle, therefore the
5105 parent's handle is used. The notation used in collectd differs
5106 from that used in tc(1) in that it doesn't skip the major or minor
5107 number if it's zero and doesn't print special ids by their name.
5108 So, for example, a qdisc may be identified by "pfifo_fast-1:0" even
5109 though the minor number of all qdiscs is zero and thus not
5110 displayed by tc(1).
5111
5112 If QDisc, Class, or Filter is given without the second argument,
5113 i. .e. without an identifier, all qdiscs, classes, or filters that
5114 are associated with that interface will be collected.
5115
5116 Since a filter itself doesn't necessarily have a handle, the
5117 parent's handle is used. This may lead to problems when more than
5118 one filter is attached to a qdisc or class. This isn't nice, but we
5119 don't know how this could be done any better. If you have a idea,
5120 please don't hesitate to tell us.
5121
5122 As with the Interface option you can specify All as the interface,
5123 meaning all interfaces.
5124
5125 Here are some examples to help you understand the above text more
5126 easily:
5127
5128 <Plugin netlink>
5129 VerboseInterface "All"
5130 QDisc "eth0" "pfifo_fast-1:0"
5131 QDisc "ppp0"
5132 Class "ppp0" "htb-1:10"
5133 Filter "ppp0" "u32-1:0"
5134 </Plugin>
5135
5136 See /"IGNORELISTS" for details.
5137
5138 IgnoreSelected
5139 The behavior is the same as with all other similar plugins: If
5140 nothing is selected at all, everything is collected. If some things
5141 are selected using the options described above, only these
5142 statistics are collected. If you set IgnoreSelected to true, this
5143 behavior is inverted, i. e. the specified statistics will not be
5144 collected.
5145
5146 Plugin "network"
5147 The Network plugin sends data to a remote instance of collectd,
5148 receives data from a remote instance, or both at the same time. Data
5149 which has been received from the network is usually not transmitted
5150 again, but this can be activated, see the Forward option below.
5151
5152 The default IPv6 multicast group is "ff18::efc0:4a42". The default IPv4
5153 multicast group is 239.192.74.66. The default UDP port is 25826.
5154
5155 Both, Server and Listen can be used as single option or as block. When
5156 used as block, given options are valid for this socket only. The
5157 following example will export the metrics twice: Once to an "internal"
5158 server (without encryption and signing) and one to an external server
5159 (with cryptographic signature):
5160
5161 <Plugin "network">
5162 # Export to an internal server
5163 # (demonstrates usage without additional options)
5164 Server "collectd.internal.tld"
5165
5166 # Export to an external server
5167 # (demonstrates usage with signature options)
5168 <Server "collectd.external.tld">
5169 SecurityLevel "sign"
5170 Username "myhostname"
5171 Password "ohl0eQue"
5172 </Server>
5173 </Plugin>
5174
5175 <Server Host [Port]>
5176 The Server statement/block sets the server to send datagrams to.
5177 The statement may occur multiple times to send each datagram to
5178 multiple destinations.
5179
5180 The argument Host may be a hostname, an IPv4 address or an IPv6
5181 address. The optional second argument specifies a port number or a
5182 service name. If not given, the default, 25826, is used.
5183
5184 The following options are recognized within Server blocks:
5185
5186 SecurityLevel Encrypt|Sign|None
5187 Set the security you require for network communication. When
5188 the security level has been set to Encrypt, data sent over the
5189 network will be encrypted using AES-256. The integrity of
5190 encrypted packets is ensured using SHA-1. When set to Sign,
5191 transmitted data is signed using the HMAC-SHA-256 message
5192 authentication code. When set to None, data is sent without any
5193 security.
5194
5195 This feature is only available if the network plugin was linked
5196 with libgcrypt.
5197
5198 Username Username
5199 Sets the username to transmit. This is used by the server to
5200 lookup the password. See AuthFile below. All security levels
5201 except None require this setting.
5202
5203 This feature is only available if the network plugin was linked
5204 with libgcrypt.
5205
5206 Password Password
5207 Sets a password (shared secret) for this socket. All security
5208 levels except None require this setting.
5209
5210 This feature is only available if the network plugin was linked
5211 with libgcrypt.
5212
5213 Interface Interface name
5214 Set the outgoing interface for IP packets. This applies at
5215 least to IPv6 packets and if possible to IPv4. If this option
5216 is not applicable, undefined or a non-existent interface name
5217 is specified, the default behavior is to let the kernel choose
5218 the appropriate interface. Be warned that the manual selection
5219 of an interface for unicast traffic is only necessary in rare
5220 cases.
5221
5222 BindAddress IP Address
5223 Set the outgoing IP address for IP packets. This option can be
5224 used instead of the Interface option to explicitly define the
5225 IP address which will be used to send Packets to the remote
5226 server.
5227
5228 ResolveInterval Seconds
5229 Sets the interval at which to re-resolve the DNS for the Host.
5230 This is useful to force a regular DNS lookup to support a high
5231 availability setup. If not specified, re-resolves are never
5232 attempted.
5233
5234 <Listen Host [Port]>
5235 The Listen statement sets the interfaces to bind to. When multiple
5236 statements are found the daemon will bind to multiple interfaces.
5237
5238 The argument Host may be a hostname, an IPv4 address or an IPv6
5239 address. If the argument is a multicast address the daemon will
5240 join that multicast group. The optional second argument specifies
5241 a port number or a service name. If not given, the default, 25826,
5242 is used.
5243
5244 The following options are recognized within "<Listen>" blocks:
5245
5246 SecurityLevel Encrypt|Sign|None
5247 Set the security you require for network communication. When
5248 the security level has been set to Encrypt, only encrypted data
5249 will be accepted. The integrity of encrypted packets is ensured
5250 using SHA-1. When set to Sign, only signed and encrypted data
5251 is accepted. When set to None, all data will be accepted. If an
5252 AuthFile option was given (see below), encrypted data is
5253 decrypted if possible.
5254
5255 This feature is only available if the network plugin was linked
5256 with libgcrypt.
5257
5258 AuthFile Filename
5259 Sets a file in which usernames are mapped to passwords. These
5260 passwords are used to verify signatures and to decrypt
5261 encrypted network packets. If SecurityLevel is set to None,
5262 this is optional. If given, signed data is verified and
5263 encrypted packets are decrypted. Otherwise, signed data is
5264 accepted without checking the signature and encrypted data
5265 cannot be decrypted. For the other security levels this option
5266 is mandatory.
5267
5268 The file format is very simple: Each line consists of a
5269 username followed by a colon and any number of spaces followed
5270 by the password. To demonstrate, an example file could look
5271 like this:
5272
5273 user0: foo
5274 user1: bar
5275
5276 Each time a packet is received, the modification time of the
5277 file is checked using stat(2). If the file has been changed,
5278 the contents is re-read. While the file is being read, it is
5279 locked using fcntl(2).
5280
5281 Interface Interface name
5282 Set the incoming interface for IP packets explicitly. This
5283 applies at least to IPv6 packets and if possible to IPv4. If
5284 this option is not applicable, undefined or a non-existent
5285 interface name is specified, the default behavior is, to let
5286 the kernel choose the appropriate interface. Thus incoming
5287 traffic gets only accepted, if it arrives on the given
5288 interface.
5289
5290 TimeToLive 1-255
5291 Set the time-to-live of sent packets. This applies to all, unicast
5292 and multicast, and IPv4 and IPv6 packets. The default is to not
5293 change this value. That means that multicast packets will be sent
5294 with a TTL of 1 (one) on most operating systems.
5295
5296 MaxPacketSize 1024-65535
5297 Set the maximum size for datagrams received over the network.
5298 Packets larger than this will be truncated. Defaults to 1452 bytes,
5299 which is the maximum payload size that can be transmitted in one
5300 Ethernet frame using IPv6 / UDP.
5301
5302 On the server side, this limit should be set to the largest value
5303 used on any client. Likewise, the value on the client must not be
5304 larger than the value on the server, or data will be lost.
5305
5306 Compatibility: Versions prior to version 4.8 used a fixed sized
5307 buffer of 1024 bytes. Versions 4.8, 4.9 and 4.10 used a default
5308 value of 1024 bytes to avoid problems when sending data to an older
5309 server.
5310
5311 Forward true|false
5312 If set to true, write packets that were received via the network
5313 plugin to the sending sockets. This should only be activated when
5314 the Listen- and Server-statements differ. Otherwise packets may be
5315 send multiple times to the same multicast group. While this results
5316 in more network traffic than necessary it's not a huge problem
5317 since the plugin has a duplicate detection, so the values will not
5318 loop.
5319
5320 ReportStats true|false
5321 The network plugin cannot only receive and send statistics, it can
5322 also create statistics about itself. Collectd data included the
5323 number of received and sent octets and packets, the length of the
5324 receive queue and the number of values handled. When set to true,
5325 the Network plugin will make these statistics available. Defaults
5326 to false.
5327
5328 Plugin "nfs"
5329 The nfs plugin collects information about the usage of the Network File
5330 System (NFS). It counts the number of procedure calls for each
5331 procedure, grouped by version and whether the system runs as server or
5332 client.
5333
5334 It is possibly to omit metrics for a specific NFS version by setting
5335 one or more of the following options to false (all of them default to
5336 true).
5337
5338 ReportV2 true|false
5339 ReportV3 true|false
5340 ReportV4 true|false
5341
5342 Plugin "nginx"
5343 This plugin collects the number of connections and requests handled by
5344 the "nginx daemon" (speak: engine X), a HTTP and mail server/proxy. It
5345 queries the page provided by the "ngx_http_stub_status_module" module,
5346 which isn't compiled by default. Please refer to
5347 <http://wiki.codemongers.com/NginxStubStatusModule> for more
5348 information on how to compile and configure nginx and this module.
5349
5350 The following options are accepted by the "nginx plugin":
5351
5352 URL http://host/nginx_status
5353 Sets the URL of the "ngx_http_stub_status_module" output.
5354
5355 User Username
5356 Optional user name needed for authentication.
5357
5358 Password Password
5359 Optional password needed for authentication.
5360
5361 VerifyPeer true|false
5362 Enable or disable peer SSL certificate verification. See
5363 <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
5364 default.
5365
5366 VerifyHost true|false
5367 Enable or disable peer host name verification. If enabled, the
5368 plugin checks if the "Common Name" or a "Subject Alternate Name"
5369 field of the SSL certificate matches the host name provided by the
5370 URL option. If this identity check fails, the connection is
5371 aborted. Obviously, only works when connecting to a SSL enabled
5372 server. Enabled by default.
5373
5374 CACert File
5375 File that holds one or more SSL certificates. If you want to use
5376 HTTPS you will possibly need this option. What CA certificates come
5377 bundled with "libcurl" and are checked by default depends on the
5378 distribution you use.
5379
5380 Timeout Milliseconds
5381 The Timeout option sets the overall timeout for HTTP requests to
5382 URL, in milliseconds. By default, the configured Interval is used
5383 to set the timeout.
5384
5385 Plugin "notify_desktop"
5386 This plugin sends a desktop notification to a notification daemon, as
5387 defined in the Desktop Notification Specification. To actually display
5388 the notifications, notification-daemon is required and collectd has to
5389 be able to access the X server (i. e., the "DISPLAY" and "XAUTHORITY"
5390 environment variables have to be set correctly) and the D-Bus message
5391 bus.
5392
5393 The Desktop Notification Specification can be found at
5394 <http://www.galago-project.org/specs/notification/>.
5395
5396 OkayTimeout timeout
5397 WarningTimeout timeout
5398 FailureTimeout timeout
5399 Set the timeout, in milliseconds, after which to expire the
5400 notification for "OKAY", "WARNING" and "FAILURE" severities
5401 respectively. If zero has been specified, the displayed
5402 notification will not be closed at all - the user has to do so
5403 herself. These options default to 5000. If a negative number has
5404 been specified, the default is used as well.
5405
5406 Plugin "notify_email"
5407 The notify_email plugin uses the ESMTP library to send notifications to
5408 a configured email address.
5409
5410 libESMTP is available from <http://www.stafford.uklinux.net/libesmtp/>.
5411
5412 Available configuration options:
5413
5414 From Address
5415 Email address from which the emails should appear to come from.
5416
5417 Default: "root@localhost"
5418
5419 Recipient Address
5420 Configures the email address(es) to which the notifications should
5421 be mailed. May be repeated to send notifications to multiple
5422 addresses.
5423
5424 At least one Recipient must be present for the plugin to work
5425 correctly.
5426
5427 SMTPServer Hostname
5428 Hostname of the SMTP server to connect to.
5429
5430 Default: "localhost"
5431
5432 SMTPPort Port
5433 TCP port to connect to.
5434
5435 Default: 25
5436
5437 SMTPUser Username
5438 Username for ASMTP authentication. Optional.
5439
5440 SMTPPassword Password
5441 Password for ASMTP authentication. Optional.
5442
5443 Subject Subject
5444 Subject-template to use when sending emails. There must be exactly
5445 two string-placeholders in the subject, given in the standard
5446 printf(3) syntax, i. e. %s. The first will be replaced with the
5447 severity, the second with the hostname.
5448
5449 Default: "Collectd notify: %s@%s"
5450
5451 Plugin "notify_nagios"
5452 The notify_nagios plugin writes notifications to Nagios' command file
5453 as a passive service check result.
5454
5455 Available configuration options:
5456
5457 CommandFile Path
5458 Sets the command file to write to. Defaults to
5459 /usr/local/nagios/var/rw/nagios.cmd.
5460
5461 Plugin "ntpd"
5462 The "ntpd" plugin collects per-peer ntp data such as time offset and
5463 time dispersion.
5464
5465 For talking to ntpd, it mimics what the ntpdc control program does on
5466 the wire - using mode 7 specific requests. This mode is deprecated with
5467 newer ntpd releases (4.2.7p230 and later). For the "ntpd" plugin to
5468 work correctly with them, the ntp daemon must be explicitly configured
5469 to enable mode 7 (which is disabled by default). Refer to the
5470 ntp.conf(5) manual page for details.
5471
5472 Available configuration options for the "ntpd" plugin:
5473
5474 Host Hostname
5475 Hostname of the host running ntpd. Defaults to localhost.
5476
5477 Port Port
5478 UDP-Port to connect to. Defaults to 123.
5479
5480 ReverseLookups true|false
5481 Sets whether or not to perform reverse lookups on peers. Since the
5482 name or IP-address may be used in a filename it is recommended to
5483 disable reverse lookups. The default is to do reverse lookups to
5484 preserve backwards compatibility, though.
5485
5486 IncludeUnitID true|false
5487 When a peer is a refclock, include the unit ID in the type
5488 instance. Defaults to false for backward compatibility.
5489
5490 If two refclock peers use the same driver and this is false, the
5491 plugin will try to write simultaneous measurements from both to the
5492 same type instance. This will result in error messages in the log
5493 and only one set of measurements making it through.
5494
5495 Plugin "nut"
5496 UPS upsname@hostname[:port]
5497 Add a UPS to collect data from. The format is identical to the one
5498 accepted by upsc(8).
5499
5500 ForceSSL true|false
5501 Stops connections from falling back to unsecured if an SSL
5502 connection cannot be established. Defaults to false if undeclared.
5503
5504 VerifyPeer true|false
5505 If set to true, requires a CAPath be provided. Will use the CAPath
5506 to find certificates to use as Trusted Certificates to validate a
5507 upsd server certificate. If validation of the upsd server
5508 certificate fails, the connection will not be established. If
5509 ForceSSL is undeclared or set to false, setting VerifyPeer to true
5510 will override and set ForceSSL to true.
5511
5512 CAPath I/path/to/certs/folder
5513 If VerifyPeer is set to true, this is required. Otherwise this is
5514 ignored. The folder pointed at must contain certificate(s) named
5515 according to their hash. Ex: XXXXXXXX.Y where X is the hash value
5516 of a cert and Y is 0. If name collisions occur because two
5517 different certs have the same hash value, Y can be incremented in
5518 order to avoid conflict. To create a symbolic link to a certificate
5519 the following command can be used from within the directory where
5520 the cert resides:
5521
5522 "ln -s some.crt ./$(openssl x509 -hash -noout -in some.crt).0"
5523
5524 Alternatively, the package openssl-perl provides a command
5525 "c_rehash" that will generate links like the one described above
5526 for ALL certs in a given folder. Example usage: "c_rehash
5527 /path/to/certs/folder"
5528
5529 ConnectTimeout Milliseconds
5530 The ConnectTimeout option sets the connect timeout, in
5531 milliseconds. By default, the configured Interval is used to set
5532 the timeout.
5533
5534 Plugin "olsrd"
5535 The olsrd plugin connects to the TCP port opened by the txtinfo plugin
5536 of the Optimized Link State Routing daemon and reads information about
5537 the current state of the meshed network.
5538
5539 The following configuration options are understood:
5540
5541 Host Host
5542 Connect to Host. Defaults to "localhost".
5543
5544 Port Port
5545 Specifies the port to connect to. This must be a string, even if
5546 you give the port as a number rather than a service name. Defaults
5547 to "2006".
5548
5549 CollectLinks No|Summary|Detail
5550 Specifies what information to collect about links, i. e. direct
5551 connections of the daemon queried. If set to No, no information is
5552 collected. If set to Summary, the number of links and the average
5553 of all link quality (LQ) and neighbor link quality (NLQ) values is
5554 calculated. If set to Detail LQ and NLQ are collected per link.
5555
5556 Defaults to Detail.
5557
5558 CollectRoutes No|Summary|Detail
5559 Specifies what information to collect about routes of the daemon
5560 queried. If set to No, no information is collected. If set to
5561 Summary, the number of routes and the average metric and ETX is
5562 calculated. If set to Detail metric and ETX are collected per
5563 route.
5564
5565 Defaults to Summary.
5566
5567 CollectTopology No|Summary|Detail
5568 Specifies what information to collect about the global topology. If
5569 set to No, no information is collected. If set to Summary, the
5570 number of links in the entire topology and the average link quality
5571 (LQ) is calculated. If set to Detail LQ and NLQ are collected for
5572 each link in the entire topology.
5573
5574 Defaults to Summary.
5575
5576 Plugin "onewire"
5577 EXPERIMENTAL! See notes below.
5578
5579 The "onewire" plugin uses the owcapi library from the owfs project
5580 <http://owfs.org/> to read sensors connected via the onewire bus.
5581
5582 It can be used in two possible modes - standard or advanced.
5583
5584 In the standard mode only temperature sensors (sensors with the family
5585 code 10, 22 and 28 - e.g. DS1820, DS18S20, DS1920) can be read. If you
5586 have other sensors you would like to have included, please send a sort
5587 request to the mailing list. You can select sensors to be read or to be
5588 ignored depending on the option IgnoreSelected). When no list is
5589 provided the whole bus is walked and all sensors are read.
5590
5591 Hubs (the DS2409 chips) are working, but read the note, why this plugin
5592 is experimental, below.
5593
5594 In the advanced mode you can configure any sensor to be read (only
5595 numerical value) using full OWFS path (e.g.
5596 "/uncached/10.F10FCA000800/temperature"). In this mode you have to
5597 list all the sensors. Neither default bus walk nor IgnoreSelected are
5598 used here. Address and type (file) is extracted from the path
5599 automatically and should produce compatible structure with the
5600 "standard" mode (basically the path is expected as for example
5601 "/uncached/10.F10FCA000800/temperature" where it would extract address
5602 part "F10FCA000800" and the rest after the slash is considered the type
5603 - here "temperature"). There are two advantages to this mode - you can
5604 access virtually any sensor (not just temperature), select whether to
5605 use cached or directly read values and it is slighlty faster. The
5606 downside is more complex configuration.
5607
5608 The two modes are distinguished automatically by the format of the
5609 address. It is not possible to mix the two modes. Once a full path is
5610 detected in any Sensor then the whole addressing (all sensors) is
5611 considered to be this way (and as standard addresses will fail parsing
5612 they will be ignored).
5613
5614 Device Device
5615 Sets the device to read the values from. This can either be a
5616 "real" hardware device, such as a serial port or an USB port, or
5617 the address of the owserver(1) socket, usually localhost:4304.
5618
5619 Though the documentation claims to automatically recognize the
5620 given address format, with version 2.7p4 we had to specify the type
5621 explicitly. So with that version, the following configuration
5622 worked for us:
5623
5624 <Plugin onewire>
5625 Device "-s localhost:4304"
5626 </Plugin>
5627
5628 This directive is required and does not have a default value.
5629
5630 Sensor Sensor
5631 In the standard mode selects sensors to collect or to ignore
5632 (depending on IgnoreSelected, see below). Sensors are specified
5633 without the family byte at the beginning, so you have to use for
5634 example "F10FCA000800", and not include the leading 10. family byte
5635 and point. When no Sensor is configured the whole Onewire bus is
5636 walked and all supported sensors (see above) are read.
5637
5638 In the advanced mode the Sensor specifies full OWFS path - e.g.
5639 "/uncached/10.F10FCA000800/temperature" (or when cached values are
5640 OK "/10.F10FCA000800/temperature"). IgnoreSelected is not used.
5641
5642 As there can be multiple devices on the bus you can list multiple
5643 sensor (use multiple Sensor elements).
5644
5645 See /"IGNORELISTS" for details.
5646
5647 IgnoreSelected true|false
5648 If no configuration is given, the onewire plugin will collect data
5649 from all sensors found. This may not be practical, especially if
5650 sensors are added and removed regularly. Sometimes, however, it's
5651 easier/preferred to collect only specific sensors or all sensors
5652 except a few specified ones. This option enables you to do that: By
5653 setting IgnoreSelected to true the effect of Sensor is inverted:
5654 All selected interfaces are ignored and all other interfaces are
5655 collected.
5656
5657 Used only in the standard mode - see above.
5658
5659 Interval Seconds
5660 Sets the interval in which all sensors should be read. If not
5661 specified, the global Interval setting is used.
5662
5663 EXPERIMENTAL! The "onewire" plugin is experimental, because it doesn't
5664 yet work with big setups. It works with one sensor being attached to
5665 one controller, but as soon as you throw in a couple more senors and
5666 maybe a hub or two, reading all values will take more than ten seconds
5667 (the default interval). We will probably add some separate thread for
5668 reading the sensors and some cache or something like that, but it's not
5669 done yet. We will try to maintain backwards compatibility in the
5670 future, but we can't promise. So in short: If it works for you: Great!
5671 But keep in mind that the config might change, though this is unlikely.
5672 Oh, and if you want to help improving this plugin, just send a short
5673 notice to the mailing list. Thanks :)
5674
5675 Plugin "openldap"
5676 To use the "openldap" plugin you first need to configure the OpenLDAP
5677 server correctly. The backend database "monitor" needs to be loaded and
5678 working. See slapd-monitor(5) for the details.
5679
5680 The configuration of the "openldap" plugin consists of one or more
5681 Instance blocks. Each block requires one string argument as the
5682 instance name. For example:
5683
5684 <Plugin "openldap">
5685 <Instance "foo">
5686 URL "ldap://localhost/"
5687 </Instance>
5688 <Instance "bar">
5689 URL "ldaps://localhost/"
5690 </Instance>
5691 </Plugin>
5692
5693 The instance name will be used as the plugin instance. To emulate the
5694 old (version 4) behavior, you can use an empty string (""). In order
5695 for the plugin to work correctly, each instance name must be unique.
5696 This is not enforced by the plugin and it is your responsibility to
5697 ensure it is.
5698
5699 The following options are accepted within each Instance block:
5700
5701 URL ldap://host/binddn
5702 Sets the URL to use to connect to the OpenLDAP server. This option
5703 is mandatory.
5704
5705 BindDN BindDN
5706 Name in the form of an LDAP distinguished name intended to be used
5707 for authentication. Defaults to empty string to establish an
5708 anonymous authorization.
5709
5710 Password Password
5711 Password for simple bind authentication. If this option is not set,
5712 unauthenticated bind operation is used.
5713
5714 StartTLS true|false
5715 Defines whether TLS must be used when connecting to the OpenLDAP
5716 server. Disabled by default.
5717
5718 VerifyHost true|false
5719 Enables or disables peer host name verification. If enabled, the
5720 plugin checks if the "Common Name" or a "Subject Alternate Name"
5721 field of the SSL certificate matches the host name provided by the
5722 URL option. If this identity check fails, the connection is
5723 aborted. Enabled by default.
5724
5725 CACert File
5726 File that holds one or more SSL certificates. If you want to use
5727 TLS/SSL you may possibly need this option. What CA certificates are
5728 checked by default depends on the distribution you use and can be
5729 changed with the usual ldap client configuration mechanisms. See
5730 ldap.conf(5) for the details.
5731
5732 Timeout Seconds
5733 Sets the timeout value for ldap operations, in seconds. By default,
5734 the configured Interval is used to set the timeout. Use -1 to
5735 disable (infinite timeout).
5736
5737 Version Version
5738 An integer which sets the LDAP protocol version number to use when
5739 connecting to the OpenLDAP server. Defaults to 3 for using LDAPv3.
5740
5741 Plugin "openvpn"
5742 The OpenVPN plugin reads a status file maintained by OpenVPN and
5743 gathers traffic statistics about connected clients.
5744
5745 To set up OpenVPN to write to the status file periodically, use the
5746 --status option of OpenVPN.
5747
5748 So, in a nutshell you need:
5749
5750 openvpn $OTHER_OPTIONS \
5751 --status "/var/run/openvpn-status" 10
5752
5753 Available options:
5754
5755 StatusFile File
5756 Specifies the location of the status file.
5757
5758 ImprovedNamingSchema true|false
5759 When enabled, the filename of the status file will be used as
5760 plugin instance and the client's "common name" will be used as type
5761 instance. This is required when reading multiple status files.
5762 Enabling this option is recommended, but to maintain backwards
5763 compatibility this option is disabled by default.
5764
5765 CollectCompression true|false
5766 Sets whether or not statistics about the compression used by
5767 OpenVPN should be collected. This information is only available in
5768 single mode. Enabled by default.
5769
5770 CollectIndividualUsers true|false
5771 Sets whether or not traffic information is collected for each
5772 connected client individually. If set to false, currently no
5773 traffic data is collected at all because aggregating this data in a
5774 save manner is tricky. Defaults to true.
5775
5776 CollectUserCount true|false
5777 When enabled, the number of currently connected clients or users is
5778 collected. This is especially interesting when
5779 CollectIndividualUsers is disabled, but can be configured
5780 independently from that option. Defaults to false.
5781
5782 Plugin "oracle"
5783 The "oracle" plugin uses the OracleX Call Interface (OCI) to connect to
5784 an OracleX Database and lets you execute SQL statements there. It is
5785 very similar to the "dbi" plugin, because it was written around the
5786 same time. See the "dbi" plugin's documentation above for details.
5787
5788 <Plugin oracle>
5789 <Query "out_of_stock">
5790 Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
5791 <Result>
5792 Type "gauge"
5793 # InstancePrefix "foo"
5794 InstancesFrom "category"
5795 ValuesFrom "value"
5796 </Result>
5797 </Query>
5798 <Database "product_information">
5799 #Plugin "warehouse"
5800 ConnectID "db01"
5801 Username "oracle"
5802 Password "secret"
5803 Query "out_of_stock"
5804 </Database>
5805 </Plugin>
5806
5807 Query blocks
5808
5809 The Query blocks are handled identically to the Query blocks of the
5810 "dbi" plugin. Please see its documentation above for details on how to
5811 specify queries.
5812
5813 Database blocks
5814
5815 Database blocks define a connection to a database and which queries
5816 should be sent to that database. Each database needs a "name" as string
5817 argument in the starting tag of the block. This name will be used as
5818 "PluginInstance" in the values submitted to the daemon. Other than
5819 that, that name is not used.
5820
5821 Plugin Plugin
5822 Use Plugin as the plugin name when submitting query results from
5823 this Database. Defaults to "oracle".
5824
5825 ConnectID ID
5826 Defines the "database alias" or "service name" to connect to.
5827 Usually, these names are defined in the file named
5828 "$ORACLE_HOME/network/admin/tnsnames.ora".
5829
5830 Host Host
5831 Hostname to use when dispatching values for this database. Defaults
5832 to using the global hostname of the collectd instance.
5833
5834 Username Username
5835 Username used for authentication.
5836
5837 Password Password
5838 Password used for authentication.
5839
5840 Query QueryName
5841 Associates the query named QueryName with this database connection.
5842 The query needs to be defined before this statement, i. e. all
5843 query blocks you want to refer to must be placed above the database
5844 block you want to refer to them from.
5845
5846 Plugin "ovs_events"
5847 The ovs_events plugin monitors the link status of Open vSwitch (OVS)
5848 connected interfaces, dispatches the values to collectd and sends the
5849 notification whenever the link state change occurs. This plugin uses
5850 OVS database to get a link state change notification.
5851
5852 Synopsis:
5853
5854 <Plugin "ovs_events">
5855 Port 6640
5856 Address "127.0.0.1"
5857 Socket "/var/run/openvswitch/db.sock"
5858 Interfaces "br0" "veth0"
5859 SendNotification true
5860 DispatchValues false
5861 </Plugin>
5862
5863 The plugin provides the following configuration options:
5864
5865 Address node
5866 The address of the OVS DB server JSON-RPC interface used by the
5867 plugin. To enable the interface, OVS DB daemon should be running
5868 with "--remote=ptcp:" option. See ovsdb-server(1) for more details.
5869 The option may be either network hostname, IPv4 numbers-and-dots
5870 notation or IPv6 hexadecimal string format. Defaults to
5871 "localhost".
5872
5873 Port service
5874 TCP-port to connect to. Either a service name or a port number may
5875 be given. Defaults to 6640.
5876
5877 Socket path
5878 The UNIX domain socket path of OVS DB server JSON-RPC interface
5879 used by the plugin. To enable the interface, the OVS DB daemon
5880 should be running with "--remote=punix:" option. See
5881 ovsdb-server(1) for more details. If this option is set, Address
5882 and Port options are ignored.
5883
5884 Interfaces [ifname ...]
5885 List of interface names to be monitored by this plugin. If this
5886 option is not specified or is empty then all OVS connected
5887 interfaces on all bridges are monitored.
5888
5889 Default: empty (all interfaces on all bridges are monitored)
5890
5891 SendNotification true|false
5892 If set to true, OVS link notifications (interface status and OVS DB
5893 connection terminate) are sent to collectd. Default value is true.
5894
5895 DispatchValues true|false
5896 Dispatch the OVS DB interface link status value with configured
5897 plugin interval. Defaults to false. Please note, if
5898 SendNotification and DispatchValues options are false, no OVS
5899 information will be provided by the plugin.
5900
5901 Note: By default, the global interval setting is used within which to
5902 retrieve the OVS link status. To configure a plugin-specific interval,
5903 please use Interval option of the OVS LoadPlugin block settings. For
5904 milliseconds simple divide the time by 1000 for example if the desired
5905 interval is 50ms, set interval to 0.05.
5906
5907 Plugin "ovs_stats"
5908 The ovs_stats plugin collects statistics of OVS connected interfaces.
5909 This plugin uses OVSDB management protocol (RFC7047) monitor mechanism
5910 to get statistics from OVSDB
5911
5912 Synopsis:
5913
5914 <Plugin "ovs_stats">
5915 Port 6640
5916 Address "127.0.0.1"
5917 Socket "/var/run/openvswitch/db.sock"
5918 Bridges "br0" "br_ext"
5919 InterfaceStats false
5920 </Plugin>
5921
5922 The plugin provides the following configuration options:
5923
5924 Address node
5925 The address of the OVS DB server JSON-RPC interface used by the
5926 plugin. To enable the interface, OVS DB daemon should be running
5927 with "--remote=ptcp:" option. See ovsdb-server(1) for more details.
5928 The option may be either network hostname, IPv4 numbers-and-dots
5929 notation or IPv6 hexadecimal string format. Defaults to
5930 "localhost".
5931
5932 Port service
5933 TCP-port to connect to. Either a service name or a port number may
5934 be given. Defaults to 6640.
5935
5936 Socket path
5937 The UNIX domain socket path of OVS DB server JSON-RPC interface
5938 used by the plugin. To enable the interface, the OVS DB daemon
5939 should be running with "--remote=punix:" option. See
5940 ovsdb-server(1) for more details. If this option is set, Address
5941 and Port options are ignored.
5942
5943 Bridges [brname ...]
5944 List of OVS bridge names to be monitored by this plugin. If this
5945 option is omitted or is empty then all OVS bridges will be
5946 monitored.
5947
5948 Default: empty (monitor all bridges)
5949
5950 InterfaceStats false|true
5951 Indicates that the plugin should gather statistics for individual
5952 interfaces in addition to ports. This can be useful when
5953 monitoring an OVS setup with bond ports, where you might wish to
5954 know individual statistics for the interfaces included in the
5955 bonds. Defaults to false.
5956
5957 Plugin "pcie_errors"
5958 The pcie_errors plugin collects PCI Express errors from Device Status
5959 in Capability structure and from Advanced Error Reporting Extended
5960 Capability where available. At every read it polls config space of PCI
5961 Express devices and dispatches notification for every error that is
5962 set. It checks for new errors at every read. The device is indicated
5963 in plugin_instance according to format "domain:bus:dev.fn". Errors are
5964 divided into categories indicated by type_instance: "correctable", and
5965 for uncorrectable errors "non_fatal" or "fatal". Fatal errors are
5966 reported as NOTIF_FAILURE and all others as NOTIF_WARNING.
5967
5968 Synopsis:
5969
5970 <Plugin "pcie_errors">
5971 Source "sysfs"
5972 AccessDir "/sys/bus/pci"
5973 ReportMasked false
5974 PersistentNotifications false
5975 </Plugin>
5976
5977 Options:
5978
5979 Source sysfs|proc
5980 Use sysfs or proc to read data from /sysfs or /proc. The default
5981 value is sysfs.
5982
5983 AccessDir dir
5984 Directory used to access device config space. It is optional and
5985 defaults to /sys/bus/pci for sysfs and to /proc/bus/pci for proc.
5986
5987 ReportMasked false|true
5988 If true plugin will notify about errors that are set to masked in
5989 Error Mask register. Such errors are not reported to the PCI
5990 Express Root Complex. Defaults to false.
5991
5992 PersistentNotifications false|true
5993 If false plugin will dispatch notification only on set/clear of
5994 error. The ones already reported will be ignored. Defaults to
5995 false.
5996
5997 Plugin "perl"
5998 This plugin embeds a Perl-interpreter into collectd and provides an
5999 interface to collectd's plugin system. See collectd-perl(5) for its
6000 documentation.
6001
6002 Plugin "pinba"
6003 The Pinba plugin receives profiling information from Pinba, an
6004 extension for the PHP interpreter. At the end of executing a script,
6005 i.e. after a PHP-based webpage has been delivered, the extension will
6006 send a UDP packet containing timing information, peak memory usage and
6007 so on. The plugin will wait for such packets, parse them and account
6008 the provided information, which is then dispatched to the daemon once
6009 per interval.
6010
6011 Synopsis:
6012
6013 <Plugin pinba>
6014 Address "::0"
6015 Port "30002"
6016 # Overall statistics for the website.
6017 <View "www-total">
6018 Server "www.example.com"
6019 </View>
6020 # Statistics for www-a only
6021 <View "www-a">
6022 Host "www-a.example.com"
6023 Server "www.example.com"
6024 </View>
6025 # Statistics for www-b only
6026 <View "www-b">
6027 Host "www-b.example.com"
6028 Server "www.example.com"
6029 </View>
6030 </Plugin>
6031
6032 The plugin provides the following configuration options:
6033
6034 Address Node
6035 Configures the address used to open a listening socket. By default,
6036 plugin will bind to the any address "::0".
6037
6038 Port Service
6039 Configures the port (service) to bind to. By default the default
6040 Pinba port "30002" will be used. The option accepts service names
6041 in addition to port numbers and thus requires a string argument.
6042
6043 <View Name> block
6044 The packets sent by the Pinba extension include the hostname of the
6045 server, the server name (the name of the virtual host) and the
6046 script that was executed. Using View blocks it is possible to
6047 separate the data into multiple groups to get more meaningful
6048 statistics. Each packet is added to all matching groups, so that a
6049 packet may be accounted for more than once.
6050
6051 Host Host
6052 Matches the hostname of the system the webserver / script is
6053 running on. This will contain the result of the gethostname(2)
6054 system call. If not configured, all hostnames will be accepted.
6055
6056 Server Server
6057 Matches the name of the virtual host, i.e. the contents of the
6058 $_SERVER["SERVER_NAME"] variable when within PHP. If not
6059 configured, all server names will be accepted.
6060
6061 Script Script
6062 Matches the name of the script name, i.e. the contents of the
6063 $_SERVER["SCRIPT_NAME"] variable when within PHP. If not
6064 configured, all script names will be accepted.
6065
6066 Plugin "ping"
6067 The Ping plugin starts a new thread which sends ICMP "ping" packets to
6068 the configured hosts periodically and measures the network latency.
6069 Whenever the "read" function of the plugin is called, it submits the
6070 average latency, the standard deviation and the drop rate for each
6071 host.
6072
6073 Available configuration options:
6074
6075 Host IP-address
6076 Host to ping periodically. This option may be repeated several
6077 times to ping multiple hosts.
6078
6079 Interval Seconds
6080 Sets the interval in which to send ICMP echo packets to the
6081 configured hosts. This is not the interval in which metrics are
6082 read from the plugin but the interval in which the hosts are
6083 "pinged". Therefore, the setting here should be smaller than or
6084 equal to the global Interval setting. Fractional times, such as
6085 "1.24" are allowed.
6086
6087 Default: 1.0
6088
6089 Timeout Seconds
6090 Time to wait for a response from the host to which an ICMP packet
6091 had been sent. If a reply was not received after Seconds seconds,
6092 the host is assumed to be down or the packet to be dropped. This
6093 setting must be smaller than the Interval setting above for the
6094 plugin to work correctly. Fractional arguments are accepted.
6095
6096 Default: 0.9
6097
6098 TTL 0-255
6099 Sets the Time-To-Live of generated ICMP packets.
6100
6101 Size size
6102 Sets the size of the data payload in ICMP packet to specified size
6103 (it will be filled with regular ASCII pattern). If not set, default
6104 56 byte long string is used so that the packet size of an ICMPv4
6105 packet is exactly 64 bytes, similar to the behaviour of normal
6106 ping(1) command.
6107
6108 SourceAddress host
6109 Sets the source address to use. host may either be a numerical
6110 network address or a network hostname.
6111
6112 AddressFamily af
6113 Sets the address family to use. af may be "any", "ipv4" or "ipv6".
6114 This option will be ignored if you set a SourceAddress.
6115
6116 Device name
6117 Sets the outgoing network device to be used. name has to specify an
6118 interface name (e. g. "eth0"). This might not be supported by all
6119 operating systems.
6120
6121 MaxMissed Packets
6122 Trigger a DNS resolve after the host has not replied to Packets
6123 packets. This enables the use of dynamic DNS services (like
6124 dyndns.org) with the ping plugin.
6125
6126 Default: -1 (disabled)
6127
6128 Plugin "postgresql"
6129 The "postgresql" plugin queries statistics from PostgreSQL databases.
6130 It keeps a persistent connection to all configured databases and tries
6131 to reconnect if the connection has been interrupted. A database is
6132 configured by specifying a Database block as described below. The
6133 default statistics are collected from PostgreSQL's statistics collector
6134 which thus has to be enabled for this plugin to work correctly. This
6135 should usually be the case by default. See the section "The Statistics
6136 Collector" of the PostgreSQL Documentation for details.
6137
6138 By specifying custom database queries using a Query block as described
6139 below, you may collect any data that is available from some PostgreSQL
6140 database. This way, you are able to access statistics of external
6141 daemons which are available in a PostgreSQL database or use future or
6142 special statistics provided by PostgreSQL without the need to upgrade
6143 your collectd installation.
6144
6145 Starting with version 5.2, the "postgresql" plugin supports writing
6146 data to PostgreSQL databases as well. This has been implemented in a
6147 generic way. You need to specify an SQL statement which will then be
6148 executed by collectd in order to write the data (see below for
6149 details). The benefit of that approach is that there is no fixed
6150 database layout. Rather, the layout may be optimized for the current
6151 setup.
6152
6153 The PostgreSQL Documentation manual can be found at
6154 <http://www.postgresql.org/docs/manuals/>.
6155
6156 <Plugin postgresql>
6157 <Query magic>
6158 Statement "SELECT magic FROM wizard WHERE host = $1;"
6159 Param hostname
6160 <Result>
6161 Type gauge
6162 InstancePrefix "magic"
6163 ValuesFrom magic
6164 </Result>
6165 </Query>
6166
6167 <Query rt36_tickets>
6168 Statement "SELECT COUNT(type) AS count, type \
6169 FROM (SELECT CASE \
6170 WHEN resolved = 'epoch' THEN 'open' \
6171 ELSE 'resolved' END AS type \
6172 FROM tickets) type \
6173 GROUP BY type;"
6174 <Result>
6175 Type counter
6176 InstancePrefix "rt36_tickets"
6177 InstancesFrom "type"
6178 ValuesFrom "count"
6179 </Result>
6180 </Query>
6181
6182 <Writer sqlstore>
6183 Statement "SELECT collectd_insert($1, $2, $3, $4, $5, $6, $7, $8, $9);"
6184 StoreRates true
6185 </Writer>
6186
6187 <Database foo>
6188 Plugin "kingdom"
6189 Host "hostname"
6190 Port "5432"
6191 User "username"
6192 Password "secret"
6193 SSLMode "prefer"
6194 KRBSrvName "kerberos_service_name"
6195 Query magic
6196 </Database>
6197
6198 <Database bar>
6199 Interval 300
6200 Service "service_name"
6201 Query backends # predefined
6202 Query rt36_tickets
6203 </Database>
6204
6205 <Database qux>
6206 # ...
6207 Writer sqlstore
6208 CommitInterval 10
6209 </Database>
6210 </Plugin>
6211
6212 The Query block defines one database query which may later be used by a
6213 database definition. It accepts a single mandatory argument which
6214 specifies the name of the query. The names of all queries have to be
6215 unique (see the MinVersion and MaxVersion options below for an
6216 exception to this rule).
6217
6218 In each Query block, there is one or more Result blocks. Multiple
6219 Result blocks may be used to extract multiple values from a single
6220 query.
6221
6222 The following configuration options are available to define the query:
6223
6224 Statement sql query statement
6225 Specify the sql query statement which the plugin should execute.
6226 The string may contain the tokens $1, $2, etc. which are used to
6227 reference the first, second, etc. parameter. The value of the
6228 parameters is specified by the Param configuration option - see
6229 below for details. To include a literal $ character followed by a
6230 number, surround it with single quotes (').
6231
6232 Any SQL command which may return data (such as "SELECT" or "SHOW")
6233 is allowed. Note, however, that only a single command may be used.
6234 Semicolons are allowed as long as a single non-empty command has
6235 been specified only.
6236
6237 The returned lines will be handled separately one after another.
6238
6239 Param hostname|database|instance|username|interval
6240 Specify the parameters which should be passed to the SQL query. The
6241 parameters are referred to in the SQL query as $1, $2, etc. in the
6242 same order as they appear in the configuration file. The value of
6243 the parameter is determined depending on the value of the Param
6244 option as follows:
6245
6246 hostname
6247 The configured hostname of the database connection. If a UNIX
6248 domain socket is used, the parameter expands to "localhost".
6249
6250 database
6251 The name of the database of the current connection.
6252
6253 instance
6254 The name of the database plugin instance. See the Instance
6255 option of the database specification below for details.
6256
6257 username
6258 The username used to connect to the database.
6259
6260 interval
6261 The interval with which this database is queried (as specified
6262 by the database specific or global Interval options).
6263
6264 Please note that parameters are only supported by PostgreSQL's
6265 protocol version 3 and above which was introduced in version 7.4 of
6266 PostgreSQL.
6267
6268 PluginInstanceFrom column
6269 Specify how to create the "PluginInstance" for reporting this query
6270 results. Only one column is supported. You may concatenate fields
6271 and string values in the query statement to get the required
6272 results.
6273
6274 MinVersion version
6275 MaxVersion version
6276 Specify the minimum or maximum version of PostgreSQL that this
6277 query should be used with. Some statistics might only be available
6278 with certain versions of PostgreSQL. This allows you to specify
6279 multiple queries with the same name but which apply to different
6280 versions, thus allowing you to use the same configuration in a
6281 heterogeneous environment.
6282
6283 The version has to be specified as the concatenation of the major,
6284 minor and patch-level versions, each represented as two-decimal-
6285 digit numbers. For example, version 8.2.3 will become 80203.
6286
6287 The Result block defines how to handle the values returned from the
6288 query. It defines which column holds which value and how to dispatch
6289 that value to the daemon.
6290
6291 Type type
6292 The type name to be used when dispatching the values. The type
6293 describes how to handle the data and where to store it. See
6294 types.db(5) for more details on types and their configuration. The
6295 number and type of values (as selected by the ValuesFrom option)
6296 has to match the type of the given name.
6297
6298 This option is mandatory.
6299
6300 InstancePrefix prefix
6301 InstancesFrom column0 [column1 ...]
6302 Specify how to create the "TypeInstance" for each data set (i. e.
6303 line). InstancePrefix defines a static prefix that will be
6304 prepended to all type instances. InstancesFrom defines the column
6305 names whose values will be used to create the type instance.
6306 Multiple values will be joined together using the hyphen ("-") as
6307 separation character.
6308
6309 The plugin itself does not check whether or not all built instances
6310 are different. It is your responsibility to assure that each is
6311 unique.
6312
6313 Both options are optional. If none is specified, the type instance
6314 will be empty.
6315
6316 ValuesFrom column0 [column1 ...]
6317 Names the columns whose content is used as the actual data for the
6318 data sets that are dispatched to the daemon. How many such columns
6319 you need is determined by the Type setting as explained above. If
6320 you specify too many or not enough columns, the plugin will
6321 complain about that and no data will be submitted to the daemon.
6322
6323 The actual data type, as seen by PostgreSQL, is not that important
6324 as long as it represents numbers. The plugin will automatically
6325 cast the values to the right type if it know how to do that. For
6326 that, it uses the strtoll(3) and strtod(3) functions, so anything
6327 supported by those functions is supported by the plugin as well.
6328
6329 This option is required inside a Result block and may be specified
6330 multiple times. If multiple ValuesFrom options are specified, the
6331 columns are read in the given order.
6332
6333 The following predefined queries are available (the definitions can be
6334 found in the postgresql_default.conf file which, by default, is
6335 available at "prefix/share/collectd/"):
6336
6337 backends
6338 This query collects the number of backends, i. e. the number of
6339 connected clients.
6340
6341 transactions
6342 This query collects the numbers of committed and rolled-back
6343 transactions of the user tables.
6344
6345 queries
6346 This query collects the numbers of various table modifications
6347 (i. e. insertions, updates, deletions) of the user tables.
6348
6349 query_plans
6350 This query collects the numbers of various table scans and returned
6351 tuples of the user tables.
6352
6353 table_states
6354 This query collects the numbers of live and dead rows in the user
6355 tables.
6356
6357 disk_io
6358 This query collects disk block access counts for user tables.
6359
6360 disk_usage
6361 This query collects the on-disk size of the database in bytes.
6362
6363 In addition, the following detailed queries are available by default.
6364 Please note that each of those queries collects information by table,
6365 thus, potentially producing a lot of data. For details see the
6366 description of the non-by_table queries above.
6367
6368 queries_by_table
6369 query_plans_by_table
6370 table_states_by_table
6371 disk_io_by_table
6372
6373 The Writer block defines a PostgreSQL writer backend. It accepts a
6374 single mandatory argument specifying the name of the writer. This will
6375 then be used in the Database specification in order to activate the
6376 writer instance. The names of all writers have to be unique. The
6377 following options may be specified:
6378
6379 Statement sql statement
6380 This mandatory option specifies the SQL statement that will be
6381 executed for each submitted value. A single SQL statement is
6382 allowed only. Anything after the first semicolon will be ignored.
6383
6384 Nine parameters will be passed to the statement and should be
6385 specified as tokens $1, $2, through $9 in the statement string. The
6386 following values are made available through those parameters:
6387
6388 $1 The timestamp of the queried value as an RFC 3339-formatted
6389 local time.
6390
6391 $2 The hostname of the queried value.
6392
6393 $3 The plugin name of the queried value.
6394
6395 $4 The plugin instance of the queried value. This value may be
6396 NULL if there is no plugin instance.
6397
6398 $5 The type of the queried value (cf. types.db(5)).
6399
6400 $6 The type instance of the queried value. This value may be NULL
6401 if there is no type instance.
6402
6403 $7 An array of names for the submitted values (i. e., the name of
6404 the data sources of the submitted value-list).
6405
6406 $8 An array of types for the submitted values (i. e., the type of
6407 the data sources of the submitted value-list; "counter",
6408 "gauge", ...). Note, that if StoreRates is enabled (which is
6409 the default, see below), all types will be "gauge".
6410
6411 $9 An array of the submitted values. The dimensions of the value
6412 name and value arrays match.
6413
6414 In general, it is advisable to create and call a custom function in
6415 the PostgreSQL database for this purpose. Any procedural language
6416 supported by PostgreSQL will do (see chapter "Server Programming"
6417 in the PostgreSQL manual for details).
6418
6419 StoreRates false|true
6420 If set to true (the default), convert counter values to rates. If
6421 set to false counter values are stored as is, i. e. as an
6422 increasing integer number.
6423
6424 The Database block defines one PostgreSQL database for which to collect
6425 statistics. It accepts a single mandatory argument which specifies the
6426 database name. None of the other options are required. PostgreSQL will
6427 use default values as documented in the section "CONNECTING TO A
6428 DATABASE" in the psql(1) manpage. However, be aware that those defaults
6429 may be influenced by the user collectd is run as and special
6430 environment variables. See the manpage for details.
6431
6432 Interval seconds
6433 Specify the interval with which the database should be queried. The
6434 default is to use the global Interval setting.
6435
6436 CommitInterval seconds
6437 This option may be used for database connections which have
6438 "writers" assigned (see above). If specified, it causes a writer to
6439 put several updates into a single transaction. This transaction
6440 will last for the specified amount of time. By default, each update
6441 will be executed in a separate transaction. Each transaction
6442 generates a fair amount of overhead which can, thus, be reduced by
6443 activating this option. The draw-back is, that data covering the
6444 specified amount of time will be lost, for example, if a single
6445 statement within the transaction fails or if the database server
6446 crashes.
6447
6448 Plugin Plugin
6449 Use Plugin as the plugin name when submitting query results from
6450 this Database. Defaults to "postgresql".
6451
6452 Instance name
6453 Specify the plugin instance name that should be used instead of the
6454 database name (which is the default, if this option has not been
6455 specified). This allows one to query multiple databases of the same
6456 name on the same host (e.g. when running multiple database server
6457 versions in parallel). The plugin instance name can also be set
6458 from the query result using the PluginInstanceFrom option in Query
6459 block.
6460
6461 Host hostname
6462 Specify the hostname or IP of the PostgreSQL server to connect to.
6463 If the value begins with a slash, it is interpreted as the
6464 directory name in which to look for the UNIX domain socket.
6465
6466 This option is also used to determine the hostname that is
6467 associated with a collected data set. If it has been omitted or
6468 either begins with with a slash or equals localhost it will be
6469 replaced with the global hostname definition of collectd. Any other
6470 value will be passed literally to collectd when dispatching values.
6471 Also see the global Hostname and FQDNLookup options.
6472
6473 Port port
6474 Specify the TCP port or the local UNIX domain socket file extension
6475 of the server.
6476
6477 User username
6478 Specify the username to be used when connecting to the server.
6479
6480 Password password
6481 Specify the password to be used when connecting to the server.
6482
6483 ExpireDelay delay
6484 Skip expired values in query output.
6485
6486 SSLMode disable|allow|prefer|require
6487 Specify whether to use an SSL connection when contacting the
6488 server. The following modes are supported:
6489
6490 disable
6491 Do not use SSL at all.
6492
6493 allow
6494 First, try to connect without using SSL. If that fails, try
6495 using SSL.
6496
6497 prefer (default)
6498 First, try to connect using SSL. If that fails, try without
6499 using SSL.
6500
6501 require
6502 Use SSL only.
6503
6504 Instance name
6505 Specify the plugin instance name that should be used instead of the
6506 database name (which is the default, if this option has not been
6507 specified). This allows one to query multiple databases of the same
6508 name on the same host (e.g. when running multiple database server
6509 versions in parallel).
6510
6511 KRBSrvName kerberos_service_name
6512 Specify the Kerberos service name to use when authenticating with
6513 Kerberos 5 or GSSAPI. See the sections "Kerberos authentication"
6514 and "GSSAPI" of the PostgreSQL Documentation for details.
6515
6516 Service service_name
6517 Specify the PostgreSQL service name to use for additional
6518 parameters. That service has to be defined in pg_service.conf and
6519 holds additional connection parameters. See the section "The
6520 Connection Service File" in the PostgreSQL Documentation for
6521 details.
6522
6523 Query query
6524 Specifies a query which should be executed in the context of the
6525 database connection. This may be any of the predefined or user-
6526 defined queries. If no such option is given, it defaults to
6527 "backends", "transactions", "queries", "query_plans",
6528 "table_states", "disk_io" and "disk_usage" (unless a Writer has
6529 been specified). Else, the specified queries are used only.
6530
6531 Writer writer
6532 Assigns the specified writer backend to the database connection.
6533 This causes all collected data to be send to the database using the
6534 settings defined in the writer configuration (see the section
6535 "FILTER CONFIGURATION" below for details on how to selectively send
6536 data to certain plugins).
6537
6538 Each writer will register a flush callback which may be used when
6539 having long transactions enabled (see the CommitInterval option
6540 above). When issuing the FLUSH command (see collectd-unixsock(5)
6541 for details) the current transaction will be committed right away.
6542 Two different kinds of flush callbacks are available with the
6543 "postgresql" plugin:
6544
6545 postgresql
6546 Flush all writer backends.
6547
6548 postgresql-database
6549 Flush all writers of the specified database only.
6550
6551 Plugin "powerdns"
6552 The "powerdns" plugin queries statistics from an authoritative PowerDNS
6553 nameserver and/or a PowerDNS recursor. Since both offer a wide variety
6554 of values, many of which are probably meaningless to most users, but
6555 may be useful for some. So you may chose which values to collect, but
6556 if you don't, some reasonable defaults will be collected.
6557
6558 <Plugin "powerdns">
6559 <Server "server_name">
6560 Collect "latency"
6561 Collect "udp-answers" "udp-queries"
6562 Socket "/var/run/pdns.controlsocket"
6563 </Server>
6564 <Recursor "recursor_name">
6565 Collect "questions"
6566 Collect "cache-hits" "cache-misses"
6567 Socket "/var/run/pdns_recursor.controlsocket"
6568 </Recursor>
6569 LocalSocket "/opt/collectd/var/run/collectd-powerdns"
6570 </Plugin>
6571
6572 Server and Recursor block
6573 The Server block defines one authoritative server to query, the
6574 Recursor does the same for an recursing server. The possible
6575 options in both blocks are the same, though. The argument defines a
6576 name for the server / recursor and is required.
6577
6578 Collect Field
6579 Using the Collect statement you can select which values to
6580 collect. Here, you specify the name of the values as used by
6581 the PowerDNS servers, e. g. "dlg-only-drops", "answers10-100".
6582
6583 The method of getting the values differs for Server and
6584 Recursor blocks: When querying the server a "SHOW *" command is
6585 issued in any case, because that's the only way of getting
6586 multiple values out of the server at once. collectd then picks
6587 out the values you have selected. When querying the recursor, a
6588 command is generated to query exactly these values. So if you
6589 specify invalid fields when querying the recursor, a syntax
6590 error may be returned by the daemon and collectd may not
6591 collect any values at all.
6592
6593 If no Collect statement is given, the following Server values
6594 will be collected:
6595
6596 latency
6597 packetcache-hit
6598 packetcache-miss
6599 packetcache-size
6600 query-cache-hit
6601 query-cache-miss
6602 recursing-answers
6603 recursing-questions
6604 tcp-answers
6605 tcp-queries
6606 udp-answers
6607 udp-queries
6608
6609 The following Recursor values will be collected by default:
6610
6611 noerror-answers
6612 nxdomain-answers
6613 servfail-answers
6614 sys-msec
6615 user-msec
6616 qa-latency
6617 cache-entries
6618 cache-hits
6619 cache-misses
6620 questions
6621
6622 Please note that up to that point collectd doesn't know what
6623 values are available on the server and values that are added do
6624 not need a change of the mechanism so far. However, the values
6625 must be mapped to collectd's naming scheme, which is done using
6626 a lookup table that lists all known values. If values are added
6627 in the future and collectd does not know about them, you will
6628 get an error much like this:
6629
6630 powerdns plugin: submit: Not found in lookup table: foobar = 42
6631
6632 In this case please file a bug report with the collectd team.
6633
6634 Socket Path
6635 Configures the path to the UNIX domain socket to be used when
6636 connecting to the daemon. By default
6637 "${localstatedir}/run/pdns.controlsocket" will be used for an
6638 authoritative server and
6639 "${localstatedir}/run/pdns_recursor.controlsocket" will be used
6640 for the recursor.
6641
6642 LocalSocket Path
6643 Querying the recursor is done using UDP. When using UDP over UNIX
6644 domain sockets, the client socket needs a name in the file system,
6645 too. You can set this local name to Path using the LocalSocket
6646 option. The default is "prefix/var/run/collectd-powerdns".
6647
6648 Plugin "processes"
6649 Collects information about processes of local system.
6650
6651 By default, with no process matches configured, only general statistics
6652 is collected: the number of processes in each state and fork rate.
6653
6654 Process matches can be configured by Process and ProcessMatch options.
6655 These may also be a block in which further options may be specified.
6656
6657 The statistics collected for matched processes are:
6658 - size of the resident segment size (RSS)
6659 - user- and system-time used
6660 - number of processes
6661 - number of threads
6662 - number of open files (under Linux)
6663 - number of memory mapped files (under Linux)
6664 - io data (where available)
6665 - context switches (under Linux)
6666 - minor and major pagefaults
6667 - Delay Accounting information (Linux only, requires libmnl)
6668
6669 Synopsis:
6670
6671 <Plugin processes>
6672 CollectFileDescriptor true
6673 CollectContextSwitch true
6674 CollectDelayAccounting false
6675 Process "name"
6676 ProcessMatch "name" "regex"
6677 <Process "collectd">
6678 CollectFileDescriptor false
6679 CollectContextSwitch false
6680 CollectDelayAccounting true
6681 </Process>
6682 <ProcessMatch "name" "regex">
6683 CollectFileDescriptor false
6684 CollectContextSwitch true
6685 </ProcessMatch>
6686 </Plugin>
6687
6688 Process Name
6689 Select more detailed statistics of processes matching this name.
6690
6691 Some platforms have a limit on the length of process names. Name
6692 must stay below this limit.
6693
6694 ProcessMatch name regex
6695 Select more detailed statistics of processes matching the specified
6696 regex (see regex(7) for details). The statistics of all matching
6697 processes are summed up and dispatched to the daemon using the
6698 specified name as an identifier. This allows one to "group" several
6699 processes together. name must not contain slashes.
6700
6701 CollectContextSwitch Boolean
6702 Collect the number of context switches for matched processes.
6703 Disabled by default.
6704
6705 CollectDelayAccounting Boolean
6706 If enabled, collect Linux Delay Accounding information for matching
6707 processes. Delay Accounting provides the time processes wait for
6708 the CPU to become available, for I/O operations to finish, for
6709 pages to be swapped in and for freed pages to be reclaimed. The
6710 metrics are reported as "seconds per second" using the "delay_rate"
6711 type, e.g. "delay_rate-delay-cpu". Disabled by default.
6712
6713 This option is only available on Linux, requires the "libmnl"
6714 library and requires the "CAP_NET_ADMIN" capability at runtime.
6715
6716 CollectFileDescriptor Boolean
6717 Collect number of file descriptors of matched processes. Disabled
6718 by default.
6719
6720 CollectMemoryMaps Boolean
6721 Collect the number of memory mapped files of the process. The
6722 limit for this number is configured via /proc/sys/vm/max_map_count
6723 in the Linux kernel.
6724
6725 The CollectContextSwitch, CollectDelayAccounting, CollectFileDescriptor
6726 and CollectMemoryMaps options may be used inside Process and
6727 ProcessMatch blocks. When used there, these options affect reporting
6728 the corresponding processes only. Outside of Process and ProcessMatch
6729 blocks these options set the default value for subsequent matches.
6730
6731 Plugin "procevent"
6732 The procevent plugin monitors when processes start (EXEC) and stop
6733 (EXIT).
6734
6735 Synopsis:
6736
6737 <Plugin procevent>
6738 BufferLength 10
6739 Process "name"
6740 ProcessRegex "regex"
6741 </Plugin>
6742
6743 Options:
6744
6745 BufferLength length
6746 Maximum number of process events that can be stored in plugin's
6747 ring buffer. By default, this is set to 10. Once an event has
6748 been read, its location becomes available for storing a new event.
6749
6750 Process name
6751 Enumerate a process name to monitor. All processes that match this
6752 exact name will be monitored for EXECs and EXITs.
6753
6754 ProcessRegex regex
6755 Enumerate a process pattern to monitor. All processes that match
6756 this regular expression will be monitored for EXECs and EXITs.
6757
6758 Plugin "protocols"
6759 Collects a lot of information about various network protocols, such as
6760 IP, TCP, UDP, etc.
6761
6762 Available configuration options:
6763
6764 Value Selector
6765 Selects whether or not to select a specific value. The string being
6766 matched is of the form "Protocol:ValueName", where Protocol will be
6767 used as the plugin instance and ValueName will be used as type
6768 instance. An example of the string being used would be
6769 "Tcp:RetransSegs".
6770
6771 You can use regular expressions to match a large number of values
6772 with just one configuration option. To select all "extended" TCP
6773 values, you could use the following statement:
6774
6775 Value "/^TcpExt:/"
6776
6777 Whether only matched values are selected or all matched values are
6778 ignored depends on the IgnoreSelected. By default, only matched
6779 values are selected. If no value is configured at all, all values
6780 will be selected.
6781
6782 See /"IGNORELISTS" for details.
6783
6784 IgnoreSelected true|false
6785 If set to true, inverts the selection made by Value, i. e. all
6786 matching values will be ignored.
6787
6788 Plugin "python"
6789 This plugin embeds a Python-interpreter into collectd and provides an
6790 interface to collectd's plugin system. See collectd-python(5) for its
6791 documentation.
6792
6793 Plugin "redfish"
6794 The "redfish" plugin collects sensor data using REST protocol called
6795 Redfish.
6796
6797 Sample configuration:
6798
6799 <Plugin redfish>
6800 <Query "fans">
6801 Endpoint "/redfish/v1/Chassis/Chassis-1/Thermal"
6802 <Resource "Fans">
6803 <Property "ReadingRPM">
6804 PluginInstance "chassis-1"
6805 Type "rpm"
6806 </Property>
6807 </Resource>
6808 </Query>
6809 <Query "temperatures">
6810 Endpoint "/redfish/v1/Chassis/Chassis-1/Thermal"
6811 <Resource "Temperatures">
6812 <Property "ReadingCelsius">
6813 PluginInstance "chassis-1"
6814 Type "degrees"
6815 </Property>
6816 </Resource>
6817 </Query>
6818 <Query "voltages">
6819 Endpoint "/redfish/v1/Chassis/Chassis-1/Power"
6820 <Resource "Voltages">
6821 <Property "ReadingVolts">
6822 PluginInstance "chassis-1"
6823 Type "volts"
6824 </Property>
6825 </Resource>
6826 </Query>
6827 <Service "local">
6828 Host "127.0.0.1:5000"
6829 User "user"
6830 Passwd "passwd"
6831 Queries "fans" "voltages" "temperatures"
6832 </Service>
6833 </Plugin>
6834
6835 Query
6836 Section defining a query performed on Redfish interface
6837
6838 Endpoint
6839 URI of the REST API Endpoint for accessing the BMC
6840
6841 Resource
6842 Selects single resource or array to collect data.
6843
6844 Property
6845 Selects property from which data is gathered
6846
6847 PluginInstance
6848 Plugin instance of dispatched collectd metric
6849
6850 Type
6851 Type of dispatched collectd metric
6852
6853 TypeInstance
6854 Type instance of collectd metric
6855
6856 Service
6857 Section defining service to be sent requests
6858
6859 Username
6860 BMC username
6861
6862 Password
6863 BMC password
6864
6865 Queries
6866 Queries to run
6867
6868 Plugin "routeros"
6869 The "routeros" plugin connects to a device running RouterOS, the Linux-
6870 based operating system for routers by MikroTik. The plugin uses
6871 librouteros to connect and reads information about the interfaces and
6872 wireless connections of the device. The configuration supports querying
6873 multiple routers:
6874
6875 <Plugin "routeros">
6876 <Router>
6877 Host "router0.example.com"
6878 User "collectd"
6879 Password "secr3t"
6880 CollectInterface true
6881 CollectCPULoad true
6882 CollectMemory true
6883 </Router>
6884 <Router>
6885 Host "router1.example.com"
6886 User "collectd"
6887 Password "5ecret"
6888 CollectInterface true
6889 CollectRegistrationTable true
6890 CollectDF true
6891 CollectDisk true
6892 CollectHealth true
6893 </Router>
6894 </Plugin>
6895
6896 As you can see above, the configuration of the routeros plugin consists
6897 of one or more <Router> blocks. Within each block, the following
6898 options are understood:
6899
6900 Host Host
6901 Hostname or IP-address of the router to connect to.
6902
6903 Port Port
6904 Port name or port number used when connecting. If left unspecified,
6905 the default will be chosen by librouteros, currently "8728". This
6906 option expects a string argument, even when a numeric port number
6907 is given.
6908
6909 User User
6910 Use the user name User to authenticate. Defaults to "admin".
6911
6912 Password Password
6913 Set the password used to authenticate.
6914
6915 CollectInterface true|false
6916 When set to true, interface statistics will be collected for all
6917 interfaces present on the device. Defaults to false.
6918
6919 CollectRegistrationTable true|false
6920 When set to true, information about wireless LAN connections will
6921 be collected. Defaults to false.
6922
6923 CollectCPULoad true|false
6924 When set to true, information about the CPU usage will be
6925 collected. The number is a dimensionless value where zero indicates
6926 no CPU usage at all. Defaults to false.
6927
6928 CollectMemory true|false
6929 When enabled, the amount of used and free memory will be collected.
6930 How used memory is calculated is unknown, for example whether or
6931 not caches are counted as used space. Defaults to false.
6932
6933 CollectDF true|false
6934 When enabled, the amount of used and free disk space will be
6935 collected. Defaults to false.
6936
6937 CollectDisk true|false
6938 When enabled, the number of sectors written and bad blocks will be
6939 collected. Defaults to false.
6940
6941 CollectHealth true|false
6942 When enabled, the health statistics will be collected. This
6943 includes the voltage and temperature on supported hardware.
6944 Defaults to false.
6945
6946 Plugin "redis"
6947 The Redis plugin connects to one or more Redis servers, gathers
6948 information about each server's state and executes user-defined
6949 queries. For each server there is a Node block which configures the
6950 connection parameters and set of user-defined queries for this node.
6951
6952 <Plugin redis>
6953 <Node "example">
6954 Host "localhost"
6955 Port "6379"
6956 #Socket "/var/run/redis/redis.sock"
6957 Timeout 2000
6958 ReportCommandStats false
6959 ReportCpuUsage true
6960 <Query "LLEN myqueue">
6961 #Database 0
6962 Type "queue_length"
6963 Instance "myqueue"
6964 </Query>
6965 </Node>
6966 </Plugin>
6967
6968 Node Nodename
6969 The Node block identifies a new Redis node, that is a new Redis
6970 instance running in an specified host and port. The name for node
6971 is a canonical identifier which is used as plugin instance. It is
6972 limited to 128 characters in length.
6973
6974 When no Node is configured explicitly, plugin connects to
6975 "localhost:6379".
6976
6977 Host Hostname
6978 The Host option is the hostname or IP-address where the Redis
6979 instance is running on.
6980
6981 Port Port
6982 The Port option is the TCP port on which the Redis instance accepts
6983 connections. Either a service name of a port number may be given.
6984 Please note that numerical port numbers must be given as a string,
6985 too.
6986
6987 Socket Path
6988 Connect to Redis using the UNIX domain socket at Path. If this
6989 setting is given, the Hostname and Port settings are ignored.
6990
6991 Password Password
6992 Use Password to authenticate when connecting to Redis.
6993
6994 Timeout Milliseconds
6995 The Timeout option set the socket timeout for node response. Since
6996 the Redis read function is blocking, you should keep this value as
6997 low as possible. It is expected what Timeout values should be
6998 lower than Interval defined globally.
6999
7000 Defaults to 2000 (2 seconds).
7001
7002 ReportCommandStats false|true
7003 Enables or disables reporting of statistics based on the command
7004 type, including rate of command calls and average CPU time consumed
7005 by command processing. Defaults to false.
7006
7007 ReportCpuUsage true|false
7008 Enables or disables reporting of CPU consumption statistics.
7009 Defaults to true.
7010
7011 Query Querystring
7012 The Query block identifies a query to execute against the redis
7013 server. There may be an arbitrary number of queries to execute.
7014 Each query should return single string or integer.
7015
7016 Type Collectd type
7017 Within a query definition, a valid collectd type to use as when
7018 submitting the result of the query. When not supplied, will default
7019 to gauge.
7020
7021 Currently only types with one datasource are supported. See
7022 types.db(5) for more details on types and their configuration.
7023
7024 Instance Type instance
7025 Within a query definition, an optional type instance to use when
7026 submitting the result of the query. When not supplied will default
7027 to the escaped command, up to 128 chars.
7028
7029 Database Index
7030 This index selects the Redis logical database to use for query.
7031 Defaults to 0.
7032
7033 Plugin "rrdcached"
7034 The "rrdcached" plugin uses the RRDtool accelerator daemon,
7035 rrdcached(1), to store values to RRD files in an efficient manner. The
7036 combination of the "rrdcached" plugin and the "rrdcached" daemon is
7037 very similar to the way the "rrdtool" plugin works (see below). The
7038 added abstraction layer provides a number of benefits, though: Because
7039 the cache is not within "collectd" anymore, it does not need to be
7040 flushed when "collectd" is to be restarted. This results in much
7041 shorter (if any) gaps in graphs, especially under heavy load. Also, the
7042 "rrdtool" command line utility is aware of the daemon so that it can
7043 flush values to disk automatically when needed. This allows one to
7044 integrate automated flushing of values into graphing solutions much
7045 more easily.
7046
7047 There are disadvantages, though: The daemon may reside on a different
7048 host, so it may not be possible for "collectd" to create the
7049 appropriate RRD files anymore. And even if "rrdcached" runs on the same
7050 host, it may run in a different base directory, so relative paths may
7051 do weird stuff if you're not careful.
7052
7053 So the recommended configuration is to let "collectd" and "rrdcached"
7054 run on the same host, communicating via a UNIX domain socket. The
7055 DataDir setting should be set to an absolute path, so that a changed
7056 base directory does not result in RRD files being created / expected in
7057 the wrong place.
7058
7059 DaemonAddress Address
7060 Address of the daemon as understood by the "rrdc_connect" function
7061 of the RRD library. See rrdcached(1) for details. Example:
7062
7063 <Plugin "rrdcached">
7064 DaemonAddress "unix:/var/run/rrdcached.sock"
7065 </Plugin>
7066
7067 DataDir Directory
7068 Set the base directory in which the RRD files reside. If this is a
7069 relative path, it is relative to the working base directory of the
7070 "rrdcached" daemon! Use of an absolute path is recommended.
7071
7072 CreateFiles true|false
7073 Enables or disables the creation of RRD files. If the daemon is not
7074 running locally, or DataDir is set to a relative path, this will
7075 not work as expected. Default is true.
7076
7077 CreateFilesAsync false|true
7078 When enabled, new RRD files are enabled asynchronously, using a
7079 separate thread that runs in the background. This prevents writes
7080 to block, which is a problem especially when many hundreds of files
7081 need to be created at once. However, since the purpose of creating
7082 the files asynchronously is not to block until the file is
7083 available, values before the file is available will be discarded.
7084 When disabled (the default) files are created synchronously,
7085 blocking for a short while, while the file is being written.
7086
7087 StepSize Seconds
7088 Force the stepsize of newly created RRD-files. Ideally (and per
7089 default) this setting is unset and the stepsize is set to the
7090 interval in which the data is collected. Do not use this option
7091 unless you absolutely have to for some reason. Setting this option
7092 may cause problems with the "snmp plugin", the "exec plugin" or
7093 when the daemon is set up to receive data from other hosts.
7094
7095 HeartBeat Seconds
7096 Force the heartbeat of newly created RRD-files. This setting should
7097 be unset in which case the heartbeat is set to twice the StepSize
7098 which should equal the interval in which data is collected. Do not
7099 set this option unless you have a very good reason to do so.
7100
7101 RRARows NumRows
7102 The "rrdtool plugin" calculates the number of PDPs per CDP based on
7103 the StepSize, this setting and a timespan. This plugin creates RRD-
7104 files with three times five RRAs, i. e. five RRAs with the CFs MIN,
7105 AVERAGE, and MAX. The five RRAs are optimized for graphs covering
7106 one hour, one day, one week, one month, and one year.
7107
7108 So for each timespan, it calculates how many PDPs need to be
7109 consolidated into one CDP by calculating:
7110 number of PDPs = timespan / (stepsize * rrarows)
7111
7112 Bottom line is, set this no smaller than the width of you graphs in
7113 pixels. The default is 1200.
7114
7115 RRATimespan Seconds
7116 Adds an RRA-timespan, given in seconds. Use this option multiple
7117 times to have more then one RRA. If this option is never used, the
7118 built-in default of (3600, 86400, 604800, 2678400, 31622400) is
7119 used.
7120
7121 For more information on how RRA-sizes are calculated see RRARows
7122 above.
7123
7124 XFF Factor
7125 Set the "XFiles Factor". The default is 0.1. If unsure, don't set
7126 this option. Factor must be in the range "[0.0-1.0)", i.e. between
7127 zero (inclusive) and one (exclusive).
7128
7129 CollectStatistics false|true
7130 When set to true, various statistics about the rrdcached daemon
7131 will be collected, with "rrdcached" as the plugin name. Defaults to
7132 false.
7133
7134 Statistics are read via rrdcacheds socket using the STATS command.
7135 See rrdcached(1) for details.
7136
7137 Plugin "rrdtool"
7138 You can use the settings StepSize, HeartBeat, RRARows, and XFF to fine-
7139 tune your RRD-files. Please read rrdcreate(1) if you encounter problems
7140 using these settings. If you don't want to dive into the depths of
7141 RRDtool, you can safely ignore these settings.
7142
7143 DataDir Directory
7144 Set the directory to store RRD files under. By default RRD files
7145 are generated beneath the daemon's working directory, i.e. the
7146 BaseDir.
7147
7148 CreateFilesAsync false|true
7149 When enabled, new RRD files are enabled asynchronously, using a
7150 separate thread that runs in the background. This prevents writes
7151 to block, which is a problem especially when many hundreds of files
7152 need to be created at once. However, since the purpose of creating
7153 the files asynchronously is not to block until the file is
7154 available, values before the file is available will be discarded.
7155 When disabled (the default) files are created synchronously,
7156 blocking for a short while, while the file is being written.
7157
7158 StepSize Seconds
7159 Force the stepsize of newly created RRD-files. Ideally (and per
7160 default) this setting is unset and the stepsize is set to the
7161 interval in which the data is collected. Do not use this option
7162 unless you absolutely have to for some reason. Setting this option
7163 may cause problems with the "snmp plugin", the "exec plugin" or
7164 when the daemon is set up to receive data from other hosts.
7165
7166 HeartBeat Seconds
7167 Force the heartbeat of newly created RRD-files. This setting should
7168 be unset in which case the heartbeat is set to twice the StepSize
7169 which should equal the interval in which data is collected. Do not
7170 set this option unless you have a very good reason to do so.
7171
7172 RRARows NumRows
7173 The "rrdtool plugin" calculates the number of PDPs per CDP based on
7174 the StepSize, this setting and a timespan. This plugin creates RRD-
7175 files with three times five RRAs, i.e. five RRAs with the CFs MIN,
7176 AVERAGE, and MAX. The five RRAs are optimized for graphs covering
7177 one hour, one day, one week, one month, and one year.
7178
7179 So for each timespan, it calculates how many PDPs need to be
7180 consolidated into one CDP by calculating:
7181 number of PDPs = timespan / (stepsize * rrarows)
7182
7183 Bottom line is, set this no smaller than the width of you graphs in
7184 pixels. The default is 1200.
7185
7186 RRATimespan Seconds
7187 Adds an RRA-timespan, given in seconds. Use this option multiple
7188 times to have more then one RRA. If this option is never used, the
7189 built-in default of (3600, 86400, 604800, 2678400, 31622400) is
7190 used.
7191
7192 For more information on how RRA-sizes are calculated see RRARows
7193 above.
7194
7195 XFF Factor
7196 Set the "XFiles Factor". The default is 0.1. If unsure, don't set
7197 this option. Factor must be in the range "[0.0-1.0)", i.e. between
7198 zero (inclusive) and one (exclusive).
7199
7200 CacheFlush Seconds
7201 When the "rrdtool" plugin uses a cache (by setting CacheTimeout,
7202 see below) it writes all values for a certain RRD-file if the
7203 oldest value is older than (or equal to) the number of seconds
7204 specified by CacheTimeout. That check happens on new values
7205 arriwal. If some RRD-file is not updated anymore for some reason
7206 (the computer was shut down, the network is broken, etc.) some
7207 values may still be in the cache. If CacheFlush is set, then every
7208 Seconds seconds the entire cache is searched for entries older than
7209 CacheTimeout + RandomTimeout seconds. The entries found are written
7210 to disk. Since scanning the entire cache is kind of expensive and
7211 does nothing under normal circumstances, this value should not be
7212 too small. 900 seconds might be a good value, though setting this
7213 to 7200 seconds doesn't normally do much harm either.
7214
7215 Defaults to 10x CacheTimeout. CacheFlush must be larger than or
7216 equal to CacheTimeout, otherwise the above default is used.
7217
7218 CacheTimeout Seconds
7219 If this option is set to a value greater than zero, the "rrdtool
7220 plugin" will save values in a cache, as described above. Writing
7221 multiple values at once reduces IO-operations and thus lessens the
7222 load produced by updating the files. The trade off is that the
7223 graphs kind of "drag behind" and that more memory is used.
7224
7225 WritesPerSecond Updates
7226 When collecting many statistics with collectd and the "rrdtool"
7227 plugin, you will run serious performance problems. The CacheFlush
7228 setting and the internal update queue assert that collectd
7229 continues to work just fine even under heavy load, but the system
7230 may become very unresponsive and slow. This is a problem especially
7231 if you create graphs from the RRD files on the same machine, for
7232 example using the "graph.cgi" script included in the
7233 "contrib/collection3/" directory.
7234
7235 This setting is designed for very large setups. Setting this option
7236 to a value between 25 and 80 updates per second, depending on your
7237 hardware, will leave the server responsive enough to draw graphs
7238 even while all the cached values are written to disk. Flushed
7239 values, i. e. values that are forced to disk by the FLUSH command,
7240 are not effected by this limit. They are still written as fast as
7241 possible, so that web frontends have up to date data when
7242 generating graphs.
7243
7244 For example: If you have 100,000 RRD files and set WritesPerSecond
7245 to 30 updates per second, writing all values to disk will take
7246 approximately 56 minutes. Together with the flushing ability that's
7247 integrated into "collection3" you'll end up with a responsive and
7248 fast system, up to date graphs and basically a "backup" of your
7249 values every hour.
7250
7251 RandomTimeout Seconds
7252 When set, the actual timeout for each value is chosen randomly
7253 between CacheTimeout-RandomTimeout and CacheTimeout+RandomTimeout.
7254 The intention is to avoid high load situations that appear when
7255 many values timeout at the same time. This is especially a problem
7256 shortly after the daemon starts, because all values were added to
7257 the internal cache at roughly the same time.
7258
7259 Plugin "sensors"
7260 The Sensors plugin uses lm_sensors to retrieve sensor-values. This
7261 means that all the needed modules have to be loaded and lm_sensors has
7262 to be configured (most likely by editing /etc/sensors.conf. Read
7263 sensors.conf(5) for details.
7264
7265 The lm_sensors homepage can be found at
7266 <http://secure.netroedge.com/~lm78/>.
7267
7268 SensorConfigFile File
7269 Read the lm_sensors configuration from File. When unset
7270 (recommended), the library's default will be used.
7271
7272 Sensor chip-bus-address/type-feature
7273 Selects the name of the sensor which you want to collect or ignore,
7274 depending on the IgnoreSelected below. For example, the option
7275 "Sensor it8712-isa-0290/voltage-in1" will cause collectd to gather
7276 data for the voltage sensor in1 of the it8712 on the isa bus at the
7277 address 0290.
7278
7279 See /"IGNORELISTS" for details.
7280
7281 IgnoreSelected true|false
7282 If no configuration if given, the sensors-plugin will collect data
7283 from all sensors. This may not be practical, especially for
7284 uninteresting sensors. Thus, you can use the Sensor-option to pick
7285 the sensors you're interested in. Sometimes, however, it's
7286 easier/preferred to collect all sensors except a few ones. This
7287 option enables you to do that: By setting IgnoreSelected to true
7288 the effect of Sensor is inverted: All selected sensors are ignored
7289 and all other sensors are collected.
7290
7291 UseLabels true|false
7292 Configures how sensor readings are reported. When set to true,
7293 sensor readings are reported using their descriptive label (e.g.
7294 "VCore"). When set to false (the default) the sensor name is used
7295 ("in0").
7296
7297 Plugin "sigrok"
7298 The sigrok plugin uses libsigrok to retrieve measurements from any
7299 device supported by the sigrok <http://sigrok.org/> project.
7300
7301 Synopsis
7302
7303 <Plugin sigrok>
7304 LogLevel 3
7305 <Device "AC Voltage">
7306 Driver "fluke-dmm"
7307 MinimumInterval 10
7308 Conn "/dev/ttyUSB2"
7309 </Device>
7310 <Device "Sound Level">
7311 Driver "cem-dt-885x"
7312 Conn "/dev/ttyUSB1"
7313 </Device>
7314 </Plugin>
7315
7316 LogLevel 0-5
7317 The sigrok logging level to pass on to the collectd log, as a
7318 number between 0 and 5 (inclusive). These levels correspond to
7319 "None", "Errors", "Warnings", "Informational", "Debug "and "Spew",
7320 respectively. The default is 2 ("Warnings"). The sigrok log
7321 messages, regardless of their level, are always submitted to
7322 collectd at its INFO log level.
7323
7324 <Device Name>
7325 A sigrok-supported device, uniquely identified by this section's
7326 options. The Name is passed to collectd as the plugin instance.
7327
7328 Driver DriverName
7329 The sigrok driver to use for this device.
7330
7331 Conn ConnectionSpec
7332 If the device cannot be auto-discovered, or more than one might be
7333 discovered by the driver, ConnectionSpec specifies the connection
7334 string to the device. It can be of the form of a device path
7335 (e.g. "/dev/ttyUSB2"), or, in case of a non-serial USB-connected
7336 device, the USB VendorID.ProductID separated by a period
7337 (e.g. 0403.6001). A USB device can also be specified as Bus.Address
7338 (e.g. 1.41).
7339
7340 SerialComm SerialSpec
7341 For serial devices with non-standard port settings, this option can
7342 be used to specify them in a form understood by sigrok,
7343 e.g. "9600/8n1". This should not be necessary; drivers know how to
7344 communicate with devices they support.
7345
7346 MinimumInterval Seconds
7347 Specifies the minimum time between measurement dispatches to
7348 collectd, in seconds. Since some sigrok supported devices can
7349 acquire measurements many times per second, it may be necessary to
7350 throttle these. For example, the RRD plugin cannot process writes
7351 more than once per second.
7352
7353 The default MinimumInterval is 0, meaning measurements received
7354 from the device are always dispatched to collectd. When throttled,
7355 unused measurements are discarded.
7356
7357 Plugin "slurm"
7358 This plugin collects per-partition SLURM node and job state
7359 information, as well as internal health statistics. It takes no
7360 options. It should run on a node that is capable of running the sinfo
7361 and squeue commands, i.e. it has a running slurmd and a valid
7362 slurm.conf. Note that this plugin needs the Globals option set to true
7363 in order to function properly.
7364
7365 Plugin "smart"
7366 The "smart" plugin collects SMART information from physical disks.
7367 Values collectd include temperature, power cycle count, poweron time
7368 and bad sectors. Also, all SMART attributes are collected along with
7369 the normalized current value, the worst value, the threshold and a
7370 human readable value.
7371
7372 Using the following two options you can ignore some disks or configure
7373 the collection only of specific disks.
7374
7375 Disk Name
7376 Select the disk Name. Whether it is collected or ignored depends on
7377 the IgnoreSelected setting, see below. As with other plugins that
7378 use the daemon's ignorelist functionality, a string that starts and
7379 ends with a slash is interpreted as a regular expression. Examples:
7380
7381 Disk "sdd"
7382 Disk "/hda[34]/"
7383
7384 See /"IGNORELISTS" for details.
7385
7386 IgnoreSelected true|false
7387 Sets whether selected disks, i. e. the ones matches by any of the
7388 Disk statements, are ignored or if all other disks are ignored. The
7389 behavior (hopefully) is intuitive: If no Disk option is configured,
7390 all disks are collected. If at least one Disk option is given and
7391 no IgnoreSelected or set to false, only matching disks will be
7392 collected. If IgnoreSelected is set to true, all disks are
7393 collected except the ones matched.
7394
7395 IgnoreSleepMode true|false
7396 Normally, the "smart" plugin will ignore disks that are reported to
7397 be asleep. This option disables the sleep mode check and allows
7398 the plugin to collect data from these disks anyway. This is useful
7399 in cases where libatasmart mistakenly reports disks as asleep
7400 because it has not been updated to incorporate support for newer
7401 idle states in the ATA spec.
7402
7403 UseSerial true|false
7404 A disk's kernel name (e.g., sda) can change from one boot to the
7405 next. If this option is enabled, the "smart" plugin will use the
7406 disk's serial number (e.g., HGST_HUH728080ALE600_2EJ8VH8X) instead
7407 of the kernel name as the key for storing data. This ensures that
7408 the data for a given disk will be kept together even if the kernel
7409 name changes.
7410
7411 Plugin "snmp"
7412 Since the configuration of the "snmp plugin" is a little more
7413 complicated than other plugins, its documentation has been moved to an
7414 own manpage, collectd-snmp(5). Please see there for details.
7415
7416 Plugin "snmp_agent"
7417 The snmp_agent plugin is an AgentX subagent that receives and handles
7418 queries from SNMP master agent and returns the data collected by read
7419 plugins. The snmp_agent plugin handles requests only for OIDs
7420 specified in configuration file. To handle SNMP queries the plugin gets
7421 data from collectd and translates requested values from collectd's
7422 internal format to SNMP format. This plugin is a generic plugin and
7423 cannot work without configuration. For more details on AgentX subagent
7424 see <http://www.net-snmp.org/tutorial/tutorial-5/toolkit/demon/>
7425
7426 Synopsis:
7427
7428 <Plugin snmp_agent>
7429 <Data "memAvailReal">
7430 Plugin "memory"
7431 #PluginInstance "some"
7432 Type "memory"
7433 TypeInstance "free"
7434 OIDs "1.3.6.1.4.1.2021.4.6.0"
7435 </Data>
7436 <Table "ifTable">
7437 IndexOID "IF-MIB::ifIndex"
7438 SizeOID "IF-MIB::ifNumber"
7439 <Data "ifDescr">
7440 <IndexKey>
7441 Source "PluginInstance"
7442 </IndexKey>
7443 Plugin "interface"
7444 OIDs "IF-MIB::ifDescr"
7445 </Data>
7446 <Data "ifOctets">
7447 Plugin "interface"
7448 Type "if_octets"
7449 TypeInstance ""
7450 OIDs "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
7451 </Data>
7452 </Table>
7453 <Table "CPUAffinityTable">
7454 <Data "DomainName">
7455 <IndexKey>
7456 Source "PluginInstance"
7457 </IndexKey>
7458 Plugin "virt"
7459 OIDs "LIBVIRT-HYPERVISOR-MIB::lvhAffinityDomainName"
7460 </Data>
7461 <Data "VCPU">
7462 Plugin "virt"
7463 <IndexKey>
7464 Source "TypeInstance"
7465 Regex "^vcpu_([0-9]{1,3})-cpu_[0-9]{1,3}$"
7466 Group 1
7467 </IndexKey>
7468 OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVCPUIndex"
7469 </Data>
7470 <Data "CPU">
7471 Plugin "virt"
7472 <IndexKey>
7473 Source "TypeInstance"
7474 Regex "^vcpu_[0-9]{1,3}-cpu_([0-9]{1,3})$"
7475 Group 1
7476 </IndexKey>
7477 OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUIndex"
7478 </Data>
7479 <Data "CPUAffinity">
7480 Plugin "virt"
7481 Type "cpu_affinity"
7482 OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUAffinity"
7483 </Data>
7484 </Table>
7485 </Plugin>
7486
7487 There are two types of blocks that can be contained in the "<Plugin
7488 snmp_agent>" block: Data and Table:
7489
7490 Data block
7491
7492 The Data block defines a list OIDs that are to be handled. This block
7493 can define scalar or table OIDs. If Data block is defined inside of
7494 Table block it reperesents table OIDs. The following options can be
7495 set:
7496
7497 IndexKey block
7498 IndexKey block contains all data needed for proper index build of
7499 snmp table. In case more than one table Data block has IndexKey
7500 block present then multiple key index is built. If Data block
7501 defines scalar data type IndexKey has no effect and can be omitted.
7502
7503 Source String
7504 Source can be set to one of the following values:
7505 "Hostname", "Plugin", "PluginInstance", "Type",
7506 "TypeInstance". This value indicates which field of
7507 corresponding collectd metric is taken as a SNMP table
7508 index.
7509
7510 Regex String
7511 Regex option can also be used to parse strings or numbers
7512 out of specific field. For example: type-instance field
7513 which is "vcpu1-cpu2" can be parsed into two numeric fields
7514 CPU = 2 and VCPU = 1 and can be later used as a table
7515 index.
7516
7517 Group Number
7518 Group number can be specified in case groups are used in
7519 regex.
7520
7521 Plugin String
7522 Read plugin name whose collected data will be mapped to specified
7523 OIDs.
7524
7525 PluginInstance String
7526 Read plugin instance whose collected data will be mapped to
7527 specified OIDs. The field is optional and by default there is no
7528 plugin instance check. Allowed only if Data block defines scalar
7529 data type.
7530
7531 Type String
7532 Collectd's type that is to be used for specified OID, e. g.
7533 "if_octets" for example. The types are read from the TypesDB (see
7534 collectd.conf(5)).
7535
7536 TypeInstance String
7537 Collectd's type-instance that is to be used for specified OID.
7538
7539 OIDs OID [OID ...]
7540 Configures the OIDs to be handled by snmp_agent plugin. Values for
7541 these OIDs are taken from collectd data type specified by Plugin,
7542 PluginInstance, Type, TypeInstance fields of this Data block.
7543 Number of the OIDs configured should correspond to number of values
7544 in specified Type. For example two OIDs "IF-MIB::ifInOctets"
7545 "IF-MIB::ifOutOctets" can be mapped to "rx" and "tx" values of
7546 "if_octets" type.
7547
7548 Scale Value
7549 The values taken from collectd are multiplied by Value. The field
7550 is optional and the default is 1.0.
7551
7552 Shift Value
7553 Value is added to values from collectd after they have been
7554 multiplied by Scale value. The field is optional and the default
7555 value is 0.0.
7556
7557 The Table block
7558
7559 The Table block defines a collection of Data blocks that belong to one
7560 snmp table. In addition to multiple Data blocks the following options
7561 can be set:
7562
7563 IndexOID OID
7564 OID that is handled by the plugin and is mapped to numerical index
7565 value that is generated by the plugin for each table record.
7566
7567 SizeOID OID
7568 OID that is handled by the plugin. Returned value is the number of
7569 records in the table. The field is optional.
7570
7571 Plugin "statsd"
7572 The statsd plugin listens to a UDP socket, reads "events" in the statsd
7573 protocol and dispatches rates or other aggregates of these numbers
7574 periodically.
7575
7576 The plugin implements the Counter, Timer, Gauge and Set types which are
7577 dispatched as the collectd types "derive", "latency", "gauge" and
7578 "objects" respectively.
7579
7580 The following configuration options are valid:
7581
7582 Host Host
7583 Bind to the hostname / address Host. By default, the plugin will
7584 bind to the "any" address, i.e. accept packets sent to any of the
7585 hosts addresses.
7586
7587 Port Port
7588 UDP port to listen to. This can be either a service name or a port
7589 number. Defaults to 8125.
7590
7591 DeleteCounters false|true
7592 DeleteTimers false|true
7593 DeleteGauges false|true
7594 DeleteSets false|true
7595 These options control what happens if metrics are not updated in an
7596 interval. If set to False, the default, metrics are dispatched
7597 unchanged, i.e. the rate of counters and size of sets will be zero,
7598 timers report "NaN" and gauges are unchanged. If set to True, the
7599 such metrics are not dispatched and removed from the internal
7600 cache.
7601
7602 CounterSum false|true
7603 When enabled, creates a "count" metric which reports the change
7604 since the last read. This option primarily exists for compatibility
7605 with the statsd implementation by Etsy.
7606
7607 TimerPercentile Percent
7608 Calculate and dispatch the configured percentile, i.e. compute the
7609 latency, so that Percent of all reported timers are smaller than or
7610 equal to the computed latency. This is useful for cutting off the
7611 long tail latency, as it's often done in Service Level Agreements
7612 (SLAs).
7613
7614 Different percentiles can be calculated by setting this option
7615 several times. If none are specified, no percentiles are
7616 calculated / dispatched.
7617
7618 TimerLower false|true
7619 TimerUpper false|true
7620 TimerSum false|true
7621 TimerCount false|true
7622 Calculate and dispatch various values out of Timer metrics received
7623 during an interval. If set to False, the default, these values
7624 aren't calculated / dispatched.
7625
7626 Please note what reported timer values less than 0.001 are ignored
7627 in all Timer* reports.
7628
7629 Plugin "swap"
7630 The Swap plugin collects information about used and available swap
7631 space. On Linux and Solaris, the following options are available:
7632
7633 ReportByDevice false|true
7634 Configures how to report physical swap devices. If set to false
7635 (the default), the summary over all swap devices is reported only,
7636 i.e. the globally used and available space over all devices. If
7637 true is configured, the used and available space of each device
7638 will be reported separately.
7639
7640 This option is only available if the Swap plugin can read
7641 "/proc/swaps" (under Linux) or use the swapctl(2) mechanism (under
7642 Solaris).
7643
7644 ReportBytes false|true
7645 When enabled, the swap I/O is reported in bytes. When disabled, the
7646 default, swap I/O is reported in pages. This option is available
7647 under Linux only.
7648
7649 ValuesAbsolute true|false
7650 Enables or disables reporting of absolute swap metrics, i.e. number
7651 of bytes available and used. Defaults to true.
7652
7653 ValuesPercentage false|true
7654 Enables or disables reporting of relative swap metrics, i.e.
7655 percent available and free. Defaults to false.
7656
7657 This is useful for deploying collectd in a heterogeneous
7658 environment, where swap sizes differ and you want to specify
7659 generic thresholds or similar.
7660
7661 ReportIO true|false
7662 Enables or disables reporting swap IO. Defaults to true.
7663
7664 This is useful for the cases when swap IO is not neccessary, is not
7665 available, or is not reliable.
7666
7667 Plugin "sysevent"
7668 The sysevent plugin monitors rsyslog messages.
7669
7670 Synopsis:
7671
7672 <Plugin sysevent>
7673 Listen "192.168.0.2" "6666"
7674 BufferSize 1024
7675 BufferLength 10
7676 RegexFilter "regex"
7677 </Plugin>
7678
7679 rsyslog should be configured such that it sends data to the IP and port you
7680 include in the plugin configuration. For example, given the configuration
7681 above, something like this would be set in /etc/rsyslog.conf:
7682
7683 if $programname != 'collectd' then
7684 *.* @192.168.0.2:6666
7685
7686 This plugin is designed to consume JSON rsyslog data, so a more complete
7687 rsyslog configuration would look like so (where we define a JSON template
7688 and use it when sending data to our IP and port):
7689
7690 $template ls_json,"{%timestamp:::date-rfc3339,jsonf:@timestamp%, \
7691 %source:::jsonf:@source_host%,\"@source\":\"syslog://%fromhost-ip:::json%\", \
7692 \"@message\":\"%timestamp% %app-name%:%msg:::json%\",\"@fields\": \
7693 {%syslogfacility-text:::jsonf:facility%,%syslogseverity:::jsonf:severity-num%, \
7694 %syslogseverity-text:::jsonf:severity%,%programname:::jsonf:program%, \
7695 %procid:::jsonf:processid%}}"
7696
7697 if $programname != 'collectd' then
7698 *.* @192.168.0.2:6666;ls_json
7699
7700 Please note that these rsyslog.conf examples are *not* complete, as rsyslog
7701 requires more than these options in the configuration file. These examples
7702 are meant to demonstration the proper remote logging and JSON format syntax.
7703
7704 Options:
7705
7706 Listen host port
7707 Listen on this IP on this port for incoming rsyslog messages.
7708
7709 BufferSize length
7710 Maximum allowed size for incoming rsyslog messages. Messages that
7711 exceed this number will be truncated to this size. Default is 4096
7712 bytes.
7713
7714 BufferLength length
7715 Maximum number of rsyslog events that can be stored in plugin's
7716 ring buffer. By default, this is set to 10. Once an event has
7717 been read, its location becomes available for storing a new event.
7718
7719 RegexFilter regex
7720 Enumerate a regex filter to apply to all incoming rsyslog messages.
7721 If a message matches this filter, it will be published.
7722
7723 Plugin "syslog"
7724 LogLevel debug|info|notice|warning|err
7725 Sets the log-level. If, for example, set to notice, then all events
7726 with severity notice, warning, or err will be submitted to the
7727 syslog-daemon.
7728
7729 Please note that debug is only available if collectd has been
7730 compiled with debugging support.
7731
7732 NotifyLevel OKAY|WARNING|FAILURE
7733 Controls which notifications should be sent to syslog. The default
7734 behaviour is not to send any. Less severe notifications always
7735 imply logging more severe notifications: Setting this to OKAY means
7736 all notifications will be sent to syslog, setting this to WARNING
7737 will send WARNING and FAILURE notifications but will dismiss OKAY
7738 notifications. Setting this option to FAILURE will only send
7739 failures to syslog.
7740
7741 Plugin "table"
7742 The "table plugin" provides generic means to parse tabular data and
7743 dispatch user specified values. Values are selected based on column
7744 numbers. For example, this plugin may be used to get values from the
7745 Linux proc(5) filesystem or CSV (comma separated values) files.
7746
7747 <Plugin table>
7748 <Table "/proc/slabinfo">
7749 #Plugin "slab"
7750 Instance "slabinfo"
7751 Separator " "
7752 <Result>
7753 Type gauge
7754 InstancePrefix "active_objs"
7755 InstancesFrom 0
7756 ValuesFrom 1
7757 </Result>
7758 <Result>
7759 Type gauge
7760 InstancePrefix "objperslab"
7761 InstancesFrom 0
7762 ValuesFrom 4
7763 </Result>
7764 </Table>
7765 </Plugin>
7766
7767 The configuration consists of one or more Table blocks, each of which
7768 configures one file to parse. Within each Table block, there are one or
7769 more Result blocks, which configure which data to select and how to
7770 interpret it.
7771
7772 The following options are available inside a Table block:
7773
7774 Plugin Plugin
7775 If specified, Plugin is used as the plugin name when submitting
7776 values. Defaults to table.
7777
7778 Instance instance
7779 If specified, instance is used as the plugin instance. If omitted,
7780 the filename of the table is used instead, with all special
7781 characters replaced with an underscore ("_").
7782
7783 Separator string
7784 Any character of string is interpreted as a delimiter between the
7785 different columns of the table. A sequence of two or more
7786 contiguous delimiters in the table is considered to be a single
7787 delimiter, i. e. there cannot be any empty columns. The plugin uses
7788 the strtok_r(3) function to parse the lines of a table - see its
7789 documentation for more details. This option is mandatory.
7790
7791 A horizontal tab, newline and carriage return may be specified by
7792 "\\t", "\\n" and "\\r" respectively. Please note that the double
7793 backslashes are required because of collectd's config parsing.
7794
7795 The following options are available inside a Result block:
7796
7797 Type type
7798 Sets the type used to dispatch the values to the daemon. Detailed
7799 information about types and their configuration can be found in
7800 types.db(5). This option is mandatory.
7801
7802 InstancePrefix prefix
7803 If specified, prepend prefix to the type instance. If omitted, only
7804 the InstancesFrom option is considered for the type instance.
7805
7806 InstancesFrom column0 [column1 ...]
7807 If specified, the content of the given columns (identified by the
7808 column number starting at zero) will be used to create the type
7809 instance for each row. Multiple values (and the instance prefix)
7810 will be joined together with dashes (-) as separation character. If
7811 omitted, only the InstancePrefix option is considered for the type
7812 instance.
7813
7814 The plugin itself does not check whether or not all built instances
7815 are different. ItXs your responsibility to assure that each is
7816 unique. This is especially true, if you do not specify
7817 InstancesFrom: You have to make sure that the table only contains
7818 one row.
7819
7820 If neither InstancePrefix nor InstancesFrom is given, the type
7821 instance will be empty.
7822
7823 ValuesFrom column0 [column1 ...]
7824 Specifies the columns (identified by the column numbers starting at
7825 zero) whose content is used as the actual data for the data sets
7826 that are dispatched to the daemon. How many such columns you need
7827 is determined by the Type setting above. If you specify too many or
7828 not enough columns, the plugin will complain about that and no data
7829 will be submitted to the daemon. The plugin uses strtoll(3) and
7830 strtod(3) to parse counter and gauge values respectively, so
7831 anything supported by those functions is supported by the plugin as
7832 well. This option is mandatory.
7833
7834 Plugin "tail"
7835 The "tail plugin" follows logfiles, just like tail(1) does, parses each
7836 line and dispatches found values. What is matched can be configured by
7837 the user using (extended) regular expressions, as described in
7838 regex(7).
7839
7840 <Plugin "tail">
7841 <File "/var/log/exim4/mainlog">
7842 Plugin "mail"
7843 Instance "exim"
7844 Interval 60
7845 <Match>
7846 Regex "S=([1-9][0-9]*)"
7847 DSType "CounterAdd"
7848 Type "ipt_bytes"
7849 Instance "total"
7850 </Match>
7851 <Match>
7852 Regex "\\<R=local_user\\>"
7853 ExcludeRegex "\\<R=local_user\\>.*mail_spool defer"
7854 DSType "CounterInc"
7855 Type "counter"
7856 Instance "local_user"
7857 </Match>
7858 <Match>
7859 Regex "l=([0-9]*\\.[0-9]*)"
7860 <DSType "Distribution">
7861 Percentile 99
7862 Bucket 0 100
7863 #BucketType "bucket"
7864 </DSType>
7865 Type "latency"
7866 Instance "foo"
7867 </Match>
7868 </File>
7869 </Plugin>
7870
7871 The config consists of one or more File blocks, each of which
7872 configures one logfile to parse. Within each File block, there are one
7873 or more Match blocks, which configure a regular expression to search
7874 for.
7875
7876 The Plugin and Instance options in the File block may be used to set
7877 the plugin name and instance respectively. So in the above example the
7878 plugin name "mail-exim" would be used.
7879
7880 These options are applied for all Match blocks that follow it, until
7881 the next Plugin or Instance option. This way you can extract several
7882 plugin instances from one logfile, handy when parsing syslog and the
7883 like.
7884
7885 The Interval option allows you to define the length of time between
7886 reads. If this is not set, the default Interval will be used.
7887
7888 Each Match block has the following options to describe how the match
7889 should be performed:
7890
7891 Regex regex
7892 Sets the regular expression to use for matching against a line. The
7893 first subexpression has to match something that can be turned into
7894 a number by strtoll(3) or strtod(3), depending on the value of
7895 "CounterAdd", see below. Because extended regular expressions are
7896 used, you do not need to use backslashes for subexpressions! If in
7897 doubt, please consult regex(7). Due to collectd's config parsing
7898 you need to escape backslashes, though. So if you want to match
7899 literal parentheses you need to do the following:
7900
7901 Regex "SPAM \\(Score: (-?[0-9]+\\.[0-9]+)\\)"
7902
7903 ExcludeRegex regex
7904 Sets an optional regular expression to use for excluding lines from
7905 the match. An example which excludes all connections from
7906 localhost from the match:
7907
7908 ExcludeRegex "127\\.0\\.0\\.1"
7909
7910 DSType Type
7911 Sets how the values are cumulated. Type is one of:
7912
7913 GaugeAverage
7914 Calculate the average of all values matched during the
7915 interval.
7916
7917 GaugeMin
7918 Report the smallest value matched during the interval.
7919
7920 GaugeMax
7921 Report the greatest value matched during the interval.
7922
7923 GaugeLast
7924 Report the last value matched during the interval.
7925
7926 GaugePersist
7927 Report the last matching value. The metric is not reset to
7928 "NaN" at the end of an interval. It is continuously reported
7929 until another value is matched. This is intended for cases in
7930 which only state changes are reported, for example a
7931 thermometer that only reports the temperature when it changes.
7932
7933 CounterSet
7934 DeriveSet
7935 AbsoluteSet
7936 The matched number is a counter. Simply sets the internal
7937 counter to this value. Variants exist for "COUNTER", "DERIVE",
7938 and "ABSOLUTE" data sources.
7939
7940 GaugeAdd
7941 CounterAdd
7942 DeriveAdd
7943 Add the matched value to the internal counter. In case of
7944 DeriveAdd, the matched number may be negative, which will
7945 effectively subtract from the internal counter.
7946
7947 GaugeInc
7948 CounterInc
7949 DeriveInc
7950 Increase the internal counter by one. These DSType are the only
7951 ones that do not use the matched subexpression, but simply
7952 count the number of matched lines. Thus, you may use a regular
7953 expression without submatch in this case.
7954
7955 GaugeInc is reset to zero after every read, unlike other Gauge*
7956 metrics which are reset to "NaN".
7957
7958 Distribution
7959 Type to do calculations based on the distribution of values,
7960 primarily calculating percentiles. This is primarily geared
7961 towards latency, but can be used for other metrics as well. The
7962 range of values tracked with this setting must be in the range
7963 (0X2^34) and can be fractional. Please note that neither zero
7964 nor 2^34 are inclusive bounds, i.e. zero cannot be handled by a
7965 distribution.
7966
7967 This option must be used together with the Percentile and/or
7968 Bucket options.
7969
7970 Synopsis:
7971
7972 <DSType "Distribution">
7973 Percentile 99
7974 Bucket 0 100
7975 BucketType "bucket"
7976 </DSType>
7977
7978 Percentile Percent
7979 Calculate and dispatch the configured percentile, i.e.
7980 compute the value, so that Percent of all matched values
7981 are smaller than or equal to the computed latency.
7982
7983 Metrics are reported with the type Type (the value of the
7984 above option) and the type instance
7985 "[<Instance>-]<Percent>".
7986
7987 This option may be repeated to calculate more than one
7988 percentile.
7989
7990 Bucket lower_bound upper_bound
7991 Export the number of values (a "DERIVE") falling within the
7992 given range. Both, lower_bound and upper_bound may be a
7993 fractional number, such as 0.5. Each Bucket option
7994 specifies an interval "(lower_bound, upper_bound]", i.e.
7995 the range excludes the lower bound and includes the upper
7996 bound. lower_bound and upper_bound may be zero, meaning no
7997 lower/upper bound.
7998
7999 To export the entire (0Xinf) range without overlap, use the
8000 upper bound of the previous range as the lower bound of the
8001 following range. In other words, use the following schema:
8002
8003 Bucket 0 1
8004 Bucket 1 2
8005 Bucket 2 5
8006 Bucket 5 10
8007 Bucket 10 20
8008 Bucket 20 50
8009 Bucket 50 0
8010
8011 Metrics are reported with the type set by BucketType option
8012 ("bucket" by default) and the type instance
8013 "<Type>[-<Instance>]-<lower_bound>_<upper_bound>".
8014
8015 This option may be repeated to calculate more than one
8016 rate.
8017
8018 BucketType Type
8019 Sets the type used to dispatch Bucket metrics. Optional,
8020 by default "bucket" will be used.
8021
8022 The Gauge* and Distribution types interpret the submatch as a
8023 floating point number, using strtod(3). The Counter* and
8024 AbsoluteSet types interpret the submatch as an unsigned integer
8025 using strtoull(3). The Derive* types interpret the submatch as a
8026 signed integer using strtoll(3). CounterInc, DeriveInc and GaugeInc
8027 do not use the submatch at all and it may be omitted in this case.
8028
8029 The Gauge* types, unless noted otherwise, are reset to "NaN" after
8030 being reported. In other words, GaugeAverage reports the average of
8031 all values matched since the last metric was reported (or "NaN" if
8032 there was no match).
8033
8034 Type Type
8035 Sets the type used to dispatch this value. Detailed information
8036 about types and their configuration can be found in types.db(5).
8037
8038 Instance TypeInstance
8039 This optional setting sets the type instance to use.
8040
8041 Plugin "tail_csv"
8042 The tail_csv plugin reads files in the CSV format, e.g. the statistics
8043 file written by Snort.
8044
8045 Synopsis:
8046
8047 <Plugin "tail_csv">
8048 <Metric "snort-dropped">
8049 Type "percent"
8050 Instance "dropped"
8051 ValueFrom 1
8052 </Metric>
8053 <File "/var/log/snort/snort.stats">
8054 Plugin "snortstats"
8055 Instance "eth0"
8056 Interval 600
8057 Collect "snort-dropped"
8058 FieldSeparator ","
8059 #TimeFrom 0
8060 </File>
8061 </Plugin>
8062
8063 The configuration consists of one or more Metric blocks that define an
8064 index into the line of the CSV file and how this value is mapped to
8065 collectd's internal representation. These are followed by one or more
8066 Instance blocks which configure which file to read, in which interval
8067 and which metrics to extract.
8068
8069 <Metric Name>
8070 The Metric block configures a new metric to be extracted from the
8071 statistics file and how it is mapped on collectd's data model. The
8072 string Name is only used inside the Instance blocks to refer to
8073 this block, so you can use one Metric block for multiple CSV files.
8074
8075 Type Type
8076 Configures which Type to use when dispatching this metric.
8077 Types are defined in the types.db(5) file, see the appropriate
8078 manual page for more information on specifying types. Only
8079 types with a single data source are supported by the tail_csv
8080 plugin. The information whether the value is an absolute value
8081 (i.e. a "GAUGE") or a rate (i.e. a "DERIVE") is taken from the
8082 Type's definition.
8083
8084 Instance TypeInstance
8085 If set, TypeInstance is used to populate the type instance
8086 field of the created value lists. Otherwise, no type instance
8087 is used.
8088
8089 ValueFrom Index
8090 Configure to read the value from the field with the zero-based
8091 index Index. If the value is parsed as signed integer,
8092 unsigned integer or double depends on the Type setting, see
8093 above.
8094
8095 <File Path>
8096 Each File block represents one CSV file to read. There must be at
8097 least one File block but there can be multiple if you have multiple
8098 CSV files.
8099
8100 Plugin Plugin
8101 Use Plugin as the plugin name when submitting values. Defaults
8102 to "tail_csv".
8103
8104 Instance PluginInstance
8105 Sets the plugin instance used when dispatching the values.
8106
8107 Collect Metric
8108 Specifies which Metric to collect. This option must be
8109 specified at least once, and you can use this option multiple
8110 times to specify more than one metric to be extracted from this
8111 statistic file.
8112
8113 Interval Seconds
8114 Configures the interval in which to read values from this
8115 instance / file. Defaults to the plugin's default interval.
8116
8117 TimeFrom Index
8118 Rather than using the local time when dispatching a value, read
8119 the timestamp from the field with the zero-based index Index.
8120 The value is interpreted as seconds since epoch. The value is
8121 parsed as a double and may be factional.
8122
8123 FieldSeparator Character
8124 Specify the character to use as field separator while parsing
8125 the CSV. Defaults to ',' if not specified. The value can only
8126 be a single character.
8127
8128 Plugin "teamspeak2"
8129 The "teamspeak2 plugin" connects to the query port of a teamspeak2
8130 server and polls interesting global and virtual server data. The plugin
8131 can query only one physical server but unlimited virtual servers. You
8132 can use the following options to configure it:
8133
8134 Host hostname/ip
8135 The hostname or ip which identifies the physical server. Default:
8136 127.0.0.1
8137
8138 Port port
8139 The query port of the physical server. This needs to be a string.
8140 Default: "51234"
8141
8142 Server port
8143 This option has to be added once for every virtual server the
8144 plugin should query. If you want to query the virtual server on
8145 port 8767 this is what the option would look like:
8146
8147 Server "8767"
8148
8149 This option, although numeric, needs to be a string, i. e. you must
8150 use quotes around it! If no such statement is given only global
8151 information will be collected.
8152
8153 Plugin "ted"
8154 The TED plugin connects to a device of "The Energy Detective", a device
8155 to measure power consumption. These devices are usually connected to a
8156 serial (RS232) or USB port. The plugin opens a configured device and
8157 tries to read the current energy readings. For more information on TED,
8158 visit <http://www.theenergydetective.com/>.
8159
8160 Available configuration options:
8161
8162 Device Path
8163 Path to the device on which TED is connected. collectd will need
8164 read and write permissions on that file.
8165
8166 Default: /dev/ttyUSB0
8167
8168 Retries Num
8169 Apparently reading from TED is not that reliable. You can therefore
8170 configure a number of retries here. You only configure the retries
8171 here, to if you specify zero, one reading will be performed (but no
8172 retries if that fails); if you specify three, a maximum of four
8173 readings are performed. Negative values are illegal.
8174
8175 Default: 0
8176
8177 Plugin "tcpconns"
8178 The "tcpconns plugin" counts the number of currently established TCP
8179 connections based on the local port and/or the remote port. Since there
8180 may be a lot of connections the default if to count all connections
8181 with a local port, for which a listening socket is opened. You can use
8182 the following options to fine-tune the ports you are interested in:
8183
8184 ListeningPorts true|false
8185 If this option is set to true, statistics for all local ports for
8186 which a listening socket exists are collected. The default depends
8187 on LocalPort and RemotePort (see below): If no port at all is
8188 specifically selected, the default is to collect listening ports.
8189 If specific ports (no matter if local or remote ports) are
8190 selected, this option defaults to false, i. e. only the selected
8191 ports will be collected unless this option is set to true
8192 specifically.
8193
8194 LocalPort Port
8195 Count the connections to a specific local port. This can be used to
8196 see how many connections are handled by a specific daemon, e. g.
8197 the mailserver. You have to specify the port in numeric form, so
8198 for the mailserver example you'd need to set 25.
8199
8200 RemotePort Port
8201 Count the connections to a specific remote port. This is useful to
8202 see how much a remote service is used. This is most useful if you
8203 want to know how many connections a local service has opened to
8204 remote services, e. g. how many connections a mail server or news
8205 server has to other mail or news servers, or how many connections a
8206 web proxy holds to web servers. You have to give the port in
8207 numeric form.
8208
8209 AllPortsSummary true|false
8210 If this option is set to true a summary of statistics from all
8211 connections are collected. This option defaults to false.
8212
8213 Plugin "thermal"
8214 ForceUseProcfs true|false
8215 By default, the Thermal plugin tries to read the statistics from
8216 the Linux "sysfs" interface. If that is not available, the plugin
8217 falls back to the "procfs" interface. By setting this option to
8218 true, you can force the plugin to use the latter. This option
8219 defaults to false.
8220
8221 Device Device
8222 Selects the name of the thermal device that you want to collect or
8223 ignore, depending on the value of the IgnoreSelected option. This
8224 option may be used multiple times to specify a list of devices.
8225
8226 See /"IGNORELISTS" for details.
8227
8228 IgnoreSelected true|false
8229 Invert the selection: If set to true, all devices except the ones
8230 that match the device names specified by the Device option are
8231 collected. By default only selected devices are collected if a
8232 selection is made. If no selection is configured at all, all
8233 devices are selected.
8234
8235 Plugin "threshold"
8236 The Threshold plugin checks values collected or received by collectd
8237 against a configurable threshold and issues notifications if values are
8238 out of bounds.
8239
8240 Documentation for this plugin is available in the collectd-threshold(5)
8241 manual page.
8242
8243 Plugin "tokyotyrant"
8244 The TokyoTyrant plugin connects to a TokyoTyrant server and collects a
8245 couple metrics: number of records, and database size on disk.
8246
8247 Host Hostname/IP
8248 The hostname or IP which identifies the server. Default: 127.0.0.1
8249
8250 Port Service/Port
8251 The query port of the server. This needs to be a string, even if
8252 the port is given in its numeric form. Default: 1978
8253
8254 Plugin "turbostat"
8255 The Turbostat plugin reads CPU frequency and C-state residency on
8256 modern Intel processors by using Model Specific Registers.
8257
8258 CoreCstates Bitmask(Integer)
8259 Bit mask of the list of core C-states supported by the processor.
8260 This option should only be used if the automated detection fails.
8261 Default value extracted from the CPU model and family.
8262
8263 Currently supported C-states (by this plugin): 3, 6, 7
8264
8265 Example:
8266
8267 All states (3, 6 and 7):
8268 (1<<3) + (1<<6) + (1<<7) = 392
8269
8270 PackageCstates Bitmask(Integer)
8271 Bit mask of the list of packages C-states supported by the
8272 processor. This option should only be used if the automated
8273 detection fails. Default value extracted from the CPU model and
8274 family.
8275
8276 Currently supported C-states (by this plugin): 2, 3, 6, 7, 8, 9, 10
8277
8278 Example:
8279
8280 States 2, 3, 6 and 7:
8281 (1<<2) + (1<<3) + (1<<6) + (1<<7) = 396
8282
8283 SystemManagementInterrupt true|false
8284 Boolean enabling the collection of the I/O System-Management
8285 Interrupt counter. This option should only be used if the
8286 automated detection fails or if you want to disable this feature.
8287
8288 DigitalTemperatureSensor true|false
8289 Boolean enabling the collection of the temperature of each core.
8290 This option should only be used if the automated detection fails or
8291 if you want to disable this feature.
8292
8293 TCCActivationTemp Temperature
8294 Thermal Control Circuit Activation Temperature of the installed
8295 CPU. This temperature is used when collecting the temperature of
8296 cores or packages. This option should only be used if the automated
8297 detection fails. Default value extracted from
8298 MSR_IA32_TEMPERATURE_TARGET.
8299
8300 RunningAveragePowerLimit Bitmask(Integer)
8301 Bit mask of the list of elements to be thermally monitored. This
8302 option should only be used if the automated detection fails or if
8303 you want to disable some collections. The different bits of this
8304 bit mask accepted by this plugin are:
8305
8306 0 ('1'): Package
8307 1 ('2'): DRAM
8308 2 ('4'): Cores
8309 3 ('8'): Embedded graphic device
8310 LogicalCoreNames true|false
8311 Boolean enabling the use of logical core numbering for per core
8312 statistics. When enabled, "cpu<n>" is used as plugin instance,
8313 where n is a dynamic number assigned by the kernel. Otherwise,
8314 "core<n>" is used if there is only one package and "pkg<n>-core<m>"
8315 if there is more than one, where n is the n-th core of package m.
8316
8317 RestoreAffinityPolicy AllCPUs|Restore
8318 Reading data from CPU has side-effect: collectd process's CPU
8319 affinity mask changes. After reading data is completed, affinity
8320 mask needs to be restored. This option allows to set restore
8321 policy.
8322
8323 AllCPUs (the default): Restore the affinity by setting affinity to
8324 any/all CPUs.
8325
8326 Restore: Save affinity using sched_getaffinity() before reading
8327 data and restore it after.
8328
8329 On some systems, sched_getaffinity() will fail due to inconsistency
8330 of the CPU set size between userspace and kernel. In these cases
8331 plugin will detect the unsuccessful call and fail with an error,
8332 preventing data collection. Most of configurations does not need
8333 to save affinity as Collectd process is allowed to run on any/all
8334 available CPUs.
8335
8336 If you need to save and restore affinity and get errors like
8337 'Unable to save the CPU affinity', setting 'possible_cpus' kernel
8338 boot option may also help.
8339
8340 See following links for details:
8341
8342 <https://github.com/collectd/collectd/issues/1593>
8343 <https://sourceware.org/bugzilla/show_bug.cgi?id=15630>
8344 <https://bugzilla.kernel.org/show_bug.cgi?id=151821>
8345
8346 Plugin "ubi"
8347 The Ubi plugin collects some statistics about the UBI (Unsorted Block
8348 Image). Values collected are the number of bad physical eraseblocks on
8349 the underlying MTD (Memory Technology Device) and the maximum erase
8350 counter value concerning one volume.
8351
8352 See following links for details:
8353
8354 <http://www.linux-mtd.infradead.org/doc/ubi.html>
8355 <http://www.linux-mtd.infradead.org/doc/ubifs.html>
8356 <https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-class-ubi>
8357
8358 Device Name
8359 Select the device Name of the UBI volume. Whether it is collected
8360 or ignored depends on the IgnoreSelected setting, see below.
8361
8362 See /"IGNORELISTS" for details.
8363
8364 IgnoreSelected true|false
8365 Sets whether selected devices, i. e. the ones matches by any of the
8366 Device statements, are ignored or if all other devices are ignored.
8367 If no Device option is configured, all devices are collected. If at
8368 least one Device is given and no IgnoreSelected or set to false,
8369 only matching disks will be collected. If IgnoreSelectedis set to
8370 true, all devices are collected except the ones matched.
8371
8372 Plugin "unixsock"
8373 SocketFile Path
8374 Sets the socket-file which is to be created.
8375
8376 SocketGroup Group
8377 If running as root change the group of the UNIX-socket after it has
8378 been created. Defaults to collectd.
8379
8380 SocketPerms Permissions
8381 Change the file permissions of the UNIX-socket after it has been
8382 created. The permissions must be given as a numeric, octal value as
8383 you would pass to chmod(1). Defaults to 0770.
8384
8385 DeleteSocket false|true
8386 If set to true, delete the socket file before calling bind(2), if a
8387 file with the given name already exists. If collectd crashes a
8388 socket file may be left over, preventing the daemon from opening a
8389 new socket when restarted. Since this is potentially dangerous,
8390 this defaults to false.
8391
8392 Plugin "uuid"
8393 This plugin, if loaded, causes the Hostname to be taken from the
8394 machine's UUID. The UUID is a universally unique designation for the
8395 machine, usually taken from the machine's BIOS. This is most useful if
8396 the machine is running in a virtual environment such as Xen, in which
8397 case the UUID is preserved across shutdowns and migration.
8398
8399 The following methods are used to find the machine's UUID, in order:
8400
8401 · Check /etc/uuid (or UUIDFile).
8402
8403 · Check for UUID from HAL
8404 (<http://www.freedesktop.org/wiki/Software/hal>) if present.
8405
8406 · Check for UUID from "dmidecode" / SMBIOS.
8407
8408 · Check for UUID from Xen hypervisor.
8409
8410 If no UUID can be found then the hostname is not modified.
8411
8412 UUIDFile Path
8413 Take the UUID from the given file (default /etc/uuid).
8414
8415 Plugin "varnish"
8416 The varnish plugin collects information about Varnish, an HTTP
8417 accelerator. It collects a subset of the values displayed by
8418 varnishstat(1), and organizes them in categories which can be enabled
8419 or disabled. Currently only metrics shown in varnishstat(1)'s MAIN
8420 section are collected. The exact meaning of each metric can be found in
8421 varnish-counters(7).
8422
8423 Synopsis:
8424
8425 <Plugin "varnish">
8426 <Instance "example">
8427 CollectBackend true
8428 CollectBan false
8429 CollectCache true
8430 CollectConnections true
8431 CollectDirectorDNS false
8432 CollectESI false
8433 CollectFetch false
8434 CollectHCB false
8435 CollectObjects false
8436 CollectPurge false
8437 CollectSession false
8438 CollectSHM true
8439 CollectSMA false
8440 CollectSMS false
8441 CollectSM false
8442 CollectStruct false
8443 CollectTotals false
8444 CollectUptime false
8445 CollectVCL false
8446 CollectVSM false
8447 CollectWorkers false
8448 CollectLock false
8449 CollectMempool false
8450 CollectManagement false
8451 CollectSMF false
8452 CollectVBE false
8453 CollectMSE false
8454 </Instance>
8455 </Plugin>
8456
8457 The configuration consists of one or more <Instance Name> blocks. Name
8458 is the parameter passed to "varnishd -n". If left empty, it will
8459 collectd statistics from the default "varnishd" instance (this should
8460 work fine in most cases).
8461
8462 Inside each <Instance> blocks, the following options are recognized:
8463
8464 CollectBackend true|false
8465 Back-end connection statistics, such as successful, reused, and
8466 closed connections. True by default.
8467
8468 CollectBan true|false
8469 Statistics about ban operations, such as number of bans added,
8470 retired, and number of objects tested against ban operations. Only
8471 available with Varnish 3.x and above. False by default.
8472
8473 CollectCache true|false
8474 Cache hits and misses. True by default.
8475
8476 CollectConnections true|false
8477 Number of client connections received, accepted and dropped. True
8478 by default.
8479
8480 CollectDirectorDNS true|false
8481 DNS director lookup cache statistics. Only available with Varnish
8482 3.x. False by default.
8483
8484 CollectESI true|false
8485 Edge Side Includes (ESI) parse statistics. False by default.
8486
8487 CollectFetch true|false
8488 Statistics about fetches (HTTP requests sent to the backend). False
8489 by default.
8490
8491 CollectHCB true|false
8492 Inserts and look-ups in the crit bit tree based hash. Look-ups are
8493 divided into locked and unlocked look-ups. False by default.
8494
8495 CollectObjects true|false
8496 Statistics on cached objects: number of objects expired, nuked
8497 (prematurely expired), saved, moved, etc. False by default.
8498
8499 CollectPurge true|false
8500 Statistics about purge operations, such as number of purges added,
8501 retired, and number of objects tested against purge operations.
8502 Only available with Varnish 2.x. False by default.
8503
8504 CollectSession true|false
8505 Client session statistics. Number of past and current sessions,
8506 session herd and linger counters, etc. False by default. Note that
8507 if using Varnish 4.x, some metrics found in the Connections and
8508 Threads sections with previous versions of Varnish have been moved
8509 here.
8510
8511 CollectSHM true|false
8512 Statistics about the shared memory log, a memory region to store
8513 log messages which is flushed to disk when full. True by default.
8514
8515 CollectSMA true|false
8516 malloc or umem (umem_alloc(3MALLOC) based) storage statistics. The
8517 umem storage component is Solaris specific. Note: SMA, SMF and MSE
8518 share counters, enable only the one used by the Varnish instance.
8519 Only available with Varnish 2.x. False by default.
8520
8521 CollectSMS true|false
8522 synth (synthetic content) storage statistics. This storage
8523 component is used internally only. False by default.
8524
8525 CollectSM true|false
8526 file (memory mapped file) storage statistics. Only available with
8527 Varnish 2.x., in varnish 4.x. use CollectSMF. False by default.
8528
8529 CollectStruct true|false
8530 Current varnish internal state statistics. Number of current
8531 sessions, objects in cache store, open connections to backends
8532 (with Varnish 2.x), etc. False by default.
8533
8534 CollectTotals true|false
8535 Collects overview counters, such as the number of sessions created,
8536 the number of requests and bytes transferred. False by default.
8537
8538 CollectUptime true|false
8539 Varnish uptime. Only available with Varnish 3.x and above. False by
8540 default.
8541
8542 CollectVCL true|false
8543 Number of total (available + discarded) VCL (config files). False
8544 by default.
8545
8546 CollectVSM true|false
8547 Collect statistics about Varnish's shared memory usage (used by the
8548 logging and statistics subsystems). Only available with Varnish
8549 4.x. False by default.
8550
8551 CollectWorkers true|false
8552 Collect statistics about worker threads. False by default.
8553
8554 CollectVBE true|false
8555 Backend counters. Only available with Varnish 4.x. False by
8556 default.
8557
8558 CollectSMF true|false
8559 file (memory mapped file) storage statistics. Only available with
8560 Varnish 4.x. Note: SMA, SMF and MSE share counters, enable only
8561 the one used by the Varnish instance. Used to be called SM in
8562 Varnish 2.x. False by default.
8563
8564 CollectManagement true|false
8565 Management process counters. Only available with Varnish 4.x. False
8566 by default.
8567
8568 CollectLock true|false
8569 Lock counters. Only available with Varnish 4.x. False by default.
8570
8571 CollectMempool true|false
8572 Memory pool counters. Only available with Varnish 4.x. False by
8573 default.
8574
8575 CollectMSE true|false
8576 Varnish Massive Storage Engine 2.0 (MSE2) is an improved storage
8577 backend for Varnish, replacing the traditional malloc and file
8578 storages. Only available with Varnish-Plus 4.x. Note: SMA, SMF and
8579 MSE share counters, enable only the one used by the Varnish
8580 instance. False by default.
8581
8582 Plugin "virt"
8583 This plugin allows CPU, disk, network load and other metrics to be
8584 collected for virtualized guests on the machine. The statistics are
8585 collected through libvirt API (<http://libvirt.org/>). Majority of
8586 metrics can be gathered without installing any additional software on
8587 guests, especially collectd, which runs only on the host system.
8588
8589 Only Connection is required.
8590
8591 Consider the following example config:
8592
8593 <Plugin "virt">
8594 Connection "qemu:///system"
8595 HostnameFormat "hostname"
8596 InterfaceFormat "address"
8597 PluginInstanceFormat "name"
8598 </Plugin>
8599
8600 It will generate the following values:
8601
8602 node42.example.com/virt-instance-0006f26c/disk_octets-vda
8603 node42.example.com/virt-instance-0006f26c/disk_ops-vda
8604 node42.example.com/virt-instance-0006f26c/if_dropped-ca:fe:ca:fe:ca:fe
8605 node42.example.com/virt-instance-0006f26c/if_errors-ca:fe:ca:fe:ca:fe
8606 node42.example.com/virt-instance-0006f26c/if_octets-ca:fe:ca:fe:ca:fe
8607 node42.example.com/virt-instance-0006f26c/if_packets-ca:fe:ca:fe:ca:fe
8608 node42.example.com/virt-instance-0006f26c/memory-actual_balloon
8609 node42.example.com/virt-instance-0006f26c/memory-available
8610 node42.example.com/virt-instance-0006f26c/memory-last_update
8611 node42.example.com/virt-instance-0006f26c/memory-major_fault
8612 node42.example.com/virt-instance-0006f26c/memory-minor_fault
8613 node42.example.com/virt-instance-0006f26c/memory-rss
8614 node42.example.com/virt-instance-0006f26c/memory-swap_in
8615 node42.example.com/virt-instance-0006f26c/memory-swap_out
8616 node42.example.com/virt-instance-0006f26c/memory-total
8617 node42.example.com/virt-instance-0006f26c/memory-unused
8618 node42.example.com/virt-instance-0006f26c/memory-usable
8619 node42.example.com/virt-instance-0006f26c/virt_cpu_total
8620 node42.example.com/virt-instance-0006f26c/virt_vcpu-0
8621
8622 You can get information on the metric's units from the online libvirt
8623 documentation. For instance, virt_cpu_total is in nanoseconds.
8624
8625 Connection uri
8626 Connect to the hypervisor given by uri. For example if using Xen
8627 use:
8628
8629 Connection "xen:///"
8630
8631 Details which URIs allowed are given at
8632 <http://libvirt.org/uri.html>.
8633
8634 RefreshInterval seconds
8635 Refresh the list of domains and devices every seconds. The default
8636 is 60 seconds. Setting this to be the same or smaller than the
8637 Interval will cause the list of domains and devices to be refreshed
8638 on every iteration.
8639
8640 Refreshing the devices in particular is quite a costly operation,
8641 so if your virtualization setup is static you might consider
8642 increasing this. If this option is set to 0, refreshing is disabled
8643 completely.
8644
8645 Domain name
8646 BlockDevice name:dev
8647 InterfaceDevice name:dev
8648 IgnoreSelected true|false
8649 Select which domains and devices are collected.
8650
8651 If IgnoreSelected is not given or false then only the listed
8652 domains and disk/network devices are collected.
8653
8654 If IgnoreSelected is true then the test is reversed and the listed
8655 domains and disk/network devices are ignored, while the rest are
8656 collected.
8657
8658 The domain name and device names may use a regular expression, if
8659 the name is surrounded by /.../ and collectd was compiled with
8660 support for regexps.
8661
8662 The default is to collect statistics for all domains and all their
8663 devices.
8664
8665 Note: BlockDevice and InterfaceDevice options are related to
8666 corresponding *Format options. Specifically, BlockDevice filtering
8667 depends on BlockDeviceFormat setting - if user wants to filter
8668 block devices by 'target' name then BlockDeviceFormat option has to
8669 be set to 'target' and BlockDevice option must be set to a valid
8670 block device target name("/:hdb/"). Mixing formats and filter
8671 values from different worlds (i.e., using 'target' name as
8672 BlockDevice value with BlockDeviceFormat set to 'source') may lead
8673 to unexpected results (all devices filtered out or all visible,
8674 depending on the value of IgnoreSelected option). Similarly,
8675 option InterfaceDevice is related to InterfaceFormat setting (i.e.,
8676 when user wants to use MAC address as a filter then InterfaceFormat
8677 has to be set to 'address' - using wrong type here may filter out
8678 all of the interfaces).
8679
8680 Example 1:
8681
8682 Ignore all hdb devices on any domain, but other block devices (eg.
8683 hda) will be collected:
8684
8685 BlockDevice "/:hdb/"
8686 IgnoreSelected "true"
8687 BlockDeviceFormat "target"
8688
8689 Example 2:
8690
8691 Collect metrics only for block device on 'baremetal0' domain when
8692 its 'source' matches given path:
8693
8694 BlockDevice "baremetal0:/var/lib/libvirt/images/baremetal0.qcow2"
8695 BlockDeviceFormat source
8696
8697 As you can see it is possible to filter devices/interfaces using
8698 various formats - for block devices 'target' or 'source' name can
8699 be used. Interfaces can be filtered using 'name', 'address' or
8700 'number'.
8701
8702 Example 3:
8703
8704 Collect metrics only for domains 'baremetal0' and 'baremetal1' and
8705 ignore any other domain:
8706
8707 Domain "baremetal0"
8708 Domain "baremetal1"
8709
8710 It is possible to filter multiple block devices/domains/interfaces
8711 by adding multiple filtering entries in separate lines.
8712
8713 BlockDeviceFormat target|source
8714 If BlockDeviceFormat is set to target, the default, then the device
8715 name seen by the guest will be used for reporting metrics. This
8716 corresponds to the "<target>" node in the XML definition of the
8717 domain.
8718
8719 If BlockDeviceFormat is set to source, then metrics will be
8720 reported using the path of the source, e.g. an image file. This
8721 corresponds to the "<source>" node in the XML definition of the
8722 domain.
8723
8724 Example:
8725
8726 If the domain XML have the following device defined:
8727
8728 <disk type='block' device='disk'>
8729 <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
8730 <source dev='/var/lib/libvirt/images/image1.qcow2'/>
8731 <target dev='sda' bus='scsi'/>
8732 <boot order='2'/>
8733 <address type='drive' controller='0' bus='0' target='0' unit='0'/>
8734 </disk>
8735
8736 Setting "BlockDeviceFormat target" will cause the type instance to
8737 be set to "sda". Setting "BlockDeviceFormat source" will cause the
8738 type instance to be set to "var_lib_libvirt_images_image1.qcow2".
8739
8740 Note: this option determines also what field will be used for
8741 filtering over block devices (filter value in BlockDevice will be
8742 applied to target or source). More info about filtering block
8743 devices can be found in the description of BlockDevice.
8744
8745 BlockDeviceFormatBasename false|true
8746 The BlockDeviceFormatBasename controls whether the full path or the
8747 basename(1) of the source is being used as the type instance when
8748 BlockDeviceFormat is set to source. Defaults to false.
8749
8750 Example:
8751
8752 Assume the device path (source tag) is
8753 "/var/lib/libvirt/images/image1.qcow2". Setting
8754 "BlockDeviceFormatBasename false" will cause the type instance to
8755 be set to "var_lib_libvirt_images_image1.qcow2". Setting
8756 "BlockDeviceFormatBasename true" will cause the type instance to be
8757 set to "image1.qcow2".
8758
8759 HostnameFormat name|uuid|hostname|metadata...
8760 When the virt plugin logs data, it sets the hostname of the
8761 collected data according to this setting. The default is to use the
8762 guest name as provided by the hypervisor, which is equal to setting
8763 name.
8764
8765 uuid means use the guest's UUID. This is useful if you want to
8766 track the same guest across migrations.
8767
8768 hostname means to use the global Hostname setting, which is
8769 probably not useful on its own because all guests will appear to
8770 have the same name. This is useful in conjunction with
8771 PluginInstanceFormat though.
8772
8773 metadata means use information from guest's metadata. Use
8774 HostnameMetadataNS and HostnameMetadataXPath to localize this
8775 information.
8776
8777 You can also specify combinations of these fields. For example name
8778 uuid means to concatenate the guest name and UUID (with a literal
8779 colon character between, thus "foo:1234-1234-1234-1234").
8780
8781 At the moment of writing (collectd-5.5), hostname string is limited
8782 to 62 characters. In case when combination of fields exceeds 62
8783 characters, hostname will be truncated without a warning.
8784
8785 InterfaceFormat name|address|number
8786 When the virt plugin logs interface data, it sets the name of the
8787 collected data according to this setting. The default is to use the
8788 path as provided by the hypervisor (the "dev" property of the
8789 target node), which is equal to setting name.
8790
8791 address means use the interface's mac address. This is useful since
8792 the interface path might change between reboots of a guest or
8793 across migrations.
8794
8795 number means use the interface's number in guest.
8796
8797 Note: this option determines also what field will be used for
8798 filtering over interface device (filter value in InterfaceDevice
8799 will be applied to name, address or number). More info about
8800 filtering interfaces can be found in the description of
8801 InterfaceDevice.
8802
8803 PluginInstanceFormat name|uuid|metadata|none
8804 When the virt plugin logs data, it sets the plugin_instance of the
8805 collected data according to this setting. The default is to not set
8806 the plugin_instance.
8807
8808 name means use the guest's name as provided by the hypervisor.
8809 uuid means use the guest's UUID. metadata means use information
8810 from guest's metadata.
8811
8812 You can also specify combinations of the name and uuid fields. For
8813 example name uuid means to concatenate the guest name and UUID
8814 (with a literal colon character between, thus
8815 "foo:1234-1234-1234-1234").
8816
8817 HostnameMetadataNS string
8818 When metadata is used in HostnameFormat or PluginInstanceFormat,
8819 this selects in which metadata namespace we will pick the hostname.
8820 The default is http://openstack.org/xmlns/libvirt/nova/1.0.
8821
8822 HostnameMetadataXPath string
8823 When metadata is used in HostnameFormat or PluginInstanceFormat,
8824 this describes where the hostname is located in the libvirt
8825 metadata. The default is /instance/name/text().
8826
8827 ReportBlockDevices true|false
8828 Enabled by default. Allows to disable stats reporting of block
8829 devices for whole plugin.
8830
8831 ReportNetworkInterfaces true|false
8832 Enabled by default. Allows to disable stats reporting of network
8833 interfaces for whole plugin.
8834
8835 ExtraStats string
8836 Report additional extra statistics. The default is no extra
8837 statistics, preserving the previous behaviour of the plugin. If
8838 unsure, leave the default. If enabled, allows the plugin to
8839 reported more detailed statistics about the behaviour of Virtual
8840 Machines. The argument is a space-separated list of selectors.
8841
8842 Currently supported selectors are:
8843
8844 cpu_util: report CPU utilization per domain in percentage.
8845 disk: report extra statistics like number of flush operations and
8846 total service time for read, write and flush operations. Requires
8847 libvirt API version 0.9.5 or later.
8848 disk_err: report disk errors if any occured. Requires libvirt API
8849 version 0.9.10 or later.
8850 domain_state: report domain state and reason as 'domain_state'
8851 metric.
8852 fs_info: report file system information as a notification. Requires
8853 libvirt API version 1.2.11 or later. Can be collected only if Guest
8854 Agent is installed and configured inside VM. Make sure that
8855 installed Guest Agent version supports retrieving file system
8856 information.
8857 job_stats_background: report statistics about progress of a
8858 background job on a domain. Only one type of job statistics can be
8859 collected at the same time. Requires libvirt API version 1.2.9 or
8860 later.
8861 job_stats_completed: report statistics about a recently completed
8862 job on a domain. Only one type of job statistics can be collected
8863 at the same time. Requires libvirt API version 1.2.9 or later.
8864 memory: report statistics about memory usage details, provided by
8865 libvirt virDomainMemoryStats() function.
8866 pcpu: report the physical user/system cpu time consumed by the
8867 hypervisor, per-vm. Requires libvirt API version 0.9.11 or later.
8868 perf: report performance monitoring events. To collect performance
8869 metrics they must be enabled for domain and supported by the
8870 platform. Requires libvirt API version 1.3.3 or later. Note: perf
8871 metrics can't be collected if intel_rdt plugin is enabled.
8872 vcpu: report domain virtual CPUs utilisation.
8873 vcpupin: report pinning of domain VCPUs to host physical CPUs.
8874 disk_physical: report 'disk_physical' statistic for disk device.
8875 Note: This statistic is only reported for disk devices with
8876 'source' property available.
8877 disk_allocation: report 'disk_allocation' statistic for disk
8878 device. Note: This statistic is only reported for disk devices with
8879 'source' property available.
8880 disk_capacity: report 'disk_capacity' statistic for disk device.
8881 Note: This statistic is only reported for disk devices with
8882 'source' property available.
8883 PersistentNotification true|false
8884 Override default configuration to only send notifications when
8885 there is a change in the lifecycle state of a domain. When set to
8886 true notifications will be sent for every read cycle. Default is
8887 false. Does not affect the stats being dispatched.
8888
8889 Instances integer
8890 How many read instances you want to use for this plugin. The
8891 default is one, and the sensible setting is a multiple of the
8892 ReadThreads value.
8893
8894 This option is only useful when domains are specially tagged. If
8895 you are not sure, just use the default setting.
8896
8897 The reader instance will only query the domains with attached
8898 matching tag. Tags should have the form of 'virt-X' where X is the
8899 reader instance number, starting from 0.
8900
8901 The special-purpose reader instance #0, guaranteed to be always
8902 present, will query all the domains with missing or unrecognized
8903 tag, so no domain will ever be left out.
8904
8905 Domain tagging is done with a custom attribute in the libvirt
8906 domain metadata section. Value is selected by an XPath
8907 /domain/metadata/ovirtmap/tag/text() expression in the
8908 http://ovirt.org/ovirtmap/tag/1.0 namespace. (XPath and namespace
8909 values are not configurable yet).
8910
8911 Tagging could be used by management applications to evenly spread
8912 the load among the reader threads, or to pin on the same threads
8913 all the libvirt domains which use the same shared storage, to
8914 minimize the disruption in presence of storage outages.
8915
8916 Plugin "vmem"
8917 The "vmem" plugin collects information about the usage of virtual
8918 memory. Since the statistics provided by the Linux kernel are very
8919 detailed, they are collected very detailed. However, to get all the
8920 details, you have to switch them on manually. Most people just want an
8921 overview over, such as the number of pages read from swap space.
8922
8923 Verbose true|false
8924 Enables verbose collection of information. This will start
8925 collecting page "actions", e. g. page allocations, (de)activations,
8926 steals and so on. Part of these statistics are collected on a "per
8927 zone" basis.
8928
8929 Plugin "vserver"
8930 This plugin doesn't have any options. VServer support is only available
8931 for Linux. It cannot yet be found in a vanilla kernel, though. To make
8932 use of this plugin you need a kernel that has VServer support built in,
8933 i. e. you need to apply the patches and compile your own kernel, which
8934 will then provide the /proc/virtual filesystem that is required by this
8935 plugin.
8936
8937 The VServer homepage can be found at <http://linux-vserver.org/>.
8938
8939 Note: The traffic collected by this plugin accounts for the amount of
8940 traffic passing a socket which might be a lot less than the actual on-
8941 wire traffic (e. g. due to headers and retransmission). If you want to
8942 collect on-wire traffic you could, for example, use the logging
8943 facilities of iptables to feed data for the guest IPs into the iptables
8944 plugin.
8945
8946 Plugin "write_graphite"
8947 The "write_graphite" plugin writes data to Graphite, an open-source
8948 metrics storage and graphing project. The plugin connects to Carbon,
8949 the data layer of Graphite, via TCP or UDP and sends data via the "line
8950 based" protocol (per default using port 2003). The data will be sent in
8951 blocks of at most 1428 bytes to minimize the number of network packets.
8952
8953 Synopsis:
8954
8955 <Plugin write_graphite>
8956 <Node "example">
8957 Host "localhost"
8958 Port "2003"
8959 Protocol "tcp"
8960 LogSendErrors true
8961 Prefix "collectd"
8962 UseTags false
8963 ReverseHost false
8964 </Node>
8965 </Plugin>
8966
8967 The configuration consists of one or more <Node Name> blocks. Inside
8968 the Node blocks, the following options are recognized:
8969
8970 Host Address
8971 Hostname or address to connect to. Defaults to "localhost".
8972
8973 Port Service
8974 Service name or port number to connect to. Defaults to 2003.
8975
8976 Protocol String
8977 Protocol to use when connecting to Graphite. Defaults to "tcp".
8978
8979 ReconnectInterval Seconds
8980 When set to non-zero, forces the connection to the Graphite backend
8981 to be closed and re-opend periodically. This behavior is desirable
8982 in environments where the connection to the Graphite backend is
8983 done through load balancers, for example. When set to zero, the
8984 default, the connetion is kept open for as long as possible.
8985
8986 LogSendErrors false|true
8987 If set to true (the default), logs errors when sending data to
8988 Graphite. If set to false, it will not log the errors. This is
8989 especially useful when using Protocol UDP since many times we want
8990 to use the "fire-and-forget" approach and logging errors fills
8991 syslog with unneeded messages.
8992
8993 Prefix String
8994 When UseTags is false, Prefix value is added in front of the host
8995 name. When UseTags is true, Prefix value is added in front of
8996 series name.
8997
8998 Dots and whitespace are not escaped in this string (see
8999 EscapeCharacter below).
9000
9001 Postfix String
9002 When UseTags is false, Postfix value appended to the host name.
9003 When UseTags is true, Postgix value appended to the end of series
9004 name (before the first ; that separates the name from the tags).
9005
9006 Dots and whitespace are not escaped in this string (see
9007 EscapeCharacter below).
9008
9009 EscapeCharacter Char
9010 Carbon uses the dot (".") as escape character and doesn't allow
9011 whitespace in the identifier. The EscapeCharacter option determines
9012 which character dots, whitespace and control characters are
9013 replaced with. Defaults to underscore ("_").
9014
9015 StoreRates false|true
9016 If set to true (the default), convert counter values to rates. If
9017 set to false counter values are stored as is, i. e. as an
9018 increasing integer number.
9019
9020 SeparateInstances false|true
9021 If set to true, the plugin instance and type instance will be in
9022 their own path component, for example "host.cpu.0.cpu.idle". If set
9023 to false (the default), the plugin and plugin instance (and
9024 likewise the type and type instance) are put into one component,
9025 for example "host.cpu-0.cpu-idle".
9026
9027 Option value is not used when UseTags is true.
9028
9029 AlwaysAppendDS false|true
9030 If set to true, append the name of the Data Source (DS) to the
9031 "metric" identifier. If set to false (the default), this is only
9032 done when there is more than one DS.
9033
9034 PreserveSeparator false|true
9035 If set to false (the default) the "." (dot) character is replaced
9036 with EscapeCharacter. Otherwise, if set to true, the "." (dot)
9037 character is preserved, i.e. passed through.
9038
9039 Option value is not used when UseTags is true.
9040
9041 DropDuplicateFields false|true
9042 If set to true, detect and remove duplicate components in Graphite
9043 metric names. For example, the metric name
9044 "host.load.load.shortterm" will be shortened to
9045 "host.load.shortterm".
9046
9047 UseTags false|true
9048 If set to true, Graphite metric names will be generated as tagged
9049 series. This allows for much more flexibility than the traditional
9050 hierarchical layout.
9051
9052 Example:
9053 "test.single;host=example.com;plugin=test;plugin_instance=foo;type=single;type_instance=bar"
9054
9055 You can use Postfix option to add more tags by specifying it like
9056 ";tag1=value1;tag2=value2". Note what tagging support was added
9057 since Graphite version 1.1.x.
9058
9059 If set to true, the SeparateInstances and PreserveSeparator
9060 settings are not used.
9061
9062 Default value: false.
9063
9064 ReverseHost false|true
9065 If set to true, the (dot separated) parts of the host field of the
9066 value list will be rewritten in reverse order. The rewrite happens
9067 before special characters are replaced with the EscapeCharacter.
9068
9069 This option might be convenient if the metrics are presented with
9070 Graphite in a DNS like tree structure (probably without replacing
9071 dots in hostnames).
9072
9073 Example:
9074 Hostname "node3.cluster1.example.com"
9075 LoadPlugin "cpu"
9076 LoadPlugin "write_graphite"
9077 <Plugin "write_graphite">
9078 <Node "graphite.example.com">
9079 EscapeCharacter "."
9080 ReverseHost true
9081 </Node>
9082 </Plugin>
9083
9084 result on the wire: com.example.cluster1.node3.cpu-0.cpu-idle 99.900993 1543010932
9085
9086 Default value: false.
9087
9088 Plugin "write_log"
9089 The "write_log" plugin writes metrics as INFO log messages.
9090
9091 This plugin supports two output formats: Graphite and JSON.
9092
9093 Synopsis:
9094
9095 <Plugin write_log>
9096 Format Graphite
9097 </Plugin>
9098
9099 Format Format
9100 The output format to use. Can be one of "Graphite" or "JSON".
9101
9102 Plugin "write_tsdb"
9103 The "write_tsdb" plugin writes data to OpenTSDB, a scalable open-source
9104 time series database. The plugin connects to a TSD, a masterless, no
9105 shared state daemon that ingests metrics and stores them in HBase. The
9106 plugin uses TCP over the "line based" protocol with a default port
9107 4242. The data will be sent in blocks of at most 1428 bytes to minimize
9108 the number of network packets.
9109
9110 Synopsis:
9111
9112 <Plugin write_tsdb>
9113 ResolveInterval 60
9114 ResolveJitter 60
9115 <Node "example">
9116 Host "tsd-1.my.domain"
9117 Port "4242"
9118 HostTags "status=production"
9119 </Node>
9120 </Plugin>
9121
9122 The configuration consists of one or more <Node Name> blocks and global
9123 directives.
9124
9125 Global directives are:
9126
9127 ResolveInterval seconds
9128 ResolveJitter seconds
9129 When collectd connects to a TSDB node, it will request the hostname
9130 from DNS. This can become a problem if the TSDB node is unavailable
9131 or badly configured because collectd will request DNS in order to
9132 reconnect for every metric, which can flood your DNS. So you can
9133 cache the last value for ResolveInterval seconds. Defaults to the
9134 Interval of the write_tsdb plugin, e.g. 10 seconds.
9135
9136 You can also define a jitter, a random interval to wait in addition
9137 to ResolveInterval. This prevents all your collectd servers to
9138 resolve the hostname at the same time when the connection fails.
9139 Defaults to the Interval of the write_tsdb plugin, e.g. 10 seconds.
9140
9141 Note: If the DNS resolution has already been successful when the
9142 socket closes, the plugin will try to reconnect immediately with
9143 the cached information. DNS is queried only when the socket is
9144 closed for a longer than ResolveInterval + ResolveJitter seconds.
9145
9146 Inside the Node blocks, the following options are recognized:
9147
9148 Host Address
9149 Hostname or address to connect to. Defaults to "localhost".
9150
9151 Port Service
9152 Service name or port number to connect to. Defaults to 4242.
9153
9154 HostTags String
9155 When set, HostTags is added to the end of the metric. It is
9156 intended to be used for name=value pairs that the TSD will tag the
9157 metric with. Dots and whitespace are not escaped in this string.
9158
9159 StoreRates false|true
9160 If set to true, convert counter values to rates. If set to false
9161 (the default) counter values are stored as is, as an increasing
9162 integer number.
9163
9164 AlwaysAppendDS false|true
9165 If set the true, append the name of the Data Source (DS) to the
9166 "metric" identifier. If set to false (the default), this is only
9167 done when there is more than one DS.
9168
9169 Plugin "write_mongodb"
9170 The write_mongodb plugin will send values to MongoDB, a schema-less
9171 NoSQL database.
9172
9173 Synopsis:
9174
9175 <Plugin "write_mongodb">
9176 <Node "default">
9177 Host "localhost"
9178 Port "27017"
9179 Timeout 1000
9180 StoreRates true
9181 </Node>
9182 </Plugin>
9183
9184 The plugin can send values to multiple instances of MongoDB by
9185 specifying one Node block for each instance. Within the Node blocks,
9186 the following options are available:
9187
9188 Host Address
9189 Hostname or address to connect to. Defaults to "localhost".
9190
9191 Port Service
9192 Service name or port number to connect to. Defaults to 27017.
9193
9194 Timeout Milliseconds
9195 Set the timeout for each operation on MongoDB to Timeout
9196 milliseconds. Setting this option to zero means no timeout, which
9197 is the default.
9198
9199 StoreRates false|true
9200 If set to true (the default), convert counter values to rates. If
9201 set to false counter values are stored as is, i.e. as an increasing
9202 integer number.
9203
9204 Database Database
9205 User User
9206 Password Password
9207 Sets the information used when authenticating to a MongoDB
9208 database. The fields are optional (in which case no authentication
9209 is attempted), but if you want to use authentication all three
9210 fields must be set.
9211
9212 Plugin "write_prometheus"
9213 The write_prometheus plugin implements a tiny webserver that can be
9214 scraped using Prometheus.
9215
9216 Options:
9217
9218 Host Host
9219 Bind to the hostname / address Host. By default, the plugin will
9220 bind to the "any" address, i.e. accept packets sent to any of the
9221 hosts addresses.
9222
9223 This option is supported only for libmicrohttpd newer than 0.9.0.
9224
9225 Port Port
9226 Port the embedded webserver should listen on. Defaults to 9103.
9227
9228 StalenessDelta Seconds
9229 Time in seconds after which Prometheus considers a metric "stale"
9230 if it hasn't seen any update for it. This value must match the
9231 setting in Prometheus. It defaults to 300 seconds (5 minutes),
9232 same as Prometheus.
9233
9234 Background:
9235
9236 Prometheus has a global setting, "StalenessDelta", which controls
9237 after which time a metric without updates is considered "stale".
9238 This setting effectively puts an upper limit on the interval in
9239 which metrics are reported.
9240
9241 When the write_prometheus plugin encounters a metric with an
9242 interval exceeding this limit, it will inform you, the user, and
9243 provide the metric to Prometheus without a timestamp. That causes
9244 Prometheus to consider the metric "fresh" each time it is scraped,
9245 with the time of the scrape being considered the time of the
9246 update. The result is that there appear more datapoints in
9247 Prometheus than were actually created, but at least the metric
9248 doesn't disappear periodically.
9249
9250 Plugin "write_http"
9251 This output plugin submits values to an HTTP server using POST requests
9252 and encoding metrics with JSON or using the "PUTVAL" command described
9253 in collectd-unixsock(5).
9254
9255 Synopsis:
9256
9257 <Plugin "write_http">
9258 <Node "example">
9259 URL "http://example.com/post-collectd"
9260 User "collectd"
9261 Password "weCh3ik0"
9262 Format JSON
9263 </Node>
9264 </Plugin>
9265
9266 The plugin can send values to multiple HTTP servers by specifying one
9267 <Node Name> block for each server. Within each Node block, the
9268 following options are available:
9269
9270 URL URL
9271 URL to which the values are submitted to. Mandatory.
9272
9273 User Username
9274 Optional user name needed for authentication.
9275
9276 Password Password
9277 Optional password needed for authentication.
9278
9279 VerifyPeer true|false
9280 Enable or disable peer SSL certificate verification. See
9281 <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
9282 default.
9283
9284 VerifyHost true|false
9285 Enable or disable peer host name verification. If enabled, the
9286 plugin checks if the "Common Name" or a "Subject Alternate Name"
9287 field of the SSL certificate matches the host name provided by the
9288 URL option. If this identity check fails, the connection is
9289 aborted. Obviously, only works when connecting to a SSL enabled
9290 server. Enabled by default.
9291
9292 CACert File
9293 File that holds one or more SSL certificates. If you want to use
9294 HTTPS you will possibly need this option. What CA certificates come
9295 bundled with "libcurl" and are checked by default depends on the
9296 distribution you use.
9297
9298 CAPath Directory
9299 Directory holding one or more CA certificate files. You can use
9300 this if for some reason all the needed CA certificates aren't in
9301 the same file and can't be pointed to using the CACert option.
9302 Requires "libcurl" to be built against OpenSSL.
9303
9304 ClientKey File
9305 File that holds the private key in PEM format to be used for
9306 certificate-based authentication.
9307
9308 ClientCert File
9309 File that holds the SSL certificate to be used for certificate-
9310 based authentication.
9311
9312 ClientKeyPass Password
9313 Password required to load the private key in ClientKey.
9314
9315 Header Header
9316 A HTTP header to add to the request. Multiple headers are added if
9317 this option is specified more than once. Example:
9318
9319 Header "X-Custom-Header: custom_value"
9320
9321 SSLVersion SSLv2|SSLv3|TLSv1|TLSv1_0|TLSv1_1|TLSv1_2
9322 Define which SSL protocol version must be used. By default
9323 "libcurl" will attempt to figure out the remote SSL protocol
9324 version. See curl_easy_setopt(3) for more details.
9325
9326 Format Command|JSON|KAIROSDB
9327 Format of the output to generate. If set to Command, will create
9328 output that is understood by the Exec and UnixSock plugins. When
9329 set to JSON, will create output in the JavaScript Object Notation
9330 (JSON). When set to KAIROSDB , will create output in the KairosDB
9331 format.
9332
9333 Defaults to Command.
9334
9335 Attribute String String
9336 Only available for the KAIROSDB output format.
9337
9338 Consider the two given strings to be the key and value of an
9339 additional tag for each metric being sent out.
9340
9341 You can add multiple Attribute.
9342
9343 TTL Int
9344 Only available for the KAIROSDB output format.
9345
9346 Sets the Cassandra ttl for the data points.
9347
9348 Please refer to
9349 <http://kairosdb.github.io/docs/build/html/restapi/AddDataPoints.html?highlight=ttl>
9350
9351 Prefix String
9352 Only available for the KAIROSDB output format.
9353
9354 Sets the metrics prefix string. Defaults to collectd.
9355
9356 Metrics true|false
9357 Controls whether metrics are POSTed to this location. Defaults to
9358 true.
9359
9360 Notifications false|true
9361 Controls whether notifications are POSTed to this location.
9362 Defaults to false.
9363
9364 StoreRates true|false
9365 If set to true, convert counter values to rates. If set to false
9366 (the default) counter values are stored as is, i.e. as an
9367 increasing integer number.
9368
9369 BufferSize Bytes
9370 Sets the send buffer size to Bytes. By increasing this buffer, less
9371 HTTP requests will be generated, but more metrics will be batched /
9372 metrics are cached for longer before being sent, introducing
9373 additional delay until they are available on the server side. Bytes
9374 must be at least 1024 and cannot exceed the size of an "int", i.e.
9375 2 GByte. Defaults to 4096.
9376
9377 LowSpeedLimit Bytes per Second
9378 Sets the minimal transfer rate in Bytes per Second below which the
9379 connection with the HTTP server will be considered too slow and
9380 aborted. All the data submitted over this connection will probably
9381 be lost. Defaults to 0, which means no minimum transfer rate is
9382 enforced.
9383
9384 Timeout Timeout
9385 Sets the maximum time in milliseconds given for HTTP POST
9386 operations to complete. When this limit is reached, the POST
9387 operation will be aborted, and all the data in the current send
9388 buffer will probably be lost. Defaults to 0, which means the
9389 connection never times out.
9390
9391 LogHttpError false|true
9392 Enables printing of HTTP error code to log. Turned off by default.
9393
9394 <Statistics Name>
9395 One Statistics block can be used to specify cURL statistics to be
9396 collected for each request to the remote URL. See the section "cURL
9397 Statistics" above for details.
9398
9399 The "write_http" plugin regularly submits the collected values to
9400 the HTTP server. How frequently this happens depends on how much
9401 data you are collecting and the size of BufferSize. The optimal
9402 value to set Timeout to is slightly below this interval, which you
9403 can estimate by monitoring the network traffic between collectd and
9404 the HTTP server.
9405
9406 Plugin "write_influxdb_udp"
9407 The write_influxdb_udp plugin sends data to a instance of InfluxDB
9408 using the "Line Protocol". Each plugin is sent as a measurement with a
9409 time precision of miliseconds while plugin instance, type and type
9410 instance are sent as tags.
9411
9412 <Plugin "write_influxdb_udp">
9413 Server "influxdb.internal.tld"
9414 StoreRates "yes"
9415 </Plugin>
9416
9417 <Server Host [Port]>
9418 The Server statement sets the server to send datagrams to.
9419
9420 The argument Host may be a hostname, an IPv4 address or an IPv6
9421 address. The optional second argument specifies a port number or a
9422 service name. If not given, the default, 8089, is used.
9423
9424 TimeToLive 1-255
9425 Set the time-to-live of sent packets. This applies to all, unicast
9426 and multicast, and IPv4 and IPv6 packets. The default is to not
9427 change this value. That means that multicast packets will be sent
9428 with a TTL of 1 (one) on most operating systems.
9429
9430 MaxPacketSize 1024-65535
9431 Set the maximum size for datagrams received over the network.
9432 Packets larger than this will be truncated. Defaults to 1452 bytes,
9433 which is the maximum payload size that can be transmitted in one
9434 Ethernet frame using IPv6 / UDP.
9435
9436 StoreRates true|false
9437 If set to true, convert absolute, counter and derive values to
9438 rates. If set to false (the default) absolute, counter and derive
9439 values are sent as is.
9440
9441 Plugin "write_kafka"
9442 The write_kafka plugin will send values to a Kafka topic, a distributed
9443 queue. Synopsis:
9444
9445 <Plugin "write_kafka">
9446 Property "metadata.broker.list" "broker1:9092,broker2:9092"
9447 <Topic "collectd">
9448 Format JSON
9449 </Topic>
9450 </Plugin>
9451
9452 The following options are understood by the write_kafka plugin:
9453
9454 <Topic Name>
9455 The plugin's configuration consists of one or more Topic blocks.
9456 Each block is given a unique Name and specifies one kafka producer.
9457 Inside the Topic block, the following per-topic options are
9458 understood:
9459
9460 Property String String
9461 Configure the named property for the current topic. Properties
9462 are forwarded to the kafka producer library librdkafka.
9463
9464 Key String
9465 Use the specified string as a partitioning key for the topic.
9466 Kafka breaks topic into partitions and guarantees that for a
9467 given topology, the same consumer will be used for a specific
9468 key. The special (case insensitive) string Random can be used
9469 to specify that an arbitrary partition should be used.
9470
9471 Format Command|JSON|Graphite
9472 Selects the format in which messages are sent to the broker. If
9473 set to Command (the default), values are sent as "PUTVAL"
9474 commands which are identical to the syntax used by the Exec and
9475 UnixSock plugins.
9476
9477 If set to JSON, the values are encoded in the JavaScript Object
9478 Notation, an easy and straight forward exchange format.
9479
9480 If set to Graphite, values are encoded in the Graphite format,
9481 which is "<metric> <value> <timestamp>\n".
9482
9483 StoreRates true|false
9484 Determines whether or not "COUNTER", "DERIVE" and "ABSOLUTE"
9485 data sources are converted to a rate (i.e. a "GAUGE" value). If
9486 set to false (the default), no conversion is performed.
9487 Otherwise the conversion is performed using the internal value
9488 cache.
9489
9490 Please note that currently this option is only used if the
9491 Format option has been set to JSON.
9492
9493 GraphitePrefix (Format=Graphite only)
9494 A prefix can be added in the metric name when outputting in the
9495 Graphite format.
9496
9497 When GraphiteUseTags is false, prefix is added before the Host
9498 name. Metric name will be
9499 "<prefix><host><postfix><plugin><type><name>"
9500
9501 When GraphiteUseTags is true, prefix is added in front of
9502 series name.
9503
9504 GraphitePostfix (Format=Graphite only)
9505 A postfix can be added in the metric name when outputting in
9506 the Graphite format.
9507
9508 When GraphiteUseTags is false, postfix is added after the Host
9509 name. Metric name will be
9510 "<prefix><host><postfix><plugin><type><name>"
9511
9512 When GraphiteUseTags is true, prefix value appended to the end
9513 of series name (before the first ; that separates the name from
9514 the tags).
9515
9516 GraphiteEscapeChar (Format=Graphite only)
9517 Specify a character to replace dots (.) in the host part of the
9518 metric name. In Graphite metric name, dots are used as
9519 separators between different metric parts (host, plugin, type).
9520 Default is "_" (Underscore).
9521
9522 GraphiteSeparateInstances false|true
9523 If set to true, the plugin instance and type instance will be
9524 in their own path component, for example "host.cpu.0.cpu.idle".
9525 If set to false (the default), the plugin and plugin instance
9526 (and likewise the type and type instance) are put into one
9527 component, for example "host.cpu-0.cpu-idle".
9528
9529 Option value is not used when GraphiteUseTags is true.
9530
9531 GraphiteAlwaysAppendDS true|false
9532 If set to true, append the name of the Data Source (DS) to the
9533 "metric" identifier. If set to false (the default), this is
9534 only done when there is more than one DS.
9535
9536 GraphitePreserveSeparator false|true
9537 If set to false (the default) the "." (dot) character is
9538 replaced with GraphiteEscapeChar. Otherwise, if set to true,
9539 the "." (dot) character is preserved, i.e. passed through.
9540
9541 Option value is not used when GraphiteUseTags is true.
9542
9543 GraphiteUseTags false|true
9544 If set to true Graphite metric names will be generated as
9545 tagged series.
9546
9547 Default value: false.
9548
9549 StoreRates true|false
9550 If set to true (the default), convert counter values to rates.
9551 If set to false counter values are stored as is, i.e. as an
9552 increasing integer number.
9553
9554 This will be reflected in the "ds_type" tag: If StoreRates is
9555 enabled, converted values will have "rate" appended to the data
9556 source type, e.g. "ds_type:derive:rate".
9557
9558 Property String String
9559 Configure the kafka producer through properties, you almost always
9560 will want to set metadata.broker.list to your Kafka broker list.
9561
9562 Plugin "write_redis"
9563 The write_redis plugin submits values to Redis, a data structure
9564 server.
9565
9566 Synopsis:
9567
9568 <Plugin "write_redis">
9569 <Node "example">
9570 Host "localhost"
9571 Port "6379"
9572 Timeout 1000
9573 Prefix "collectd/"
9574 Database 1
9575 MaxSetSize -1
9576 MaxSetDuration -1
9577 StoreRates true
9578 </Node>
9579 </Plugin>
9580
9581 Values are submitted to Sorted Sets, using the metric name as the key,
9582 and the timestamp as the score. Retrieving a date range can then be
9583 done using the "ZRANGEBYSCORE" Redis command. Additionally, all the
9584 identifiers of these Sorted Sets are kept in a Set called
9585 "collectd/values" (or "${prefix}/values" if the Prefix option was
9586 specified) and can be retrieved using the "SMEMBERS" Redis command. You
9587 can specify the database to use with the Database parameter (default is
9588 0). See <http://redis.io/commands#sorted_set> and
9589 <http://redis.io/commands#set> for details.
9590
9591 The information shown in the synopsis above is the default
9592 configuration which is used by the plugin if no configuration is
9593 present.
9594
9595 The plugin can send values to multiple instances of Redis by specifying
9596 one Node block for each instance. Within the Node blocks, the following
9597 options are available:
9598
9599 Node Nodename
9600 The Node block identifies a new Redis node, that is a new Redis
9601 instance running on a specified host and port. The node name is a
9602 canonical identifier which is used as plugin instance. It is
9603 limited to 51 characters in length.
9604
9605 Host Hostname
9606 The Host option is the hostname or IP-address where the Redis
9607 instance is running on.
9608
9609 Port Port
9610 The Port option is the TCP port on which the Redis instance accepts
9611 connections. Either a service name of a port number may be given.
9612 Please note that numerical port numbers must be given as a string,
9613 too.
9614
9615 Timeout Milliseconds
9616 The Timeout option sets the socket connection timeout, in
9617 milliseconds.
9618
9619 Prefix Prefix
9620 Prefix used when constructing the name of the Sorted Sets and the
9621 Set containing all metrics. Defaults to "collectd/", so metrics
9622 will have names like "collectd/cpu-0/cpu-user". When setting this
9623 to something different, it is recommended but not required to
9624 include a trailing slash in Prefix.
9625
9626 Database Index
9627 This index selects the redis database to use for writing
9628 operations. Defaults to 0.
9629
9630 MaxSetSize Items
9631 The MaxSetSize option limits the number of items that the Sorted
9632 Sets can hold. Negative values for Items sets no limit, which is
9633 the default behavior.
9634
9635 MaxSetDuration Seconds
9636 The MaxSetDuration option limits the duration of items that the
9637 Sorted Sets can hold. Negative values for Items sets no duration,
9638 which is the default behavior.
9639
9640 StoreRates true|false
9641 If set to true (the default), convert counter values to rates. If
9642 set to false counter values are stored as is, i.e. as an increasing
9643 integer number.
9644
9645 Plugin "write_riemann"
9646 The write_riemann plugin will send values to Riemann, a powerful stream
9647 aggregation and monitoring system. The plugin sends Protobuf encoded
9648 data to Riemann using UDP packets.
9649
9650 Synopsis:
9651
9652 <Plugin "write_riemann">
9653 <Node "example">
9654 Host "localhost"
9655 Port "5555"
9656 Protocol UDP
9657 StoreRates true
9658 AlwaysAppendDS false
9659 TTLFactor 2.0
9660 </Node>
9661 Tag "foobar"
9662 Attribute "foo" "bar"
9663 </Plugin>
9664
9665 The following options are understood by the write_riemann plugin:
9666
9667 <Node Name>
9668 The plugin's configuration consists of one or more Node blocks.
9669 Each block is given a unique Name and specifies one connection to
9670 an instance of Riemann. Indise the Node block, the following per-
9671 connection options are understood:
9672
9673 Host Address
9674 Hostname or address to connect to. Defaults to "localhost".
9675
9676 Port Service
9677 Service name or port number to connect to. Defaults to 5555.
9678
9679 Protocol UDP|TCP|TLS
9680 Specify the protocol to use when communicating with Riemann.
9681 Defaults to TCP.
9682
9683 TLSCertFile Path
9684 When using the TLS protocol, path to a PEM certificate to
9685 present to remote host.
9686
9687 TLSCAFile Path
9688 When using the TLS protocol, path to a PEM CA certificate to
9689 use to validate the remote hosts's identity.
9690
9691 TLSKeyFile Path
9692 When using the TLS protocol, path to a PEM private key
9693 associated with the certificate defined by TLSCertFile.
9694
9695 Batch true|false
9696 If set to true and Protocol is set to TCP, events will be
9697 batched in memory and flushed at regular intervals or when
9698 BatchMaxSize is exceeded.
9699
9700 Notifications are not batched and sent as soon as possible.
9701
9702 When enabled, it can occur that events get processed by the
9703 Riemann server close to or after their expiration time. Tune
9704 the TTLFactor and BatchMaxSize settings according to the amount
9705 of values collected, if this is an issue.
9706
9707 Defaults to true
9708
9709 BatchMaxSize size
9710 Maximum payload size for a riemann packet. Defaults to 8192
9711
9712 BatchFlushTimeout seconds
9713 Maximum amount of seconds to wait in between to batch flushes.
9714 No timeout by default.
9715
9716 StoreRates true|false
9717 If set to true (the default), convert counter values to rates.
9718 If set to false counter values are stored as is, i.e. as an
9719 increasing integer number.
9720
9721 This will be reflected in the "ds_type" tag: If StoreRates is
9722 enabled, converted values will have "rate" appended to the data
9723 source type, e.g. "ds_type:derive:rate".
9724
9725 AlwaysAppendDS false|true
9726 If set to true, append the name of the Data Source (DS) to the
9727 "service", i.e. the field that, together with the "host" field,
9728 uniquely identifies a metric in Riemann. If set to false (the
9729 default), this is only done when there is more than one DS.
9730
9731 TTLFactor Factor
9732 Riemann events have a Time to Live (TTL) which specifies how
9733 long each event is considered active. collectd populates this
9734 field based on the metrics interval setting. This setting
9735 controls the factor with which the interval is multiplied to
9736 set the TTL. The default value is 2.0. Unless you know exactly
9737 what you're doing, you should only increase this setting from
9738 its default value.
9739
9740 Notifications false|true
9741 If set to true, create riemann events for notifications. This
9742 is true by default. When processing thresholds from
9743 write_riemann, it might prove useful to avoid getting
9744 notification events.
9745
9746 CheckThresholds false|true
9747 If set to true, attach state to events based on thresholds
9748 defined in the Threshold plugin. Defaults to false.
9749
9750 EventServicePrefix String
9751 Add the given string as a prefix to the event service name. If
9752 EventServicePrefix not set or set to an empty string (""), no
9753 prefix will be used.
9754
9755 Tag String
9756 Add the given string as an additional tag to the metric being sent
9757 to Riemann.
9758
9759 Attribute String String
9760 Consider the two given strings to be the key and value of an
9761 additional attribute for each metric being sent out to Riemann.
9762
9763 Plugin "write_sensu"
9764 The write_sensu plugin will send values to Sensu, a powerful stream
9765 aggregation and monitoring system. The plugin sends JSON encoded data
9766 to a local Sensu client using a TCP socket.
9767
9768 At the moment, the write_sensu plugin does not send over a
9769 collectd_host parameter so it is not possible to use one collectd
9770 instance as a gateway for others. Each collectd host must pair with one
9771 Sensu client.
9772
9773 Synopsis:
9774
9775 <Plugin "write_sensu">
9776 <Node "example">
9777 Host "localhost"
9778 Port "3030"
9779 StoreRates true
9780 AlwaysAppendDS false
9781 MetricHandler "influx"
9782 MetricHandler "default"
9783 NotificationHandler "flapjack"
9784 NotificationHandler "howling_monkey"
9785 Notifications true
9786 </Node>
9787 Tag "foobar"
9788 Attribute "foo" "bar"
9789 </Plugin>
9790
9791 The following options are understood by the write_sensu plugin:
9792
9793 <Node Name>
9794 The plugin's configuration consists of one or more Node blocks.
9795 Each block is given a unique Name and specifies one connection to
9796 an instance of Sensu. Inside the Node block, the following per-
9797 connection options are understood:
9798
9799 Host Address
9800 Hostname or address to connect to. Defaults to "localhost".
9801
9802 Port Service
9803 Service name or port number to connect to. Defaults to 3030.
9804
9805 StoreRates true|false
9806 If set to true (the default), convert counter values to rates.
9807 If set to false counter values are stored as is, i.e. as an
9808 increasing integer number.
9809
9810 This will be reflected in the "collectd_data_source_type" tag:
9811 If StoreRates is enabled, converted values will have "rate"
9812 appended to the data source type, e.g.
9813 "collectd_data_source_type:derive:rate".
9814
9815 AlwaysAppendDS false|true
9816 If set the true, append the name of the Data Source (DS) to the
9817 "service", i.e. the field that, together with the "host" field,
9818 uniquely identifies a metric in Sensu. If set to false (the
9819 default), this is only done when there is more than one DS.
9820
9821 Notifications false|true
9822 If set to true, create Sensu events for notifications. This is
9823 false by default. At least one of Notifications or Metrics
9824 should be enabled.
9825
9826 Metrics false|true
9827 If set to true, create Sensu events for metrics. This is false
9828 by default. At least one of Notifications or Metrics should be
9829 enabled.
9830
9831 Separator String
9832 Sets the separator for Sensu metrics name or checks. Defaults
9833 to "/".
9834
9835 MetricHandler String
9836 Add a handler that will be set when metrics are sent to Sensu.
9837 You can add several of them, one per line. Defaults to no
9838 handler.
9839
9840 NotificationHandler String
9841 Add a handler that will be set when notifications are sent to
9842 Sensu. You can add several of them, one per line. Defaults to
9843 no handler.
9844
9845 EventServicePrefix String
9846 Add the given string as a prefix to the event service name. If
9847 EventServicePrefix not set or set to an empty string (""), no
9848 prefix will be used.
9849
9850 Tag String
9851 Add the given string as an additional tag to the metric being sent
9852 to Sensu.
9853
9854 Attribute String String
9855 Consider the two given strings to be the key and value of an
9856 additional attribute for each metric being sent out to Sensu.
9857
9858 Plugin "write_stackdriver"
9859 The "write_stackdriver" plugin writes metrics to the Google Stackdriver
9860 Monitoring service.
9861
9862 This plugin supports two authentication methods: When configured,
9863 credentials are read from the JSON credentials file specified with
9864 CredentialFile. Alternatively, when running on Google Compute Engine
9865 (GCE), an OAuth token is retrieved from the metadata server and used to
9866 authenticate to GCM.
9867
9868 Synopsis:
9869
9870 <Plugin write_stackdriver>
9871 CredentialFile "/path/to/service_account.json"
9872 <Resource "global">
9873 Label "project_id" "monitored_project"
9874 </Resource>
9875 </Plugin>
9876
9877 CredentialFile file
9878 Path to a JSON credentials file holding the credentials for a GCP
9879 service account.
9880
9881 If CredentialFile is not specified, the plugin uses Application
9882 Default Credentials. That means which credentials are used depends
9883 on the environment:
9884
9885 · The environment variable "GOOGLE_APPLICATION_CREDENTIALS" is
9886 checked. If this variable is specified it should point to a
9887 JSON file that defines the credentials.
9888
9889 · The path
9890 "${HOME}/.config/gcloud/application_default_credentials.json"
9891 is checked. This where credentials used by the gcloud command
9892 line utility are stored. You can use "gcloud auth
9893 application-default login" to create these credentials.
9894
9895 Please note that these credentials are often of your personal
9896 account, not a service account, and are therefore unfit to be
9897 used in a production environment.
9898
9899 · When running on GCE, the built-in service account associated
9900 with the virtual machine instance is used. See also the Email
9901 option below.
9902
9903 Project Project
9904 The Project ID or the Project Number of the Stackdriver Account.
9905 The Project ID is a string identifying the GCP project, which you
9906 can chose freely when creating a new project. The Project Number is
9907 a 12-digit decimal number. You can look up both on the Developer
9908 Console.
9909
9910 This setting is optional. If not set, the project ID is read from
9911 the credentials file or determined from the GCE's metadata service.
9912
9913 Email Email (GCE only)
9914 Choses the GCE Service Account used for authentication.
9915
9916 Each GCE instance has a "default" Service Account but may also be
9917 associated with additional Service Accounts. This is often used to
9918 restrict the permissions of services running on the GCE instance to
9919 the required minimum. The write_stackdriver plugin requires the
9920 "https://www.googleapis.com/auth/monitoring" scope. When multiple
9921 Service Accounts are available, this option selects which one is
9922 used by write_stackdriver plugin.
9923
9924 Resource ResourceType
9925 Configures the Monitored Resource to use when storing metrics.
9926 More information on Monitored Resources and Monitored Resource
9927 Types are available at
9928 <https://cloud.google.com/monitoring/api/resources>.
9929
9930 This block takes one string argument, the ResourceType. Inside the
9931 block are one or more Label options which configure the resource
9932 labels.
9933
9934 This block is optional. The default value depends on the runtime
9935 environment: on GCE, the "gce_instance" resource type is used,
9936 otherwise the "global" resource type ist used:
9937
9938 · On GCE, defaults to the equivalent of this config:
9939
9940 <Resource "gce_instance">
9941 Label "project_id" "<project_id>"
9942 Label "instance_id" "<instance_id>"
9943 Label "zone" "<zone>"
9944 </Resource>
9945
9946 The values for project_id, instance_id and zone are read from
9947 the GCE metadata service.
9948
9949 · Elsewhere, i.e. not on GCE, defaults to the equivalent of this
9950 config:
9951
9952 <Resource "global">
9953 Label "project_id" "<Project>"
9954 </Resource>
9955
9956 Where Project refers to the value of the Project option or the
9957 project ID inferred from the CredentialFile.
9958
9959 Url Url
9960 URL of the Stackdriver Monitoring API. Defaults to
9961 "https://monitoring.googleapis.com/v3".
9962
9963 Plugin "write_syslog"
9964 The "write_syslog" plugin writes data in syslog format log messages.
9965 It implements the basic syslog protocol, RFC 5424, extends it with
9966 content-based filtering, rich filtering capabilities, flexible
9967 configuration options and adds features such as using TCP for
9968 transport. The plugin can connect to a Syslog daemon, like syslog-ng
9969 and rsyslog, that will ingest metrics, transform and ship them to the
9970 specified output. The plugin uses TCP over the "line based" protocol
9971 with a default port 44514. The data will be sent in blocks of at most
9972 1428 bytes to minimize the number of network packets.
9973
9974 Synopsis:
9975
9976 <Plugin write_syslog>
9977 ResolveInterval 60
9978 ResolveJitter 60
9979 <Node "example">
9980 Host "syslog-1.my.domain"
9981 Port "44514"
9982 Prefix "collectd"
9983 MessageFormat "human"
9984 HostTags ""
9985 </Node>
9986 </Plugin>
9987
9988 The configuration consists of one or more <Node Name> blocks and global
9989 directives.
9990
9991 Global directives are:
9992
9993 ResolveInterval seconds
9994 ResolveJitter seconds
9995 When collectd connects to a syslog node, it will request the
9996 hostname from DNS. This can become a problem if the syslog node is
9997 unavailable or badly configured because collectd will request DNS
9998 in order to reconnect for every metric, which can flood your DNS.
9999 So you can cache the last value for ResolveInterval seconds.
10000 Defaults to the Interval of the write_syslog plugin, e.g.
10001 10 seconds.
10002
10003 You can also define a jitter, a random interval to wait in addition
10004 to ResolveInterval. This prevents all your collectd servers to
10005 resolve the hostname at the same time when the connection fails.
10006 Defaults to the Interval of the write_syslog plugin, e.g.
10007 10 seconds.
10008
10009 Note: If the DNS resolution has already been successful when the
10010 socket closes, the plugin will try to reconnect immediately with
10011 the cached information. DNS is queried only when the socket is
10012 closed for a longer than ResolveInterval + ResolveJitter seconds.
10013
10014 Inside the Node blocks, the following options are recognized:
10015
10016 Host Address
10017 Hostname or address to connect to. Defaults to "localhost".
10018
10019 Port Service
10020 Service name or port number to connect to. Defaults to 44514.
10021
10022 HostTags String
10023 When set, HostTags is added to the end of the metric. It is
10024 intended to be used for adding additional metadata to tag the
10025 metric with. Dots and whitespace are not escaped in this string.
10026
10027 Examples:
10028
10029 When MessageFormat is set to "human".
10030
10031 ["prefix1" "example1"="example1_v"]["prefix2" "example2"="example2_v"]"
10032
10033 When MessageFormat is set to "JSON", text should be in JSON format.
10034 Escaping the quotation marks is required.
10035
10036 HostTags "\"prefix1\": {\"example1\":\"example1_v\",\"example2\":\"example2_v\"}"
10037
10038 MessageFormat String
10039 MessageFormat selects the format in which messages are sent to the
10040 syslog deamon, human or JSON. Defaults to human.
10041
10042 Syslog message format:
10043
10044 <priority>VERSION ISOTIMESTAMP HOSTNAME APPLICATION PID MESSAGEID
10045 STRUCTURED-DATA MSG
10046
10047 The difference between the message formats are in the STRUCTURED-
10048 DATA and MSG parts.
10049
10050 Human format:
10051
10052 <166>1 ISOTIMESTAMP HOSTNAME collectd PID MESSAGEID
10053 ["collectd" "value": "v1" "plugin"="plugin_v" "plugin_instance"="plugin_instance_v"
10054 "type_instance"="type_instance_v" "type"="type_v" "ds_name"="ds_name_v" "interval"="interval_v" ]
10055 "host_tag_example"="host_tag_example_v" plugin_v.type_v.ds_name_v="v1"
10056
10057 JSON format:
10058
10059 <166>1 ISOTIMESTAMP HOSTNAME collectd PID MESSAGEID STRUCTURED-DATA
10060 {
10061 "collectd": {
10062 "time": time_as_epoch, "interval": interval_v, "plugin": "plugin_v",
10063 "plugin_instance": "plugin_instance_v", "type":"type_v",
10064 "type_instance": "type_instance_v", "plugin_v": {"type_v": v1}
10065 } , "host":"host_v", "host_tag_example": "host_tag_example_v"
10066 }
10067
10068 StoreRates false|true
10069 If set to true, convert counter values to rates. If set to false
10070 (the default) counter values are stored as is, as an increasing
10071 integer number.
10072
10073 AlwaysAppendDS false|true
10074 If set to true, append the name of the Data Source (DS) to the
10075 "metric" identifier. If set to false (the default), this is only
10076 done when there is more than one DS.
10077
10078 Prefix String
10079 When set, Prefix is added to all metrics names as a prefix. It is
10080 intended in case you want to be able to define the source of the
10081 specific metric. Dots and whitespace are not escaped in this
10082 string.
10083
10084 Plugin "xencpu"
10085 This plugin collects metrics of hardware CPU load for machine running
10086 Xen hypervisor. Load is calculated from 'idle time' value, provided by
10087 Xen. Result is reported using the "percent" type, for each CPU (core).
10088
10089 This plugin doesn't have any options (yet).
10090
10091 Plugin "zookeeper"
10092 The zookeeper plugin will collect statistics from a Zookeeper server
10093 using the mntr command. It requires Zookeeper 3.4.0+ and access to the
10094 client port.
10095
10096 Synopsis:
10097
10098 <Plugin "zookeeper">
10099 Host "127.0.0.1"
10100 Port "2181"
10101 </Plugin>
10102
10103 Host Address
10104 Hostname or address to connect to. Defaults to "localhost".
10105
10106 Port Service
10107 Service name or port number to connect to. Defaults to 2181.
10108
10110 Starting with version 4.3.0 collectd has support for monitoring. By
10111 that we mean that the values are not only stored or sent somewhere, but
10112 that they are judged and, if a problem is recognized, acted upon. The
10113 only action collectd takes itself is to generate and dispatch a
10114 "notification". Plugins can register to receive notifications and
10115 perform appropriate further actions.
10116
10117 Since systems and what you expect them to do differ a lot, you can
10118 configure thresholds for your values freely. This gives you a lot of
10119 flexibility but also a lot of responsibility.
10120
10121 Every time a value is out of range a notification is dispatched. This
10122 means that the idle percentage of your CPU needs to be less then the
10123 configured threshold only once for a notification to be generated.
10124 There's no such thing as a moving average or similar - at least not
10125 now.
10126
10127 Also, all values that match a threshold are considered to be relevant
10128 or "interesting". As a consequence collectd will issue a notification
10129 if they are not received for Timeout iterations. The Timeout
10130 configuration option is explained in section "GLOBAL OPTIONS". If, for
10131 example, Timeout is set to "2" (the default) and some hosts sends it's
10132 CPU statistics to the server every 60 seconds, a notification will be
10133 dispatched after about 120 seconds. It may take a little longer because
10134 the timeout is checked only once each Interval on the server.
10135
10136 When a value comes within range again or is received after it was
10137 missing, an "OKAY-notification" is dispatched.
10138
10139 Here is a configuration example to get you started. Read below for more
10140 information.
10141
10142 <Plugin threshold>
10143 <Type "foo">
10144 WarningMin 0.00
10145 WarningMax 1000.00
10146 FailureMin 0.00
10147 FailureMax 1200.00
10148 Invert false
10149 Instance "bar"
10150 </Type>
10151
10152 <Plugin "interface">
10153 Instance "eth0"
10154 <Type "if_octets">
10155 FailureMax 10000000
10156 DataSource "rx"
10157 </Type>
10158 </Plugin>
10159
10160 <Host "hostname">
10161 <Type "cpu">
10162 Instance "idle"
10163 FailureMin 10
10164 </Type>
10165
10166 <Plugin "memory">
10167 <Type "memory">
10168 Instance "cached"
10169 WarningMin 100000000
10170 </Type>
10171 </Plugin>
10172 </Host>
10173 </Plugin>
10174
10175 There are basically two types of configuration statements: The "Host",
10176 "Plugin", and "Type" blocks select the value for which a threshold
10177 should be configured. The "Plugin" and "Type" blocks may be specified
10178 further using the "Instance" option. You can combine the block by
10179 nesting the blocks, though they must be nested in the above order,
10180 i. e. "Host" may contain either "Plugin" and "Type" blocks, "Plugin"
10181 may only contain "Type" blocks and "Type" may not contain other blocks.
10182 If multiple blocks apply to the same value the most specific block is
10183 used.
10184
10185 The other statements specify the threshold to configure. They must be
10186 included in a "Type" block. Currently the following statements are
10187 recognized:
10188
10189 FailureMax Value
10190 WarningMax Value
10191 Sets the upper bound of acceptable values. If unset defaults to
10192 positive infinity. If a value is greater than FailureMax a FAILURE
10193 notification will be created. If the value is greater than
10194 WarningMax but less than (or equal to) FailureMax a WARNING
10195 notification will be created.
10196
10197 FailureMin Value
10198 WarningMin Value
10199 Sets the lower bound of acceptable values. If unset defaults to
10200 negative infinity. If a value is less than FailureMin a FAILURE
10201 notification will be created. If the value is less than WarningMin
10202 but greater than (or equal to) FailureMin a WARNING notification
10203 will be created.
10204
10205 DataSource DSName
10206 Some data sets have more than one "data source". Interesting
10207 examples are the "if_octets" data set, which has received ("rx")
10208 and sent ("tx") bytes and the "disk_ops" data set, which holds
10209 "read" and "write" operations. The system load data set, "load",
10210 even has three data sources: "shortterm", "midterm", and
10211 "longterm".
10212
10213 Normally, all data sources are checked against a configured
10214 threshold. If this is undesirable, or if you want to specify
10215 different limits for each data source, you can use the DataSource
10216 option to have a threshold apply only to one data source.
10217
10218 Invert true|false
10219 If set to true the range of acceptable values is inverted, i. e.
10220 values between FailureMin and FailureMax (WarningMin and
10221 WarningMax) are not okay. Defaults to false.
10222
10223 Persist true|false
10224 Sets how often notifications are generated. If set to true one
10225 notification will be generated for each value that is out of the
10226 acceptable range. If set to false (the default) then a notification
10227 is only generated if a value is out of range but the previous value
10228 was okay.
10229
10230 This applies to missing values, too: If set to true a notification
10231 about a missing value is generated once every Interval seconds. If
10232 set to false only one such notification is generated until the
10233 value appears again.
10234
10235 Percentage true|false
10236 If set to true, the minimum and maximum values given are
10237 interpreted as percentage value, relative to the other data
10238 sources. This is helpful for example for the "df" type, where you
10239 may want to issue a warning when less than 5 % of the total space
10240 is available. Defaults to false.
10241
10242 Hits Number
10243 Delay creating the notification until the threshold has been passed
10244 Number times. When a notification has been generated, or when a
10245 subsequent value is inside the threshold, the counter is reset. If,
10246 for example, a value is collected once every 10 seconds and Hits is
10247 set to 3, a notification will be dispatched at most once every
10248 30 seconds.
10249
10250 This is useful when short bursts are not a problem. If, for
10251 example, 100% CPU usage for up to a minute is normal (and data is
10252 collected every 10 seconds), you could set Hits to 6 to account for
10253 this.
10254
10255 Hysteresis Number
10256 When set to non-zero, a hysteresis value is applied when checking
10257 minimum and maximum bounds. This is useful for values that increase
10258 slowly and fluctuate a bit while doing so. When these values come
10259 close to the threshold, they may "flap", i.e. switch between
10260 failure / warning case and okay case repeatedly.
10261
10262 If, for example, the threshold is configures as
10263
10264 WarningMax 100.0
10265 Hysteresis 1.0
10266
10267 then a Warning notification is created when the value exceeds 101
10268 and the corresponding Okay notification is only created once the
10269 value falls below 99, thus avoiding the "flapping".
10270
10272 Starting with collectd 4.6 there is a powerful filtering infrastructure
10273 implemented in the daemon. The concept has mostly been copied from
10274 ip_tables, the packet filter infrastructure for Linux. We'll use a
10275 similar terminology, so that users that are familiar with iptables feel
10276 right at home.
10277
10278 Terminology
10279 The following are the terms used in the remainder of the filter
10280 configuration documentation. For an ASCII-art schema of the mechanism,
10281 see "General structure" below.
10282
10283 Match
10284 A match is a criteria to select specific values. Examples are, of
10285 course, the name of the value or it's current value.
10286
10287 Matches are implemented in plugins which you have to load prior to
10288 using the match. The name of such plugins starts with the "match_"
10289 prefix.
10290
10291 Target
10292 A target is some action that is to be performed with data. Such
10293 actions could, for example, be to change part of the value's
10294 identifier or to ignore the value completely.
10295
10296 Some of these targets are built into the daemon, see "Built-in
10297 targets" below. Other targets are implemented in plugins which you
10298 have to load prior to using the target. The name of such plugins
10299 starts with the "target_" prefix.
10300
10301 Rule
10302 The combination of any number of matches and at least one target is
10303 called a rule. The target actions will be performed for all values
10304 for which all matches apply. If the rule does not have any matches
10305 associated with it, the target action will be performed for all
10306 values.
10307
10308 Chain
10309 A chain is a list of rules and possibly default targets. The rules
10310 are tried in order and if one matches, the associated target will
10311 be called. If a value is handled by a rule, it depends on the
10312 target whether or not any subsequent rules are considered or if
10313 traversal of the chain is aborted, see "Flow control" below. After
10314 all rules have been checked, the default targets will be executed.
10315
10316 General structure
10317 The following shows the resulting structure:
10318
10319 +---------+
10320 ! Chain !
10321 +---------+
10322 !
10323 V
10324 +---------+ +---------+ +---------+ +---------+
10325 ! Rule !->! Match !->! Match !->! Target !
10326 +---------+ +---------+ +---------+ +---------+
10327 !
10328 V
10329 +---------+ +---------+ +---------+
10330 ! Rule !->! Target !->! Target !
10331 +---------+ +---------+ +---------+
10332 !
10333 V
10334 :
10335 :
10336 !
10337 V
10338 +---------+ +---------+ +---------+
10339 ! Rule !->! Match !->! Target !
10340 +---------+ +---------+ +---------+
10341 !
10342 V
10343 +---------+
10344 ! Default !
10345 ! Target !
10346 +---------+
10347
10348 Flow control
10349 There are four ways to control which way a value takes through the
10350 filter mechanism:
10351
10352 jump
10353 The built-in jump target can be used to "call" another chain, i. e.
10354 process the value with another chain. When the called chain
10355 finishes, usually the next target or rule after the jump is
10356 executed.
10357
10358 stop
10359 The stop condition, signaled for example by the built-in target
10360 stop, causes all processing of the value to be stopped immediately.
10361
10362 return
10363 Causes processing in the current chain to be aborted, but
10364 processing of the value generally will continue. This means that if
10365 the chain was called via Jump, the next target or rule after the
10366 jump will be executed. If the chain was not called by another
10367 chain, control will be returned to the daemon and it may pass the
10368 value to another chain.
10369
10370 continue
10371 Most targets will signal the continue condition, meaning that
10372 processing should continue normally. There is no special built-in
10373 target for this condition.
10374
10375 Synopsis
10376 The configuration reflects this structure directly:
10377
10378 PostCacheChain "PostCache"
10379 <Chain "PostCache">
10380 <Rule "ignore_mysql_show">
10381 <Match "regex">
10382 Plugin "^mysql$"
10383 Type "^mysql_command$"
10384 TypeInstance "^show_"
10385 </Match>
10386 <Target "stop">
10387 </Target>
10388 </Rule>
10389 <Target "write">
10390 Plugin "rrdtool"
10391 </Target>
10392 </Chain>
10393
10394 The above configuration example will ignore all values where the plugin
10395 field is "mysql", the type is "mysql_command" and the type instance
10396 begins with "show_". All other values will be sent to the "rrdtool"
10397 write plugin via the default target of the chain. Since this chain is
10398 run after the value has been added to the cache, the MySQL "show_*"
10399 command statistics will be available via the "unixsock" plugin.
10400
10401 List of configuration options
10402 PreCacheChain ChainName
10403 PostCacheChain ChainName
10404 Configure the name of the "pre-cache chain" and the "post-cache
10405 chain". The argument is the name of a chain that should be executed
10406 before and/or after the values have been added to the cache.
10407
10408 To understand the implications, it's important you know what is
10409 going on inside collectd. The following diagram shows how values
10410 are passed from the read-plugins to the write-plugins:
10411
10412 +---------------+
10413 ! Read-Plugin !
10414 +-------+-------+
10415 !
10416 + - - - - V - - - - +
10417 : +---------------+ :
10418 : ! Pre-Cache ! :
10419 : ! Chain ! :
10420 : +-------+-------+ :
10421 : ! :
10422 : V :
10423 : +-------+-------+ : +---------------+
10424 : ! Cache !--->! Value Cache !
10425 : ! insert ! : +---+---+-------+
10426 : +-------+-------+ : ! !
10427 : ! ,------------' !
10428 : V V : V
10429 : +-------+---+---+ : +-------+-------+
10430 : ! Post-Cache +--->! Write-Plugins !
10431 : ! Chain ! : +---------------+
10432 : +---------------+ :
10433 : :
10434 : dispatch values :
10435 + - - - - - - - - - +
10436
10437 After the values are passed from the "read" plugins to the dispatch
10438 functions, the pre-cache chain is run first. The values are added
10439 to the internal cache afterwards. The post-cache chain is run after
10440 the values have been added to the cache. So why is it such a huge
10441 deal if chains are run before or after the values have been added
10442 to this cache?
10443
10444 Targets that change the identifier of a value list should be
10445 executed before the values are added to the cache, so that the name
10446 in the cache matches the name that is used in the "write" plugins.
10447 The "unixsock" plugin, too, uses this cache to receive a list of
10448 all available values. If you change the identifier after the value
10449 list has been added to the cache, this may easily lead to
10450 confusion, but it's not forbidden of course.
10451
10452 The cache is also used to convert counter values to rates. These
10453 rates are, for example, used by the "value" match (see below). If
10454 you use the rate stored in the cache before the new value is added,
10455 you will use the old, previous rate. Write plugins may use this
10456 rate, too, see the "csv" plugin, for example. The "unixsock"
10457 plugin uses these rates too, to implement the "GETVAL" command.
10458
10459 Last but not last, the stop target makes a difference: If the pre-
10460 cache chain returns the stop condition, the value will not be added
10461 to the cache and the post-cache chain will not be run.
10462
10463 Chain Name
10464 Adds a new chain with a certain name. This name can be used to
10465 refer to a specific chain, for example to jump to it.
10466
10467 Within the Chain block, there can be Rule blocks and Target blocks.
10468
10469 Rule [Name]
10470 Adds a new rule to the current chain. The name of the rule is
10471 optional and currently has no meaning for the daemon.
10472
10473 Within the Rule block, there may be any number of Match blocks and
10474 there must be at least one Target block.
10475
10476 Match Name
10477 Adds a match to a Rule block. The name specifies what kind of match
10478 should be performed. Available matches depend on the plugins that
10479 have been loaded.
10480
10481 The arguments inside the Match block are passed to the plugin
10482 implementing the match, so which arguments are valid here depends
10483 on the plugin being used. If you do not need any to pass any
10484 arguments to a match, you can use the shorter syntax:
10485
10486 Match "foobar"
10487
10488 Which is equivalent to:
10489
10490 <Match "foobar">
10491 </Match>
10492
10493 Target Name
10494 Add a target to a rule or a default target to a chain. The name
10495 specifies what kind of target is to be added. Which targets are
10496 available depends on the plugins being loaded.
10497
10498 The arguments inside the Target block are passed to the plugin
10499 implementing the target, so which arguments are valid here depends
10500 on the plugin being used. If you do not need any to pass any
10501 arguments to a target, you can use the shorter syntax:
10502
10503 Target "stop"
10504
10505 This is the same as writing:
10506
10507 <Target "stop">
10508 </Target>
10509
10510 Built-in targets
10511 The following targets are built into the core daemon and therefore need
10512 no plugins to be loaded:
10513
10514 return
10515 Signals the "return" condition, see the "Flow control" section
10516 above. This causes the current chain to stop processing the value
10517 and returns control to the calling chain. The calling chain will
10518 continue processing targets and rules just after the jump target
10519 (see below). This is very similar to the RETURN target of iptables,
10520 see iptables(8).
10521
10522 This target does not have any options.
10523
10524 Example:
10525
10526 Target "return"
10527
10528 stop
10529 Signals the "stop" condition, see the "Flow control" section above.
10530 This causes processing of the value to be aborted immediately. This
10531 is similar to the DROP target of iptables, see iptables(8).
10532
10533 This target does not have any options.
10534
10535 Example:
10536
10537 Target "stop"
10538
10539 write
10540 Sends the value to "write" plugins.
10541
10542 Available options:
10543
10544 Plugin Name
10545 Name of the write plugin to which the data should be sent. This
10546 option may be given multiple times to send the data to more
10547 than one write plugin. If the plugin supports multiple
10548 instances, the plugin's instance(s) must also be specified.
10549
10550 If no plugin is explicitly specified, the values will be sent to
10551 all available write plugins.
10552
10553 Single-instance plugin example:
10554
10555 <Target "write">
10556 Plugin "rrdtool"
10557 </Target>
10558
10559 Multi-instance plugin example:
10560
10561 <Plugin "write_graphite">
10562 <Node "foo">
10563 ...
10564 </Node>
10565 <Node "bar">
10566 ...
10567 </Node>
10568 </Plugin>
10569 ...
10570 <Target "write">
10571 Plugin "write_graphite/foo"
10572 </Target>
10573
10574 jump
10575 Starts processing the rules of another chain, see "Flow control"
10576 above. If the end of that chain is reached, or a stop condition is
10577 encountered, processing will continue right after the jump target,
10578 i. e. with the next target or the next rule. This is similar to the
10579 -j command line option of iptables, see iptables(8).
10580
10581 Available options:
10582
10583 Chain Name
10584 Jumps to the chain Name. This argument is required and may
10585 appear only once.
10586
10587 Example:
10588
10589 <Target "jump">
10590 Chain "foobar"
10591 </Target>
10592
10593 Available matches
10594 regex
10595 Matches a value using regular expressions.
10596
10597 Available options:
10598
10599 Host Regex
10600 Plugin Regex
10601 PluginInstance Regex
10602 Type Regex
10603 TypeInstance Regex
10604 MetaData String Regex
10605 Match values where the given regular expressions match the
10606 various fields of the identifier of a value. If multiple
10607 regular expressions are given, all regexen must match for a
10608 value to match.
10609
10610 Invert false|true
10611 When set to true, the result of the match is inverted, i.e. all
10612 value lists where all regular expressions apply are not
10613 matched, all other value lists are matched. Defaults to false.
10614
10615 Example:
10616
10617 <Match "regex">
10618 Host "customer[0-9]+"
10619 Plugin "^foobar$"
10620 </Match>
10621
10622 timediff
10623 Matches values that have a time which differs from the time on the
10624 server.
10625
10626 This match is mainly intended for servers that receive values over
10627 the "network" plugin and write them to disk using the "rrdtool"
10628 plugin. RRDtool is very sensitive to the timestamp used when
10629 updating the RRD files. In particular, the time must be ever
10630 increasing. If a misbehaving client sends one packet with a
10631 timestamp far in the future, all further packets with a correct
10632 time will be ignored because of that one packet. What's worse, such
10633 corrupted RRD files are hard to fix.
10634
10635 This match lets one match all values outside a specified time range
10636 (relative to the server's time), so you can use the stop target
10637 (see below) to ignore the value, for example.
10638
10639 Available options:
10640
10641 Future Seconds
10642 Matches all values that are ahead of the server's time by
10643 Seconds or more seconds. Set to zero for no limit. Either
10644 Future or Past must be non-zero.
10645
10646 Past Seconds
10647 Matches all values that are behind of the server's time by
10648 Seconds or more seconds. Set to zero for no limit. Either
10649 Future or Past must be non-zero.
10650
10651 Example:
10652
10653 <Match "timediff">
10654 Future 300
10655 Past 3600
10656 </Match>
10657
10658 This example matches all values that are five minutes or more ahead
10659 of the server or one hour (or more) lagging behind.
10660
10661 value
10662 Matches the actual value of data sources against given minimum /
10663 maximum values. If a data-set consists of more than one data-
10664 source, all data-sources must match the specified ranges for a
10665 positive match.
10666
10667 Available options:
10668
10669 Min Value
10670 Sets the smallest value which still results in a match. If
10671 unset, behaves like negative infinity.
10672
10673 Max Value
10674 Sets the largest value which still results in a match. If
10675 unset, behaves like positive infinity.
10676
10677 Invert true|false
10678 Inverts the selection. If the Min and Max settings result in a
10679 match, no-match is returned and vice versa. Please note that
10680 the Invert setting only effects how Min and Max are applied to
10681 a specific value. Especially the DataSource and Satisfy
10682 settings (see below) are not inverted.
10683
10684 DataSource DSName [DSName ...]
10685 Select one or more of the data sources. If no data source is
10686 configured, all data sources will be checked. If the type
10687 handled by the match does not have a data source of the
10688 specified name(s), this will always result in no match
10689 (independent of the Invert setting).
10690
10691 Satisfy Any|All
10692 Specifies how checking with several data sources is performed.
10693 If set to Any, the match succeeds if one of the data sources is
10694 in the configured range. If set to All the match only succeeds
10695 if all data sources are within the configured range. Default is
10696 All.
10697
10698 Usually All is used for positive matches, Any is used for
10699 negative matches. This means that with All you usually check
10700 that all values are in a "good" range, while with Any you check
10701 if any value is within a "bad" range (or outside the "good"
10702 range).
10703
10704 Either Min or Max, but not both, may be unset.
10705
10706 Example:
10707
10708 # Match all values smaller than or equal to 100. Matches only if all data
10709 # sources are below 100.
10710 <Match "value">
10711 Max 100
10712 Satisfy "All"
10713 </Match>
10714
10715 # Match if the value of any data source is outside the range of 0 - 100.
10716 <Match "value">
10717 Min 0
10718 Max 100
10719 Invert true
10720 Satisfy "Any"
10721 </Match>
10722
10723 empty_counter
10724 Matches all values with one or more data sources of type COUNTER
10725 and where all counter values are zero. These counters usually never
10726 increased since they started existing (and are therefore
10727 uninteresting), or got reset recently or overflowed and you had
10728 really, really bad luck.
10729
10730 Please keep in mind that ignoring such counters can result in
10731 confusing behavior: Counters which hardly ever increase will be
10732 zero for long periods of time. If the counter is reset for some
10733 reason (machine or service restarted, usually), the graph will be
10734 empty (NAN) for a long time. People may not understand why.
10735
10736 hashed
10737 Calculates a hash value of the host name and matches values
10738 according to that hash value. This makes it possible to divide all
10739 hosts into groups and match only values that are in a specific
10740 group. The intended use is in load balancing, where you want to
10741 handle only part of all data and leave the rest for other servers.
10742
10743 The hashing function used tries to distribute the hosts evenly.
10744 First, it calculates a 32 bit hash value using the characters of
10745 the hostname:
10746
10747 hash_value = 0;
10748 for (i = 0; host[i] != 0; i++)
10749 hash_value = (hash_value * 251) + host[i];
10750
10751 The constant 251 is a prime number which is supposed to make this
10752 hash value more random. The code then checks the group for this
10753 host according to the Total and Match arguments:
10754
10755 if ((hash_value % Total) == Match)
10756 matches;
10757 else
10758 does not match;
10759
10760 Please note that when you set Total to two (i. e. you have only two
10761 groups), then the least significant bit of the hash value will be
10762 the XOR of all least significant bits in the host name. One
10763 consequence is that when you have two hosts, "server0.example.com"
10764 and "server1.example.com", where the host name differs in one digit
10765 only and the digits differ by one, those hosts will never end up in
10766 the same group.
10767
10768 Available options:
10769
10770 Match Match Total
10771 Divide the data into Total groups and match all hosts in group
10772 Match as described above. The groups are numbered from zero,
10773 i. e. Match must be smaller than Total. Total must be at least
10774 one, although only values greater than one really do make any
10775 sense.
10776
10777 You can repeat this option to match multiple groups, for
10778 example:
10779
10780 Match 3 7
10781 Match 5 7
10782
10783 The above config will divide the data into seven groups and
10784 match groups three and five. One use would be to keep every
10785 value on two hosts so that if one fails the missing data can
10786 later be reconstructed from the second host.
10787
10788 Example:
10789
10790 # Operate on the pre-cache chain, so that ignored values are not even in the
10791 # global cache.
10792 <Chain "PreCache">
10793 <Rule>
10794 <Match "hashed">
10795 # Divide all received hosts in seven groups and accept all hosts in
10796 # group three.
10797 Match 3 7
10798 </Match>
10799 # If matched: Return and continue.
10800 Target "return"
10801 </Rule>
10802 # If not matched: Return and stop.
10803 Target "stop"
10804 </Chain>
10805
10806 Available targets
10807 notification
10808 Creates and dispatches a notification.
10809
10810 Available options:
10811
10812 Message String
10813 This required option sets the message of the notification. The
10814 following placeholders will be replaced by an appropriate
10815 value:
10816
10817 %{host}
10818 %{plugin}
10819 %{plugin_instance}
10820 %{type}
10821 %{type_instance}
10822 These placeholders are replaced by the identifier field of
10823 the same name.
10824
10825 %{ds:name}
10826 These placeholders are replaced by a (hopefully) human
10827 readable representation of the current rate of this data
10828 source. If you changed the instance name (using the set or
10829 replace targets, see below), it may not be possible to
10830 convert counter values to rates.
10831
10832 Please note that these placeholders are case sensitive!
10833
10834 Severity "FAILURE"|"WARNING"|"OKAY"
10835 Sets the severity of the message. If omitted, the severity
10836 "WARNING" is used.
10837
10838 Example:
10839
10840 <Target "notification">
10841 Message "Oops, the %{type_instance} temperature is currently %{ds:value}!"
10842 Severity "WARNING"
10843 </Target>
10844
10845 replace
10846 Replaces parts of the identifier using regular expressions.
10847
10848 Available options:
10849
10850 Host Regex Replacement
10851 Plugin Regex Replacement
10852 PluginInstance Regex Replacement
10853 TypeInstance Regex Replacement
10854 MetaData String Regex Replacement
10855 DeleteMetaData String Regex
10856 Match the appropriate field with the given regular expression
10857 Regex. If the regular expression matches, that part that
10858 matches is replaced with Replacement. If multiple places of the
10859 input buffer match a given regular expression, only the first
10860 occurrence will be replaced.
10861
10862 You can specify each option multiple times to use multiple
10863 regular expressions one after another.
10864
10865 Example:
10866
10867 <Target "replace">
10868 # Replace "example.net" with "example.com"
10869 Host "\\<example.net\\>" "example.com"
10870
10871 # Strip "www." from hostnames
10872 Host "\\<www\\." ""
10873 </Target>
10874
10875 set Sets part of the identifier of a value to a given string.
10876
10877 Available options:
10878
10879 Host String
10880 Plugin String
10881 PluginInstance String
10882 TypeInstance String
10883 MetaData String String
10884 Set the appropriate field to the given string. The strings for
10885 plugin instance, type instance, and meta data may be empty, the
10886 strings for host and plugin may not be empty. It's currently
10887 not possible to set the type of a value this way.
10888
10889 The following placeholders will be replaced by an appropriate
10890 value:
10891
10892 %{host}
10893 %{plugin}
10894 %{plugin_instance}
10895 %{type}
10896 %{type_instance}
10897 These placeholders are replaced by the identifier field of
10898 the same name.
10899
10900 %{meta:name}
10901 These placeholders are replaced by the meta data value with
10902 the given name.
10903
10904 Please note that these placeholders are case sensitive!
10905
10906 DeleteMetaData String
10907 Delete the named meta data field.
10908
10909 Example:
10910
10911 <Target "set">
10912 PluginInstance "coretemp"
10913 TypeInstance "core3"
10914 </Target>
10915
10916 Backwards compatibility
10917 If you use collectd with an old configuration, i. e. one without a
10918 Chain block, it will behave as it used to. This is equivalent to the
10919 following configuration:
10920
10921 <Chain "PostCache">
10922 Target "write"
10923 </Chain>
10924
10925 If you specify a PostCacheChain, the write target will not be added
10926 anywhere and you will have to make sure that it is called where
10927 appropriate. We suggest to add the above snippet as default target to
10928 your "PostCache" chain.
10929
10930 Examples
10931 Ignore all values, where the hostname does not contain a dot, i. e.
10932 can't be an FQDN.
10933
10934 <Chain "PreCache">
10935 <Rule "no_fqdn">
10936 <Match "regex">
10937 Host "^[^\.]*$"
10938 </Match>
10939 Target "stop"
10940 </Rule>
10941 Target "write"
10942 </Chain>
10943
10945 Ignorelists are a generic framework to either ignore some metrics or
10946 report specific metrics only. Plugins usually provide one or more
10947 options to specify the items (mounts points, devices, ...) and the
10948 boolean option "IgnoreSelected".
10949
10950 Select String
10951 Selects the item String. This option often has a plugin specific
10952 name, e.g. Sensor in the "sensors" plugin. It is also plugin
10953 specific what this string is compared to. For example, the "df"
10954 plugin's MountPoint compares it to a mount point and the "sensors"
10955 plugin's Sensor compares it to a sensor name.
10956
10957 By default, this option is doing a case-sensitive full-string
10958 match. The following config will match "foo", but not "Foo":
10959
10960 Select "foo"
10961
10962 If String starts and ends with "/" (a slash), the string is
10963 compiled as a regular expression. For example, so match all item
10964 starting with "foo", use could use the following syntax:
10965
10966 Select "/^foo/"
10967
10968 The regular expression is not anchored, i.e. the following config
10969 will match "foobar", "barfoo" and "AfooZ":
10970
10971 Select "/foo/"
10972
10973 The Select option may be repeated to select multiple items.
10974
10975 IgnoreSelected true|false
10976 If set to true, matching metrics are ignored and all other metrics
10977 are collected. If set to false, matching metrics are collected and
10978 all other metrics are ignored.
10979
10981 collectd(1), collectd-exec(5), collectd-perl(5), collectd-unixsock(5),
10982 types.db(5), hddtemp(8), iptables(8), kstat(3KSTAT), mbmon(1), psql(1),
10983 regex(7), rrdtool(1), sensors(1)
10984
10986 Florian Forster <octo@collectd.org>
10987
10988
10989
109905.9.1.599.gbb5cfbc 2020-03-19 COLLECTD.CONF(5)