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 CPU utilization (I<cpu>)
21 =item
23 Mountpoint usage (I<df>)
25 =item
27 Disk and partition usage/throughput (I<disk>)
29 =item
31 Harddisk temperatures (I<hddtemp>)
33 =item
35 System load averages (I<load>)
37 =item
39 Memory usage (I<memory>)
41 =item
43 MySQL statistics (I<mysql>)
45 =item
47 NFS utilization (I<nfs>, Linux only)
49 =item
51 Network latency (I<ping>)
53 =item
55 Number of processes (I<processes>, Linux only)
57 =item
59 lm_sensors information (I<sensors>, Linux only)
61 =item
63 Serial port traffic (I<serial>, Linux only)
65 =item
67 Swap usage (I<swap>)
69 =item
71 Tape drive usage (I<tape>, Solaris only)
73 =item
75 Network traffic (I<traffic>)
77 =item
79 Number of users logged into the system (I<users>)
81 =back
83 =head1 OPTIONS
85 =over 4
87 =item B<-C> I<E<lt>config-fileE<gt>>
89 Specify an alternative config file. This is the place to go when you wish to
90 change B<collectd>'s behavior. The path may be relative to the current working
91 directory.
93 =item B<-f>
95 Don't fork to the background. I<collectd> will also B<not> close standard file
96 descriptors, detach from the session nor write a pid file. This is mainly
97 thought for 'supervisioning' init replacements such as I<runit>.
99 =item B<-h>
101 Output usage information and exit.
103 =back
105 =head1 RRD FILES
107 The RRD files are created automatically with the following RRAs:
109 RRA:AVERAGE:0.2:6:1500
110 RRA:AVERAGE:0.1:180:1680
111 RRA:AVERAGE:0.1:2160:1520
112 RRA:MIN:0.2:6:1500
113 RRA:MIN:0.1:180:1680
114 RRA:MIN:0.1:2160:1520
115 RRA:MAX:0.2:6:1500
116 RRA:MAX:0.1:180:1680
117 RRA:MAX:0.1:2160:1520
119 Since collectd uses a 10 second I<step> the RRAs contain the following
120 timespans:
122 Resolution | Data points | Timespan
123 -----------+-------------+----------
124 60 seconds | 1500 | 25 hours
125 30 minutes | 1680 | 35 days
126 6 hours | 1520 | 380 days
128 The DS'es depend on the module creating the RRD files:
130 =over 4
132 =item CPU (F<cpu-I<E<lt>numE<gt>>.rrd>)
134 DS:user:COUNTER:25:0:100
135 DS:nice:COUNTER:25:0:100
136 DS:syst:COUNTER:25:0:100
137 DS:idle:COUNTER:25:0:100
138 DS:wait:COUNTER:25:0:100
140 =item Mountpoints (F<df-I<E<lt>pathE<gt>>.rrd>)
142 DS:used:GAUGE:25:0:U
143 DS:free:GAUGE:25:0:U
145 =item Diskstats (F<disk-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
147 DS:rcount:COUNTER:25:0:U
148 DS:rmerged:COUNTER:25:0:U
149 DS:rbytes:COUNTER:25:0:U
150 DS:rtime:COUNTER:25:0:U
151 DS:wcount:COUNTER:25:0:U
152 DS:wmerged:COUNTER:25:0:U
153 DS:wbytes:COUNTER:25:0:U
154 DS:wtime:COUNTER:25:0:U
156 =item Diskstats (F<partition-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
158 DS:rcount:COUNTER:25:0:U
159 DS:rbytes:COUNTER:25:0:U
160 DS:wcount:COUNTER:25:0:U
161 DS:wbytes:COUNTER:25:0:U
163 =item HDD Temperature (F<hddtemp-I<E<lt>majorE<gt>>-I<E<lt>minorE<gt>>.rrd>)
165 DS:value:GAUGE:25:U:U
167 =item System load (F<load.rrd>)
169 DS:shortterm:GAUGE:25:0:100
170 DS:midterm:GAUGE:25:0:100
171 DS:longterm:GAUGE:25:0:100
173 =item Memory usage (F<memory.rrd>)
175 DS:used:GAUGE:25:0:9223372036854775807
176 DS:free:GAUGE:25:0:9223372036854775807
177 DS:buffers:GAUGE:25:0:9223372036854775807
178 DS:cached:GAUGE:25:0:9223372036854775807
180 =item MySQL statistics (F<mysql_commands-I<E<lt>commandE<gt>>.rrd> and F<mysql_handler-I<E<lt>handlerE<gt>>.rrd>)
182 DS:value:COUNTER:25:0:U
184 =item NFSv2 Procedures (F<nfs2_procedures-I<(client|server)>.rrd>)
186 DS:null:COUNTER:25:0:U
187 DS:getattr:COUNTER:25:0:U
188 DS:setattr:COUNTER:25:0:U
189 DS:root:COUNTER:25:0:U
190 DS:lookup:COUNTER:25:0:U
191 DS:readlink:COUNTER:25:0:U
192 DS:read:COUNTER:25:0:U
193 DS:wrcache:COUNTER:25:0:U
194 DS:write:COUNTER:25:0:U
195 DS:create:COUNTER:25:0:U
196 DS:remove:COUNTER:25:0:U
197 DS:rename:COUNTER:25:0:U
198 DS:link:COUNTER:25:0:U
199 DS:symlink:COUNTER:25:0:U
200 DS:mkdir:COUNTER:25:0:U
201 DS:rmdir:COUNTER:25:0:U
202 DS:readdir:COUNTER:25:0:U
203 DS:fsstat:COUNTER:25:0:U
205 =item NFSv3 Procedures (F<nfs3_procedures-I<(client|server)>.rrd>)
207 DS:null:COUNTER:25:0:U
208 DS:getattr:COUNTER:25:0:U
209 DS:setattr:COUNTER:25:0:U
210 DS:lookup:COUNTER:25:0:U
211 DS:access:COUNTER:25:0:U
212 DS:readlink:COUNTER:25:0:U
213 DS:read:COUNTER:25:0:U
214 DS:write:COUNTER:25:0:U
215 DS:create:COUNTER:25:0:U
216 DS:mkdir:COUNTER:25:0:U
217 DS:symlink:COUNTER:25:0:U
218 DS:mknod:COUNTER:25:0:U
219 DS:remove:COUNTER:25:0:U
220 DS:rmdir:COUNTER:25:0:U
221 DS:rename:COUNTER:25:0:U
222 DS:link:COUNTER:25:0:U
223 DS:readdir:COUNTER:25:0:U
224 DS:readdirplus:COUNTER:25:0:U
225 DS:fsstat:COUNTER:25:0:U
226 DS:fsinfo:COUNTER:25:0:U
227 DS:pathconf:COUNTER:25:0:U
228 DS:commit:COUNTER:25:0:U
230 =item Network latency / Ping (F<ping-I<E<lt>hostnameE<gt>>.rrd>)
232 DS:ping:GAUGE:25:0:65535
234 =item Processes (F<processes.rrd>)
236 DS:running:GAUGE:25:0:65535
237 DS:sleeping:GAUGE:25:0:65535
238 DS:zombies:GAUGE:25:0:65535
239 DS:stopped:GAUGE:25:0:65535
240 DS:paging:GAUGE:25:0:65535
241 DS:blocked:GAUGE:25:0:65535
243 =item lm_sensors (F<sensors-I<E<lt>chipE<gt>>-I<E<lt>featureE<gt>>.rrd>)
245 DS:value:GAUGE:25:U:U
247 =item Serial port traffic (F<serial-I<E<lt>numE<gt>>.rrd>)
249 DS:incoming:COUNTER:25:0:U
250 DS:outgoing:COUNTER:25:0:U
252 =item Swap usage (F<swap.rrd>)
254 DS:used:GAUGE:25:0:1099511627776
255 DS:free:GAUGE:25:0:1099511627776
256 DS:cached:GAUGE:25:0:1099511627776
257 DS:resv:GAUGE:25:0:1099511627776
259 =item Tape drive usage (F<tape-I<E<lt>nameE<gt>>.rrd>)
261 DS:rcount:COUNTER:25:0:
262 DS:rmerged:COUNTER:25:0:U
263 DS:rbytes:COUNTER:25:0:U
264 DS:rtime:COUNTER:25:0:U
265 DS:wcount:COUNTER:25:0:U
266 DS:wmerged:COUNTER:25:0:U
267 DS:wbytes:COUNTER:25:0:U
268 DS:wtime:COUNTER:25:0:U
270 =item Network traffic (F<traffic-I<E<lt>nameE<gt>>.rrd>)
272 DS:incoming:COUNTER:25:0:U
273 DS:outgoing:COUNTER:25:0:U
275 =item Users (F<users.rrd>)
277 DS:users:GAUGE:25:0:65535
279 =back
281 =head1 MODES
283 By default collectd starts in the so called I<local mode> which is not very
284 interesting. It collects data and writes it into RRD files in
285 F</var/lib/collectd>. There's nothing special so I won't discuss that in more
286 detail..
288 Please be aware that B<client-, local- and server-mode are mutual exclusive>. A
289 later declaration overrides earlier ones. I<collectd -l -c -s> will start in
290 server-mode. If you want statistics of the server too you will have to start a
291 client process as well.
293 Starting with version 3 collectd may send data over a network. As common with
294 network stuff there are two modes: A I<sender> and a I<listener>. Since one
295 usually has many senders and only a few listeners the sender is also called
296 I<client> (using the option B<-c>) and the listener is called I<server> (using
297 the option B<-s>).
299 Communication happends using the (IPv4) multicast group B<239.192.74.66> and
300 packets sent to the port B<25826/udp>. Every ten seconds the I<client> queries
301 all the modules and sends the collected data to the multicast group. The
302 I<server> subscribes to the multicast group upon startup and then waits for
303 incoming packets. As it receives the packets it checks wether it has the
304 neccessary module and, if found, writes the data to an RRD file, creating
305 directories and files as needed.
307 The multicast group used is within the I<Organization Local Scope> as defined
308 by L<RFC2365>. Addresses within that space are meant to be routed within an AS
309 but not to the outside. However collectd cannot control this and won't try. So
310 it's totally up to you to secure your net.
312 The UDP port used has been checked to not be assigned by the IANA.
314 On multi-homed machines you may need to add a route to the multicast net
315 (B<224.0.0.0/4>) if multicast packages take the wrong interface. The listener
316 on the other hand listens on B<all> interfaces.
318 =head1 SPECIAL PLUGINS
320 =head2 cpufreq
322 This module reads F</sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq> (for
323 the first CPU installed) to get the current CPU frequency. If this file does
324 not exist make sure B<cpufreqd> (L<http://cpufreqd.sourceforge.net/>) or a
325 similar tool is installed.
327 =head2 mysql
329 Requires B<mysqlclient> to be installed. It connects to the database when
330 started and keeps the connection up as long as possible. When the connection is
331 interrupted for whatever reason it will try to re-connect. The syslog will
332 contain loud complaints in case anything goes wrong.
334 This plugin issues C<SHOW STATUS> and evaluates C<Bytes_{received,sent}>,
335 C<Com_*> and C<Handler_*> which correspond to F<traffic-mysql.rrd>,
336 F<mysql_commands-*.rrd> and F<mysql_handler-*.rrd>. Please refer to the B<MySQL
337 reference manual>, I<5.2.4. Server Status Variables> for an explanation of
338 these values.
340 =head2 sensors
342 The B<sensors> module uses lm_sensors to retrieve sensor-values. This means
343 that all the needed modules have to be loaded and lm_sensors has to be
344 configured (most likely by editing F</etc/sensors.conf>. Read
345 L<sensors.conf(5)> for details.
347 The B<lm_sensors> homepage can be found at
348 L<http://secure.netroedge.com/~lm78/>.
350 =head2 hddtemp
352 To get values from B<hddtemp> collectd connects to B<localhost> (127.0.0.1),
353 port B<7634/tcp>. hddtemp has to be running to work correctly. If hddtemp is
354 not running timeouts may appear which may interfere with other statistics..
356 The B<hddtemp> homepage can be found at
357 L<http://www.guzu.net/linux/hddtemp.php>.
359 =head1 SEE ALSO
361 L<collectd.conf(5)>, L<rrdtool(1)>, L<sensors(1)>, L<hddtemp(8)>,
362 L<kstat(3KSTAT)>
364 =head1 AUTHOR
366 Florian Forster E<lt>octo@verplant.orgE<gt>
368 =cut