Merge branch 'master' into collectd-4
[collectd.git] / README
1  collectd - System information collection daemon
2 =================================================
3 http://collectd.org/
4
5 About
6 -----
7
8   collectd is a small daemon which collects statistics about a computer's
9   usage and writes then into RRD files.
10
11
12 Features
13 --------
14
15   * collectd is able to collect the following data:
16
17     - Apache server utilization
18       (Number of bytes transfered, number of requests handled and detailed
19       scoreboard statistics)
20
21     - APC UPS Daemon
22       (UPS charge, load, input/output/battery voltage, etc)
23
24     - Apple Sensors
25       (Temperature, fanspeed and voltage sensors of apple computers)
26
27     - Battery
28       (Charge, current and charge of ACPI and PMU based batteries)
29
30     - CPU utilization
31       (Time spent in system, user, nice and idle)
32
33     - CPU frequency
34       (For laptops with speed step or a similar technology)
35
36     - Mountpoint usage
37       (Basically the values `df(1)' delivers)
38
39     - Disk utilization
40       (Sectors read/written, number of read/write actions, time spent doing IO)
41
42     - DNS traffic
43       (query types, response codes, opcodes and traffic)
44
45     - Email statistics
46       (count, traffic, spam scores and checks)
47
48     - Entropy available
49       (Amount of entropy available to the system)
50
51     - Exec
52       (Values gatheres by a custom program or script)
53
54     - Harddisk temperatures
55       (Uhm, yeah, temperature of harddisks that is ;)
56
57     - Interface traffic
58       (Number of octets, packets and errors for each interface)
59
60     - Iptables' counters
61       (Number of bytes that were matched by a certain iptables rule)
62
63     - IRQ counters
64       (Frequency in which certain interrupts occur)
65
66     - System load
67       (Load average over the last 1, 5 and 15 minutes)
68
69     - mbmon - motherboard monitoring
70       (temperature, fanspeed and voltage information)
71
72     - Memory utilization
73       (Memory occupied by running processes, page cache, buffer cache and free)
74
75     - Multimeter
76       (Information provided by serial multimeters, such as the «Metex M-4650CR»)
77
78     - MySQL server statistics
79       (Commands issued, handlers triggered, thread usage, query cache
80       utilization and traffic sent/received)
81
82     - NFS Procedures
83       (Which NFS command were called how often. Only NFSv2 and NFSv3 right now)
84
85     - NTP Daemon
86       (Local clock drift, offset to peers, etc)
87
88     - Network UPS tools
89       (UPS current, voltage, power, charge, utilisation, temperature, etc.)
90
91     - Ping latency
92       (Time to reach the default gateway or another given host)
93
94     - Process counts
95       (Number of running, sleeping, zombie, ... processes)
96
97     - Sensors
98       (lm_sensors voltages, temperatures and fan rotation speeds)
99
100     - Serial
101       (RX and TX of serial interfaces)
102
103     - Swap
104       (Pages swapped out onto harddisk or whatever is called `swap' by the OS..)
105
106     - Tape
107       (Read and write bytes and operations on tape devices)
108
109     - Users
110       (Currently logged in users)
111
112     - VServer
113       (System ressources used by vservers)
114
115     - Wireless
116       (Link quality of wireless cards)
117
118   * Output to CSV- and RRD-files, send values over the network and/or provide a
119     generic interface for use by other means, e. g. a Nagios-plugin.
120
121   * Performance: Running as a daemon collectd doesn't spend much time in
122     startup. Since collectd links against libping, librrd and libsensors it
123     doesn't need to start any other processes.
124
125   * Hardly any maintenance neccessary and setup is trivial.
126
127   * Extremely easy and failsafe network operation possible.
128
129
130 Operation
131 ---------
132
133   * collectd's configuration file can be found at `sysconfdir'/collectd.conf.
134     Run `collectd -h' for a list of builtin defaults. See `collectd.conf(5)'
135     for a list of options and a syntax description.
136
137   * When the `csv' or `rrdtool' plugins are loaded they'll write the values to
138     files. The usual place for these files is beneath `/var/lib/collectd'.
139
140   * When using some of the plugins, collectd needs to run as user root, since only
141     root can do certain thing, such as craft ICMP packages needed to ping other
142     hosts. collectd should NOT be installed setuid root since it can be used to
143     overwrite valuable files..
144
145   * Sample scripts to generate graphs reside in `contrib/' in the source
146     package or somewhere near `/usr/share/doc/collectd' in most distributions.
147     Please be aware that those script are meant as a starting point for your
148     own experiments.. Some of them require the `RRDs' Perl module.
149     (`librrds-perl' on Debian)
150
151   * The RRAs of the automatically created RRD files depend on the `step'
152     and `heartbeat' settings given. For a list of the default RRAs take a look
153     in the collectd(1) manpage.
154
155
156 Prerequisites
157 -------------
158
159   To compile collectd from source you will need:
160
161   * Usual suspects: C compiler, linker, preprocessor, make, ...
162
163   * A POSIX-threads (pthread) implementation.
164     Since gathering some statistics is slow (network connections, slow devices,
165     etc) the collectd is parellelized. The POSIX threads interface is being
166     used and should be found in various implementations for hopefully all
167     platforms.
168
169   * libcurl (optional)
170     If you want to use the `apache' plugin
171
172   * libiptc (optional)
173     For querying iptables counters.
174
175   * libmysqlclient (optional)
176
177   * liboping (optional, if not found a version shipped with this distribution
178     can be used)
179     Used by the `ping' plugin to send and receive ICMP packets.
180
181   * libpcap (optional)
182     Used to capture packets by the `dns' plugin.
183
184   * librrd (optional; headers and library; rrdtool 1.0 and 1.2 both work fine)
185     If built without `librrd' the resulting binary will be `client only', i.e.
186     will send it's values via multicast and not create any RRD files itself.
187     Alternatively you can chose to write CSV-files (Comma Seperated Values)
188     instead.
189
190   * libsensors (optional)
191     To read from `lm_sensors'.
192
193   * libstatgrab may be used to collect statistics on systems other than Linux
194     and/or Solaris. Note that CPU- and disk-statistics, while being provided
195     by this library, are not supported in collectd right now..
196     <http://www.i-scream.org/libstatgrab/> 
197
198   * libupsclient/nut (optional)
199     For the `nut' plugin which queries nut's `upsd'.
200
201   * librt, libsocket, libkstat, libdevinfo
202     Various standard Solaris libraries which provide system functions.
203
204   * CoreFoundation.framework and IOKit.framework
205     For compiling on darwin in general and the `apple_sensors' plugin in
206     particular.
207
208 Author
209 ------
210
211   Florian octo Forster <octo at verplant.org>
212