Collectd Explained

collectd
Author:Florian Forster
Programming Language:C
Operating System:Any Unix-like
Language:English
Genre:Capacity planning
License:MIT License & GNU General Public License, version 2

collectd is a Unix daemon that collects, transfers and stores performance data of computers and network equipment. The acquired data is meant to help system administrators maintain an overview over available resources to detect existing or looming bottlenecks.

The first version of the daemon was written in 2005 by Florian Forster and has been further developed as free open-source project. Other developers have written improvements and extensions to the software that have been incorporated into the project.[1] Most files of the source code are licensed under the terms of the GNU General Public License, version 2 (GPLv2), the remaining files are licensed under other open source licenses.[2]

Operation

collectd uses a modular design: The daemon itself only implements infrastructure for filtering and relaying data as well as auxiliary functions and requires very few resources, it even runs on OpenWrt-powered embedded devices. Data acquisition and storage is handled by plug-ins in the form of shared objects.[3] This way code specific to one operating system is mostly kept out of the actual daemon. Plug-ins may have their own dependencies, for example a specific operating system or software libraries. Other tasks performed by the plug-ins include processing of “notifications” and log messages.

Data acquisition plug-ins, called "read plug-ins" in collectd's documentation, can be roughly put into three categories:

So called "write plug-ins" offer the possibility to store the collected data on disk using RRD- or CSV-files, or to send data over the network to a remote instance of the daemon.

Networking

Included in the source code distribution of collectd is the so-called "network" plug-in, which can be used to send and receive data to/from other instances of the daemon. In a typical networked setup the daemon would run on each monitored host (called "clients") with the network plug-in configured to send collected data to one or more network addresses. On one or more so called "servers" the same daemon would run but with a different configuration, so that the network plug-in receives data instead of sending it. Often the RRDtool-plug-in is used on servers to store the performance data.[4]

The plug-in uses a binary network protocol over UDP. Both, IPv4 and IPv6 are supported as network layer. It is possible to use unicast (point-to-point) and multicast (point-to-group) addressing. Authentication and encryption has been added to the protocol with version 4.7.0, released in May 2009.

See also

External links

Notes and References

  1. Web site: Git - collectd.git/blob - AUTHORS . Git.verplant.org . April 11, 2016 . dead . https://web.archive.org/web/20160410121211/http://git.verplant.org/?p=collectd.git%3Ba%3Dblob%3Bhb%3Dmaster%3Bf%3DAUTHORS . April 10, 2016 .
  2. Web site: Copyright . April 8, 2009 . dead . https://web.archive.org/web/20110605105512/http://packages.debian.org/changelogs/pool/main/c/collectd/current/copyright . June 5, 2011 .
  3. Web site: Features – collectd – The system statistics collection daemon . Collectd.org . April 11, 2016.
  4. Web site: Networking introduction - collectd Wiki . Collectd.org . 2015-02-19 . 2016-04-11.