1 =head1 NAME
3 collectd - System statistics collection daemon
5 =head1 SYNOPSIS
7 collectd I<[options]>
9 =head1 DESCRIPTION
11 collectd is a daemon that collects various system statistics periodically and
12 stores them into RRD-files. Which data is collected depends on compile-time
13 settings. The following features may be available:
15 =over 4
17 =item
19 Apache server stats (I<apache>)
21 =item
23 Apple hardware sensors (I<apple_sensors>, Darwin only)
25 =item
27 Battery status (I<battery>)
29 =item
31 CPU utilization (I<cpu>)
33 =item
35 Mountpoint usage (I<df>)
37 =item
39 Disk and partition usage/throughput (I<disk>)
41 =item
43 DNS traffic (I<dns>)
45 =item
47 Email usage (I<email>)
49 =item
51 Harddisk temperatures (I<hddtemp>)
53 =item
55 System load averages (I<load>)
57 =item
59 Memory usage (I<memory>)
61 =item
63 MySQL statistics (I<mysql>)
65 =item
67 NFS utilization (I<nfs>, Linux only)
69 =item
71 Network latency (I<ping>)
73 =item
75 Number of processes (I<processes>, Linux only)
77 =item
79 lm_sensors information (I<sensors>, Linux only)
81 =item
83 Serial port traffic (I<serial>, Linux only)
85 =item
87 Swap usage (I<swap>)
89 =item
91 Tape drive usage (I<tape>, Solaris only)
93 =item
95 Network traffic (I<traffic>)
97 =item
99 Number of users logged into the system (I<users>)
101 =item
103 System ressources used by VServers (I<vserver>)
105 =item
107 Wireless network stats (I<wireless>)
109 =back
111 =head1 OPTIONS
113 =over 4
115 =item B<-C> I<E<lt>config-fileE<gt>>
117 Specify an alternative config file. This is the place to go when you wish to
118 change B<collectd>'s behavior. The path may be relative to the current working
119 directory.
121 =item B<-P> I<E<lt>pid-fileE<gt>>
123 Specify an alternative pid file. This overwrites any settings in the config
124 file. This is thought for init-scripts that require the PID-file in a certain
125 directory to work correctly. For everyday-usage use the B<PIDFile>
126 config-option.
128 =item B<-f>
130 Don't fork to the background. I<collectd> will also B<not> close standard file
131 descriptors, detach from the session nor write a pid file. This is mainly
132 thought for 'supervisioning' init replacements such as I<runit>.
134 =item B<-h>
136 Output usage information and exit.
138 =back
140 =head1 MODES
142 collectd can operate in four different operating modes. The modes are described
143 below.
145 The simplest mode is the so called B<local mode>. Data is collected locally and
146 written in RRD files that reside in I<DataDir>. This is the default mode when
147 collectd is linked against C<librrd>.
149 The modes B<client mode> and B<server mode> are used to send data over a
150 network and receive it again.
152 In B<client mode> the daemon collects the data locally and sends its results
153 to one or more network addresses. No RRD files are written locally in this
154 case. If collectd is not linked against C<librrd> this is the default mode.
156 If started in B<server mode> the daemon will listen on one or more interfaces
157 and write the data it receives to RRD files. No data is collected locally.
159 In the last mode, B<log mode>, data is collected locally and written in
160 text files that reside in I<DataDir>.
162 Please refer to L<collectd.conf(5)> for the configuration options and default
163 values.
165 =head1 SPECIAL PLUGINS
167 =head2 apache
169 This module connects to an Apache webserver and expects the output produced by
170 B<mod_status.c>. If requires B<libcurl> to set up the HTTP connection and issue
171 the request(s). The following is a sample config for the Apache webserver. The
172 use of C<ExtendedStatus on> is mandatory.
174 ExtendedStatus on
175 <IfModule mod_status.c>
176 <Location /mod_status>
177 SetHandler server-status
178 </Location>
179 </IfModule>
181 This plugin requires further configuration. Please read L<collectd.conf(5)>.
183 =head2 cpufreq
185 This module reads F</sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq> (for
186 the first CPU installed) to get the current CPU frequency. If this file does
187 not exist make sure B<cpufreqd> (L<http://cpufreqd.sourceforge.net/>) or a
188 similar tool is installed and an "cpu governor" (that's kernel module) is
189 loaded.
191 =head2 mysql
193 Requires B<mysqlclient> to be installed. It connects to the database when
194 started and keeps the connection up as long as possible. When the connection is
195 interrupted for whatever reason it will try to re-connect. The syslog will
196 contain loud complaints in case anything goes wrong.
198 This plugin issues C<SHOW STATUS> and evaluates C<Bytes_{received,sent}>,
199 C<Com_*> and C<Handler_*> which correspond to F<traffic-mysql.rrd>,
200 F<mysql_commands-*.rrd> and F<mysql_handler-*.rrd>. Also, the values of
201 C<Qcache_*> are put in F<mysql_qcache.rrd> and values of C<Threads_*> are put
202 in F<mysql_threads.rrd>. Please refer to the B<MySQL reference manual>,
203 I<5.2.4. Server Status Variables> for an explanation of these values.
205 =head2 sensors
207 The B<sensors> module uses lm_sensors to retrieve sensor-values. This means
208 that all the needed modules have to be loaded and lm_sensors has to be
209 configured (most likely by editing F</etc/sensors.conf>. Read
210 L<sensors.conf(5)> for details.
212 The B<lm_sensors> homepage can be found at
213 L<http://secure.netroedge.com/~lm78/>.
215 =head2 hddtemp
217 To get values from B<hddtemp> collectd connects to B<localhost> (127.0.0.1),
218 port B<7634/tcp>. The B<Host> and B<Port> options can be used to change these
219 default values. See L<collectd.conf(5)> for details. C<hddtemp> has to be
220 running to work correctly. If C<hddtemp> is not running timeouts may appear
221 which may interfere with other statistics..
223 The B<hddtemp> homepage can be found at
224 L<http://www.guzu.net/linux/hddtemp.php>.
226 =head2 vserver
228 B<VServer> support is only available for Linux. It cannot yet be found in a
229 vanilla kernel, though. To make use of this plugin you need a kernel that has
230 B<VServer> support built in, i.e. you need to apply the patches and compile
231 your own kernel, which will then provide the /proc/virtual filesystem that is
232 required by this plugin.
234 The B<VServer> homepage can be found at L<http://linux-vserver.org/>.
236 =head1 RRD FILES
238 The RRD files are created automatically. The size of the RRAs depend on the
239 compile time settings of I<step> and I<width>. With the default values (I<step>
240 = B<10>, I<width> = B<1200>) the following RRAs are created:
242 RRA:AVERAGE:0.1:1:8640
243 RRA:AVERAGE:0.1:50:1210
244 RRA:AVERAGE:0.1:223:1202
245 RRA:AVERAGE:0.1:2635:1201
246 RRA:MIN:0.1:1:8640
247 RRA:MIN:0.1:50:1210
248 RRA:MIN:0.1:223:1202
249 RRA:MIN:0.1:2635:1201
250 RRA:MAX:0.1:1:8640
251 RRA:MAX:0.1:50:1210
252 RRA:MAX:0.1:223:1202
253 RRA:MAX:0.1:2635:1201
255 By default collectd uses a 10 second I<step>. Thus the RRAs contain the
256 following timespans. If you've changed the I<step> at compile time you will
257 have calculate resolution and timespan yourself.
259 PDP per CDP | Resolution | Data points | Timespan
260 ------------+--------------+-------------+---------
261 1 | 10.0 seconds ! 8640 ! 1 day
262 50 | 8.3 minutes | 1210 | 1 week
263 223 | 37.2 minutes | 1202 | 1 month
264 2635 | 7.3 hours | 1201 | 1 year
266 The DS'es depend on the module creating the RRD files:
268 =over 4
270 =item Apache traffic (F<apache/apache_bytes.rrd>)
272 DS:count:COUNTER:HEARTBEAT:0:134217728
274 =item Apache requests (F<apache/apache_requests.rrd>)
276 DS:count:COUNTER:HEARTBEAT:0:1048576
278 =item Apache scoreboard (F<apache/apache_scoreboard-I<E<lt>nameE<gt>>.rrd>)
280 DS:count:GAUGE:HEARTBEAT:0:U
282 =item Apple temperature sensor (F<apple_sensors/temperature-I<E<lt>nameE<gt>>.rrd>)
284 DS:value:GAUGE:HEARTBEAT:U:U
286 =item Apple fanspeed sensor (F<apple_sensors/fanspeed-I<E<lt>nameE<gt>>.rrd>)
288 DS:value:GAUGE:HEARTBEAT:U:U
290 =item Battery charge (F<battery-I<E<lt>nameE<gt>>/charge.rrd>)
292 DS:charge:GAUGE:HEARTBEAT:0:U
294 =item Battery current (F<battery-I<E<lt>nameE<gt>>/current.rrd>)
296 DS:current:GAUGE:HEARTBEAT:U:U
298 =item Battery voltage (F<battery-I<E<lt>nameE<gt>>/voltage.rrd>)
300 DS:voltage:GAUGE:HEARTBEAT:U:U
302 =item CPU (F<cpu-I<E<lt>numE<gt>>.rrd>)
304 DS:user:COUNTER:HEARTBEAT:0:100
305 DS:nice:COUNTER:HEARTBEAT:0:100
306 DS:syst:COUNTER:HEARTBEAT:0:100
307 DS:idle:COUNTER:HEARTBEAT:0:100
308 DS:wait:COUNTER:HEARTBEAT:0:100
310 =item CPU frequency (F<cpufreq-I<E<lt>numE<gt>>.rrd>)
312 DS:value:GAUGE:HEARTBEAT:0:U
314 =item Mountpoints (F<df-I<E<lt>pathE<gt>>.rrd>)
316 DS:used:GAUGE:HEARTBEAT:0:U
317 DS:free:GAUGE:HEARTBEAT:0:U
319 =item Diskstats (F<disk-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
321 DS:rcount:COUNTER:HEARTBEAT:0:U
322 DS:rmerged:COUNTER:HEARTBEAT:0:U
323 DS:rbytes:COUNTER:HEARTBEAT:0:U
324 DS:rtime:COUNTER:HEARTBEAT:0:U
325 DS:wcount:COUNTER:HEARTBEAT:0:U
326 DS:wmerged:COUNTER:HEARTBEAT:0:U
327 DS:wbytes:COUNTER:HEARTBEAT:0:U
328 DS:wtime:COUNTER:HEARTBEAT:0:U
330 =item Diskstats (F<partition-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
332 DS:rcount:COUNTER:HEARTBEAT:0:U
333 DS:rbytes:COUNTER:HEARTBEAT:0:U
334 DS:wcount:COUNTER:HEARTBEAT:0:U
335 DS:wbytes:COUNTER:HEARTBEAT:0:U
337 =item HDD Temperature (F<hddtemp-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
339 DS:value:GAUGE:HEARTBEAT:U:U
341 =item System load (F<load.rrd>)
343 DS:shortterm:GAUGE:HEARTBEAT:0:100
344 DS:midterm:GAUGE:HEARTBEAT:0:100
345 DS:longterm:GAUGE:HEARTBEAT:0:100
347 =item Memory usage (F<memory.rrd>)
349 DS:used:GAUGE:HEARTBEAT:0:9223372036854775807
350 DS:free:GAUGE:HEARTBEAT:0:9223372036854775807
351 DS:buffers:GAUGE:HEARTBEAT:0:9223372036854775807
352 DS:cached:GAUGE:HEARTBEAT:0:9223372036854775807
354 =item MySQL commands and handlers (F<mysql_commands-I<E<lt>commandE<gt>>.rrd> and F<mysql_handler-I<E<lt>handlerE<gt>>.rrd>)
356 DS:value:COUNTER:HEARTBEAT:0:U
358 =item MySQL query cache (F<mysql_qcache.rrd>)
360 DS:hits:COUNTER:HEARTBEAT:0:U
361 DS:inserts:COUNTER:HEARTBEAT:0:U
362 DS:not_cached:COUNTER:HEARTBEAT:0:U
363 DS:lowmem_prunes:COUNTER:HEARTBEAT:0:U
364 DS:queries_in_cache:GAUGE:HEARTBEAT:0:U
366 =item MySQL threads (F<mysql_threads.rrd>)
368 DS:running:GAUGE:HEARTBEAT:0:U
369 DS:connected:GAUGE:HEARTBEAT:0:U
370 DS:cached:GAUGE:HEARTBEAT:0:U
371 DS:created:COUNTER:HEARTBEAT:0:U
373 =item NFSv2 Procedures (F<nfs2_procedures-I<(client|server)>.rrd>)
375 DS:null:COUNTER:HEARTBEAT:0:U
376 DS:getattr:COUNTER:HEARTBEAT:0:U
377 DS:setattr:COUNTER:HEARTBEAT:0:U
378 DS:root:COUNTER:HEARTBEAT:0:U
379 DS:lookup:COUNTER:HEARTBEAT:0:U
380 DS:readlink:COUNTER:HEARTBEAT:0:U
381 DS:read:COUNTER:HEARTBEAT:0:U
382 DS:wrcache:COUNTER:HEARTBEAT:0:U
383 DS:write:COUNTER:HEARTBEAT:0:U
384 DS:create:COUNTER:HEARTBEAT:0:U
385 DS:remove:COUNTER:HEARTBEAT:0:U
386 DS:rename:COUNTER:HEARTBEAT:0:U
387 DS:link:COUNTER:HEARTBEAT:0:U
388 DS:symlink:COUNTER:HEARTBEAT:0:U
389 DS:mkdir:COUNTER:HEARTBEAT:0:U
390 DS:rmdir:COUNTER:HEARTBEAT:0:U
391 DS:readdir:COUNTER:HEARTBEAT:0:U
392 DS:fsstat:COUNTER:HEARTBEAT:0:U
394 =item NFSv3 Procedures (F<nfs3_procedures-I<(client|server)>.rrd>)
396 DS:null:COUNTER:HEARTBEAT:0:U
397 DS:getattr:COUNTER:HEARTBEAT:0:U
398 DS:setattr:COUNTER:HEARTBEAT:0:U
399 DS:lookup:COUNTER:HEARTBEAT:0:U
400 DS:access:COUNTER:HEARTBEAT:0:U
401 DS:readlink:COUNTER:HEARTBEAT:0:U
402 DS:read:COUNTER:HEARTBEAT:0:U
403 DS:write:COUNTER:HEARTBEAT:0:U
404 DS:create:COUNTER:HEARTBEAT:0:U
405 DS:mkdir:COUNTER:HEARTBEAT:0:U
406 DS:symlink:COUNTER:HEARTBEAT:0:U
407 DS:mknod:COUNTER:HEARTBEAT:0:U
408 DS:remove:COUNTER:HEARTBEAT:0:U
409 DS:rmdir:COUNTER:HEARTBEAT:0:U
410 DS:rename:COUNTER:HEARTBEAT:0:U
411 DS:link:COUNTER:HEARTBEAT:0:U
412 DS:readdir:COUNTER:HEARTBEAT:0:U
413 DS:readdirplus:COUNTER:HEARTBEAT:0:U
414 DS:fsstat:COUNTER:HEARTBEAT:0:U
415 DS:fsinfo:COUNTER:HEARTBEAT:0:U
416 DS:pathconf:COUNTER:HEARTBEAT:0:U
417 DS:commit:COUNTER:HEARTBEAT:0:U
419 =item Network latency / Ping (F<ping-I<E<lt>hostnameE<gt>>.rrd>)
421 DS:ping:GAUGE:HEARTBEAT:0:65535
423 =item Processes (F<processes.rrd>)
425 DS:running:GAUGE:HEARTBEAT:0:65535
426 DS:sleeping:GAUGE:HEARTBEAT:0:65535
427 DS:zombies:GAUGE:HEARTBEAT:0:65535
428 DS:stopped:GAUGE:HEARTBEAT:0:65535
429 DS:paging:GAUGE:HEARTBEAT:0:65535
430 DS:blocked:GAUGE:HEARTBEAT:0:65535
432 =item lm_sensors fanspeed sensor (F<sensors-I<E<lt>instE<gt>>.rrd> or F<lm_sensors-I<E<lt>chipE<gt>>/fanspeed-I<E<lt>instE<gt>>.rrd>)
434 DS:value:GAUGE:HEARTBEAT:U:U
436 =item lm_sensors temperature sensor (F<sensors-I<E<lt>instE<gt>>.rrd> or F<lm_sensors-I<E<lt>chipE<gt>>/temperature-I<E<lt>instE<gt>>.rrd>)
438 DS:value:GAUGE:HEARTBEAT:U:U
440 =item lm_sensors voltage sensor (F<sensors-I<E<lt>instE<gt>>.rrd> or F<lm_sensors-I<E<lt>chipE<gt>>/voltage-I<E<lt>instE<gt>>.rrd>)
442 DS:voltage:GAUGE:HEARTBEAT:U:U
444 =item Serial port traffic (F<serial-I<E<lt>numE<gt>>.rrd>)
446 DS:incoming:COUNTER:HEARTBEAT:0:U
447 DS:outgoing:COUNTER:HEARTBEAT:0:U
449 =item Swap usage (F<swap.rrd>)
451 DS:used:GAUGE:HEARTBEAT:0:1099511627776
452 DS:free:GAUGE:HEARTBEAT:0:1099511627776
453 DS:cached:GAUGE:HEARTBEAT:0:1099511627776
454 DS:resv:GAUGE:HEARTBEAT:0:1099511627776
456 =item Tape drive usage (F<tape-I<E<lt>nameE<gt>>.rrd>)
458 DS:rcount:COUNTER:HEARTBEAT:0:
459 DS:rmerged:COUNTER:HEARTBEAT:0:U
460 DS:rbytes:COUNTER:HEARTBEAT:0:U
461 DS:rtime:COUNTER:HEARTBEAT:0:U
462 DS:wcount:COUNTER:HEARTBEAT:0:U
463 DS:wmerged:COUNTER:HEARTBEAT:0:U
464 DS:wbytes:COUNTER:HEARTBEAT:0:U
465 DS:wtime:COUNTER:HEARTBEAT:0:U
467 =item Network traffic (F<traffic-I<E<lt>interfaceE<gt>>.rrd>)
469 DS:incoming:COUNTER:HEARTBEAT:0:U
470 DS:outgoing:COUNTER:HEARTBEAT:0:U
472 =item Interface packets (F<if_packets-I<E<lt>interfaceE<gt>>.rrd>)
474 DS:rx:COUNTER:HEARTBEAT:0:U
475 DS:tx:COUNTER:HEARTBEAT:0:U
477 =item Interface errors (F<if_errors-I<E<lt>interfaceE<gt>>.rrd>)
479 DS:rx:COUNTER:HEARTBEAT:0:U
480 DS:tx:COUNTER:HEARTBEAT:0:U
482 =item Users (F<users.rrd>)
484 DS:users:GAUGE:HEARTBEAT:0:65535
486 =item VServer load (F<vserver-I<E<lt>xidE<gt>>/load.rrd>)
488 DS:shortterm:GAUGE:HEARTBEAT:0:100
489 DS:midterm:GAUGE:HEARTBEAT:0:100
490 DS:longterm:GAUGE:HEARTBEAT:0:100
492 =item VServer threads (F<vserver-I<E<lt>xidE<gt>>/threads.rrd>)
494 DS:total:GAUGE:HEARTBEAT:0:65535
495 DS:running:GAUGE:HEARTBEAT:0:65535
496 DS:uninterruptible:GAUGE:HEARTBEAT:0:65535
497 DS:onhold:GAUGE:HEARTBEAT:0:65535
499 =item VServer network traffic (F<vserver-I<E<lt>xidE<gt>>/traffic-I<E<lt>nameE<gt>>.rrd>)
501 DS:incoming:COUNTER:HEARTBEAT:0:9223372036854775807
502 DS:outgoing:COUNTER:HEARTBEAT:0:9223372036854775807
503 DS:failed:COUNTER:HEARTBEAT:0:9223372036854775807
505 =item VServer processes (F<vserver-I<E<lt>xidE<gt>>/vs_processes.rrd>)
507 DS:total:GAUGE:HEARTBEAT:0:65535
509 =item VServer memory usage (F<vserver-I<E<lt>xidE<gt>>/vs_memory.rrd>)
511 DS:vm:GAUGE:HEARTBEAT:0:9223372036854775807
512 DS:vml:GAUGE:HEARTBEAT:0:9223372036854775807
513 DS:rss:GAUGE:HEARTBEAT:0:9223372036854775807
514 DS:anon:GAUGE:HEARTBEAT:0:9223372036854775807
516 =item Wireless link quality (F<wireless-I<E<lt>interfaceE<gt>>.rrd>)
518 DS:quality:GAUGE:HEARTBEAT:0:U
519 DS:power:GAUGE:HEARTBEAT:U:0
520 DS:noise:GAUGE:HEARTBEAT:U:0
522 =back
524 =head1 SEE ALSO
526 L<collectd.conf(5)>, L<rrdtool(1)>, L<sensors(1)>, L<hddtemp(8)>,
527 L<kstat(3KSTAT)>
529 =head1 AUTHOR
531 Florian Forster E<lt>octo@verplant.orgE<gt>
533 =cut