index e698786a1cb86baafacbc838375d334875e3b10a..96d601ac0cafcd1a8c4bb218be5a440b76e4c084 100644 (file)
--- a/README
+++ b/README
Batterycharge, -current and voltage of ACPI and PMU based laptop
batteries.
+ - curl
+ Parse statistics from websites using regular expressions.
+
+ - bind
+ Name server and resolver statistics from the `statistics-channel'
+ interface of BIND 9.5, 9,6 and later.
+
+ - conntrack
+ Number of nf_conntrack entries.
+
- cpu
CPU utilization: Time spent in the system, user, nice, idle, and related
states.
- cpufreq
CPU frequency (For laptops with speed step or a similar technology)
+ - dbi
+ Executes SQL statements on various databases and interprets the returned
+ data.
+
- df
Mountpoint usage (Basically the values `df(1)' delivers)
- filecount
Count the number of files in directories.
+ - fscache
+ Linux file-system based caching framework statistics.
+
+ - gmond
+ Receive multicast traffic from Ganglia instances.
+
- hddtemp
Harddisk temperatures using hddtempd.
Iptables' counters: Number of bytes that were matched by a certain
iptables rule.
+ - ipmi
+ IPMI (Intelligent Platform Management Interface) sensors information.
+
- ipvs
IPVS connection statistics (number of connections, octets and packets
for each service and destination).
- irq
IRQ counters: Frequency in which certain interrupts occur.
+ - java
+ Integrates a `Java Virtual Machine' (JVM) to execute plugins in Java
+ bytecode. See “Configuring with libjvm” below.
+
- load
System load average over the last 1, 5 and 15 minutes.
Motherboard sensors: temperature, fanspeed and voltage information,
using mbmon(1).
+ - memcachec
+ Query and parse data from a memcache daemon (memcached).
+
- memcached
Statistics of the memcached distributed caching system.
<http://www.danga.com/memcached/>
Read onewire sensors using the owcapu library of the owfs project.
Please read in collectd.conf(5) why this plugin is experimental.
+ - openvpn
+ RX and TX of each client in openvpn-status.log (status-version 2).
+ <http://openvpn.net/index.php/documentation/howto.html>
+
+ - oracle
+ Query data from an Oracle database.
+
- perl
The perl plugin implements a Perl-interpreter into collectd. You can
write your own plugins in Perl and return arbitrary values using this
PostgreSQL database statistics: active server connections, transaction
numbers, block IO, table row manipulations.
+ - powerdns
+ PowerDNS name server statistics.
+
- processes
Process counts: Number of running, sleeping, zombie, ... processes.
+ - protocols
+ Counts various aspects of network protocols such as IP, TCP, UDP, etc.
+
+ - rrdcached
+ RRDtool caching daemon (RRDcacheD) statistics.
+
- sensors
System sensors, accessed using lm_sensors: Voltages, temperatures and
fan rotation speeds.
- swap
Pages swapped out onto harddisk or whatever is called `swap' by the OS..
+ - table
+ Parse table-like structured files.
+
- tail
Follows (tails) logfiles, parses them by lines and submits matched
values.
- tcpconns
Number of TCP connections to specific local and remote ports.
+ - teamspeak2
+ TeamSpeak2 server statistics.
+
+ - ted
+ Plugin to read values from `The Energy Detective' (TED).
+
+ - thermal
+ Linux ACPI thermal zone information.
+
+ - uptime
+ System uptime statistics.
+
- users
Users currently logged in.
you can easily do weird stuff with the plugins we didn't dare think of
;) See collectd-perl(5).
+ - rrdcached
+ Output to round-robin-database (RRD) files using the RRDtool caching
+ daemon (RRDcacheD) - see rrdcached(1). That daemon provides a general
+ implementation of the caching done by the `rrdtool' plugin.
+
- rrdtool
Output to round-robin-database (RRD) files using librrd. See rrdtool(1).
This is likely the most popular destination for such values. Since
Notifications are propagated to plugins written in Perl as well.
See collectd-perl(5).
+ * Value processing can be controlled using the "filter chain" infrastructure
+ and "matches" and "targets". The following plugins are available:
+
+ - match_regex
+ Match values by their identifier based on regular expressions.
+
+ - match_timediff
+ Match values with an invalid timestamp.
+
+ - match_value
+ Select values by their data sources' values.
+
+ - target_notification
+ Create and dispatch a notification.
+
+ - target_replace
+ Replace parts of an identifier using regular expressions.
+
+ - target_set
+ Set (overwrite) entire parts of an identifier.
+
* Miscellaneous plugins:
- uuid
since collectd is programmed multithreaded it benefits from hyperthreading
and multicore processors and makes sure that the daemon isn't idle if only
one plugins waits for an IO-operation to complete.
-
+
* Once set up, hardly any maintenance is necessary. Setup is kept as easy
as possible and the default values should be okay for most users.
* CoreFoundation.framework and IOKit.framework (optional)
For compiling on Darwin in general and the `apple_sensors' plugin in
particular.
+ <http://developer.apple.com/corefoundation/>
+
+ * libclntsh (optional)
+ Used by the `oracle' plugin.
* libcurl (optional)
- If you want to use the `apache', `ascent', or `nginx' plugin.
+ If you want to use the `apache', `ascent', `curl' or `nginx' plugin.
+ <http://curl.haxx.se/>
+
+ * libdbi (optional)
+ Used by the `dbi' plugin to connect to various databases.
+ <http://libdbi.sourceforge.net/>
* libesmtp (optional)
For the `notify_email' plugin.
+ <http://www.stafford.uklinux.net/libesmtp/>
+
+ * libganglia (optional)
+ Used by the `gmond' plugin to process data received from Ganglia.
+
+ * libgcrypt (optional)
+ Used by the `network' plugin for encryption and authentication.
* libhal (optional)
If present, the uuid plugin will check for UUID from HAL.
+ <http://hal.freedesktop.org/>
- * libiptc (optional)
+ * libiptc (optional, if not found a version shipped with this distribution
+ can be used if the Linux kernel headers are available)
For querying iptables counters.
+ <http://netfilter.org/>
+
+ * libjvm (optional)
+ Library that encapsulates the `Java Virtual Machine' (JVM). This library is
+ used by the Java plugin to execute Java bytecode. See “Configuring with
+ libjvm” below.
+
+ * libmemcached (optional)
+ Used by the `memcachec' plugin to connect to a memcache daemon.
* libmysqlclient (optional)
Unsurprisingly used by the `mysql' plugin.
+ <http://dev.mysql.com/>
* libnetlink (optional)
Used, obviously, for the `netlink' plugin.
+ <http://www.linuxfoundation.org/en/Net:Iproute2>
* libnetsnmp (optional)
For the `snmp' plugin.
+ <http://www.net-snmp.org/>
* libnotify (optional)
For the `notify_desktop' plugin.
+ <http://www.galago-project.org/>
- * liboping (optional, if not found a version shipped with this distribution
- can be used)
+ * liboping (optional)
Used by the `ping' plugin to send and receive ICMP packets.
+ <http://verplant.org/liboping/>
* libowcapi (optional)
Used by the `onewire' plugin to read values from onewire sensors (or the
owserver(1) daemon).
+ <http://www.owfs.org/>
* libpcap (optional)
Used to capture packets by the `dns' plugin.
+ <http://www.tcpdump.org/>
* libperl (optional)
Obviously used by the `perl' plugin. The library has to be compiled with
ithread support (introduced in Perl 5.6.0).
+ <http://www.perl.org/>
* libpq (optional)
The PostgreSQL C client library used by the `postgresql' plugin.
+ <http://www.postgresql.org/>
- * librrd (optional; headers and library; rrdtool 1.0 and 1.2 both work fine)
- If built without `librrd' the resulting binary will be `client only', i.e.
- will send its values via multicast and not create any RRD files itself.
- Alternatively you can chose to write CSV-files (Comma Separated Values)
- instead.
+ * librrd (optional)
+ Used by the `rrdtool' and `rrdcached' plugins. The latter requires RRDtool
+ client support which was added after version 1.3 of RRDtool. Versions 1.0,
+ 1.2 and 1.3 are known to work with the `rrdtool' plugin.
+ <http://oss.oetiker.ch/rrdtool/>
* librt, libsocket, libkstat, libdevinfo (optional)
Various standard Solaris libraries which provide system functions.
+ <http://developers.sun.com/solaris/>
* libsensors (optional)
To read from `lm_sensors', see the `sensors' plugin.
+ <http://www.lm-sensors.org/>
- * libstatgrab (optional) may be used to collect statistics on systems other
- than Linux and/or Solaris. Note that CPU- and disk-statistics, while being
- provided by this library, are not supported in collectd right now..
- <http://www.i-scream.org/libstatgrab/>
+ * libstatgrab (optional)
+ Used by various plugins to collect statistics on systems other than Linux
+ and/or Solaris.
+ <http://www.i-scream.org/libstatgrab/>
* libupsclient/nut (optional)
For the `nut' plugin which queries nut's `upsd'.
+ <http://networkupstools.org/>
* libvirt (optional)
Collect statistics from virtual machines.
+ <http://libvirt.org/>
* libxml2 (optional)
Parse XML data. This is needed for the `ascent' and `libvirt' plugins.
+ <http://xmlsoft.org/>
* libxmms (optional)
+ <http://www.xmms.org/>
Configuring / Compiling / Installing
`./configure && make && make install'. For detailed, generic instructions
see INSTALL. For a complete list of configure options and their description,
run `./configure --help'.
-
+
By default, the configure script will check for all build dependencies and
disable all plugins whose requirements cannot be fulfilled (any other plugin
will be enabled). To enable a plugin, install missing dependencies (see
section `Prerequisites' above) and rerun `configure'. If you specify the
`--enable-<plugin>' configure option, the script will fail if the depen-
- dencies for the specified plugin are not met. If you specify the
- `--disable-<plugin>' configure option, the plugin will not be built. Both
- options are meant for package maintainers and should not be used in everyday
- situations.
+ dencies for the specified plugin are not met. In that case you can force the
+ plugin to be built using the `--enable-<plugin>=force' configure option.
+ This will most likely fail though unless you're working in a very unusual
+ setup and you really know what you're doing. If you specify the
+ `--disable-<plugin>' configure option, the plugin will not be built. If you
+ specify the `--enable-all-plugins' or `--disable-all-plugins' configure
+ options, all plugins will be enabled or disabled respectively by default.
+ Explicitly enabling or disabling a plugin overwrites the default for the
+ specified plugin. These options are meant for package maintainers and should
+ not be used in everyday situations.
By default, collectd will be installed into `/opt/collectd'. You can adjust
this setting by specifying the `--prefix' configure option - see INSTALL for
prefixed to all installation directories. This might be useful when creating
packages for collectd.
+Configuring with libjvm
+-----------------------
+
+ To determine the location of the required files of a Java installation is not
+ an easy task, because the locations vary with your kernel (Linux, SunOS, …)
+ and with your architecture (x86, SPARC, …) and there is no ‘java-config’
+ script we could use. Configuration of the JVM library is therefore a bit
+ tricky.
+
+ The easiest way to use the `--with-java=$JAVA_HOME' option, where
+ `$JAVA_HOME' is usually something like:
+ /usr/lib/jvm/java-1.5.0-sun-1.5.0.14
+
+ The configure script will then use find(1) to look for the following files:
+
+ - jni.h
+ - jni_md.h
+ - libjvm.so
+
+ If found, appropriate CPP-flags and LD-flags are set and the following
+ library checks succeed.
+
+ If this doesn't work for you, you have the possibility to specify CPP-flags,
+ C-flags and LD-flags for the ‘Java’ plugin by hand, using the following three
+ (environment) variables:
+
+ - JAVA_CPPFLAGS
+ - JAVA_CFLAGS
+ - JAVA_LDFLAGS
+
+ For example (shortened for demonstration purposes):
+
+ ./configure JAVA_CPPFLAGS="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux"
+
+ Adding "-ljvm" to the JAVA_LDFLAGS is done automatically, you don't have to
+ do that.
Crosscompiling
--------------
that the compiled binary actually behaves as it should, but since NANs
are likely never passed to the libm you have a good chance to be lucky.
+ Likewise, collectd needs to know the layout of doubles in memory, in order
+ to craft uniform network packets over different architectures. For this, it
+ needs to know how to convert doubles into the memory layout used by x86. The
+ configure script tries to figure this out by compiling and running a few
+ small test programs. This is of course not possible when cross-compiling.
+ You can use the `--with-fp-layout' option to tell the configure script which
+ conversion method to assume. Valid arguments are:
+
+ * `nothing' (12345678 -> 12345678)
+ * `endianflip' (12345678 -> 87654321)
+ * `intswap' (12345678 -> 56781234)
+
Contact
-------
- For questions, bugreports, development information and basically all other
- concerns please send an email to collectd's mailinglist at
+ For questions, bug reports, development information and basically all other
+ concerns please send an email to collectd's mailing list at
<collectd at verplant.org>.
For live discussion and more personal contact visit us in IRC, we're in
Sebastian tokkee Harl <sh at tokkee.org>,
and many contributors (see `AUTHORS').
- Please send bugreports and patches to the mailinglist, see `Contact' above.
+ Please send bug reports and patches to the mailing list, see `Contact'
+ above.