DNS traffic: Query types, response codes, opcodes and traffic/octets
transferred.
- - dpdk
+ - dpdkstat
Collect DPDK interface statistics.
See docs/BUILD.dpdkstat.md for detailed build instructions.
+ This plugin should be compiled with compiler defenses enabled, for
+ example -fstack-protector.
+
- drbd
Collect individual drbd resource statistics.
- gps
Monitor gps related data through gpsd.
- - grpc
- Send and receive values over the network using the gRPC framework.
+ - gpu_nvidia
+ Monitor NVIDIA GPU statistics available through NVML.
- hddtemp
Hard disk temperatures using hddtempd.
hugepages can be found here:
https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt.
+ This plugin should be compiled with compiler defenses enabled, for
+ example -fstack-protector.
+
+ - intel_pmu
+ The intel_pmu plugin reads performance counters provided by the Linux
+ kernel perf interface. The plugin uses jevents library to resolve named
+ events to perf events and access perf interface.
+
+ - intel_rdt
+ The intel_rdt plugin collects information provided by monitoring features
+ of Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring
+ Technology (CMT), Memory Bandwidth Monitoring (MBM). These features
+ provide information about utilization of shared resources like last level
+ cache occupancy, local memory bandwidth usage, remote memory bandwidth
+ usage, instructions per clock.
+ <https://01.org/packet-processing/cache-monitoring-technology-memory-bandwidth-monitoring-cache-allocation-technology-code-and-data>
+
- interface
Interface traffic: Number of octets, packets and errors for each
interface.
Motherboard sensors: temperature, fan speed and voltage information,
using mbmon(1).
+ - mcelog
+ Monitor machine check exceptions (hardware errors detected by hardware
+ and reported to software) reported by mcelog and generate appropriate
+ notifications when machine check exceptions are detected.
+
- md
Linux software-RAID device information (number of active, failed, spare
and missing disks).
Reads values from Modbus/TCP enabled devices. Supports reading values
from multiple "slaves" so gateway devices can be used.
- - mqtt
- Publishes and subscribes to MQTT topics.
-
- multimeter
Information provided by serial multimeters, such as the `Metex
M-4650CR'.
- netapp
Plugin to query performance values from a NetApp storage system using the
- “Manage ONTAP” SDK provided by NetApp.
+ “Manage ONTAP” SDK provided by NetApp.
- netlink
Very detailed Linux network interface and routing statistics. You can get
plugin of choice for that.
- nfs
- NFS Procedures: Which NFS command were called how often. Only NFSv2 and
- NFSv3 right now.
+ NFS Procedures: Which NFS command were called how often.
- nginx
Collects statistics from `nginx' (speak: engine X), a HTTP and mail
- oracle
Query data from an Oracle database.
+ - ovs_events
+ The plugin monitors the link status of Open vSwitch (OVS) connected
+ interfaces, dispatches the values to collectd and sends the notification
+ whenever the link state change occurs in the OVS database. It requires
+ YAJL library to be installed.
+ Detailed instructions for installing and setting up Open vSwitch, see
+ OVS documentation.
+ <http://openvswitch.org/support/dist-docs/INSTALL.rst.html>
+
+ - ovs_stats
+ The plugin collects the statistics of OVS connected bridges and
+ interfaces. It requires YAJL library to be installed.
+ Detailed instructions for installing and setting up Open vSwitch, see
+ OVS documentation.
+ <http://openvswitch.org/support/dist-docs/INSTALL.rst.html>
+
+ - pcie_errors
+ Read errors from PCI Express Device Status and AER extended capabilities.
+ <https://www.design-reuse.com/articles/38374/pcie-error-logging-and-handling-on-a-typical-soc.html>
+
- perl
The perl plugin implements a Perl-interpreter into collectd. You can
write your own plugins in Perl and return arbitrary values using this
Acts as a StatsD server, reading values sent over the network from StatsD
clients and calculating rates and other aggregates out of these values.
+ - sysevent
+ Listens to rsyslog events and submits matched values.
+
- swap
Pages swapped out onto hard disk or whatever is called `swap' by the OS..
CPU, memory, disk and network I/O statistics from virtual machines.
- vmem
- Virtual memory statistics, e. g. the number of page-ins/-outs or the
+ Virtual memory statistics, e.g. the number of page-ins/-outs or the
number of pagefaults.
- vserver
- amqp
Sends JSON-encoded data to an Advanced Message Queuing Protocol (AMQP)
- server, such as RabbitMQ.
+ 0.9.1 server, such as RabbitMQ.
+
+ - amqp1
+ Sends JSON-encoded data to an Advanced Message Queuing Protocol (AMQP)
+ 1.0 server, such as Qpid Dispatch Router or Apache Artemis Broker.
- csv
Write to comma separated values (CSV) files. This needs lots of
diskspace but is extremely portable and can be analysed with almost
every program that can analyse anything. Even Microsoft's Excel..
+ - grpc
+ Send and receive values over the network using the gRPC framework.
+
- lua
It's possible to implement write plugins in Lua using the Lua
plugin. See collectd-lua(5) for details.
+ - mqtt
+ Publishes and subscribes to MQTT topics.
+
- network
Send the data to a remote host to save the data somehow. This is useful
for large setups where the data should be saved by a dedicated machine.
updates to the files and write a bunch of updates at once, which lessens
system load a lot.
+ - snmp_agent
+ Receives and handles queries from SNMP master agent and returns the data
+ collected by read plugins. Handles requests only for OIDs specified in
+ configuration file. To handle SNMP queries the plugin gets data from
+ collectd and translates requested values from collectd's internal format
+ to SNMP format.
+
- unixsock
One can query the values from the unixsock plugin whenever they're
needed. Please read collectd-unixsock(5) for a description on how that's
- write_mongodb
Sends data to MongoDB, a NoSQL database.
+ - write_prometheus
+ Publish values using an embedded HTTP server, in a format compatible
+ with Prometheus' collectd_exporter.
+
- write_redis
Sends the values to a Redis key-value database server.
Sends data to Sensu, a stream processing and monitoring system, via the
Sensu client local TCP socket.
+ - write_syslog
+ Sends data in syslog format, using TCP, where the message
+ contains the metric in human or JSON format.
+
- write_tsdb
Sends data OpenTSDB, a scalable no master, no shared state time series
database.
* Usual suspects: C compiler, linker, preprocessor, make, ...
+ collectd makes use of some common C99 features, e.g. compound literals and
+ mixed declarations, and therefore requires a C99 compatible compiler.
+
+ On Debian and Ubuntu, the "build-essential" package should pull in
+ everything that's necessary.
+
* A POSIX-threads (pthread) implementation.
Since gathering some statistics is slow (network connections, slow devices,
etc) collectd is parallelized. The POSIX threads interface is being
used and should be found in various implementations for hopefully all
platforms.
+ * When building from the Git repository, flex (tokenizer) and bison (parser
+ generator) are required. Release tarballs include the generated files – you
+ don't need these packages in that case.
+
* aerotools-ng (optional)
Used by the `aquaero' plugin. Currently, the `libaquaero5' library, which
is used by the `aerotools-ng' toolkit, is not compiled as a shared object
particular.
<http://developer.apple.com/corefoundation/>
+ * CUDA (optional)
+ Used by the `gpu_nvidia' plugin
+ <https://developer.nvidia.com/cuda-downloads>
+
* libatasmart (optional)
Used by the `smart' plugin.
<http://git.0pointer.de/?p=libatasmart.git>
Used by the `gps' plugin.
<http://developer.berlios.de/projects/gpsd/>
- * libhal (optional)
- If present, the `uuid' plugin will check for UUID from HAL.
- <http://hal.freedesktop.org/>
-
* libi2c-dev (optional)
Used for the plugin `barometer', provides just the i2c-dev.h header file
for user space i2c development.
For querying iptables counters.
<http://netfilter.org/>
+ * libjevents (optional)
+ The jevents library is used by the `intel_pmu' plugin to access the Linux
+ kernel perf interface.
+ Note: the library should be build with -fPIC flag to be linked with
+ intel_pmu shared object correctly.
+ <https://github.com/andikleen/pmu-tools>
+
* libjvm (optional)
Library that encapsulates the `Java Virtual Machine' (JVM). This library is
used by the `java' plugin to execute Java bytecode.
Used by the `memcachec' plugin to connect to a memcache daemon.
<http://tangent.org/552/libmemcached.html>
+ * libmicrohttpd (optional)
+ Used by the write_prometheus plugin to run an http daemon.
+ <http://www.gnu.org/software/libmicrohttpd/>
+
* libmnl (optional)
Used by the `netlink' plugin.
<http://www.netfilter.org/projects/libmnl/>
This library is part of the “Manage ONTAP SDK” published by NetApp.
* libnetsnmp (optional)
- For the `snmp' plugin.
+ For the `snmp' and 'snmp_agent' plugins.
+ <http://www.net-snmp.org/>
+
+ * libnetsnmpagent (optional)
+ Required for the 'snmp_agent' plugin.
<http://www.net-snmp.org/>
* libnotify (optional)
The PostgreSQL C client library used by the `postgresql' plugin.
<http://www.postgresql.org/>
+ * libpqos (optional)
+ The PQoS library for Intel(R) Resource Director Technology used by the
+ `intel_rdt' plugin.
+ <https://github.com/01org/intel-cmt-cat>
+
* libprotobuf, protoc 3.0+ (optional)
Used by the `grpc' plugin to generate service stubs and code to handle
network packets of collectd's protobuf-based network protocol.
are supported.
<http://www.python.org/>
+ * libqpid-proton (optional)
+ Used by the `amqp1' plugin for AMQP 1.0 connections, for example to
+ Qdrouterd.
+ <http://qpid.apache.org/>
+
* librabbitmq (optional; also called “rabbitmq-c”)
- Used by the `amqp' plugin for AMQP connections, for example to RabbitMQ.
+ Used by the `amqp' plugin for AMQP 0.9.1 connections, for example to
+ RabbitMQ.
<http://hg.rabbitmq.com/rabbitmq-c/>
* librdkafka (optional; also called “rdkafka”)
<http://www.xmms.org/>
* libyajl (optional)
- Parse JSON data. This is needed for the `ceph', `curl_json' and
- `log_logstash' plugins.
+ Parse JSON data. This is needed for the `ceph', `curl_json', 'ovs_events',
+ 'ovs_stats' and `log_logstash' plugins.
<http://github.com/lloyd/yajl>
* libvarnish (optional)
------------------------------------
To configure, build and install collectd with the default settings, run
- `./configure && make && make install'. For detailed, generic instructions
- see INSTALL. For a complete list of configure options and their description,
- run `./configure --help'.
+ `./configure && make && make 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
- flex
- bison
- libtool
-- libtool-ltdl
- pkg-config
The `build.sh' script takes no arguments.
+
+Building on Windows
+-----------------------------------------------
+
+Collectd can be built on Windows using Cygwin, and the result is a binary that
+runs natively on Windows. That is, Cygwin is only needed for building, not running,
+collectd.
+
+You will need to install the following Cygwin packages:
+- automake
+- bison
+- flex
+- git
+- libtool
+- make
+- mingw64-x86_64-dlfcn
+- mingw64-x86_64-gcc-core
+- mingw64-x86_64-zlib
+- pkg-config
+
+To build, just run the `build.sh' script in your Cygwin terminal. By default, it installs
+to "C:/Program Files/collectd". You can change the location by setting the INSTALL_DIR
+variable:
+
+$ export INSTALL_DIR="C:/some/other/install/directory"
+$ ./build.sh
+
+or:
+
+$ INSTALL_DIR="C:/some/other/install/directory" ./build.sh
+
+
Crosscompiling
--------------
* `endianflip' (12345678 -> 87654321)
* `intswap' (12345678 -> 56781234)
+
Contact
-------
- For questions, bug reports, development information and basically all other
- concerns please send an email to collectd's mailing list at
+ Please use GitHub to report bugs and submit pull requests:
+ <https://github.com/collectd/collectd/>.
+ See CONTRIBUTING.md for details.
+
+ For questions, development information and basically all other concerns please
+ send an email to collectd's mailing list at
<list at collectd.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 use GitHub reporting bugs and submitting pull requests.
- See CONTRIBUTING.md for details.