Collectd
Encyclopedia
collectd is a UNIX-daemon which 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 in order 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
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

. Other developers have written improvements and extensions to the software that have been incorporated into the project. Most files of the source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 are licensed under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

, version 2 (GPLv2), the remaining files are licensed under other open source licenses.

Operation

collectd uses a modular design
Modular design
Modular design, or "modularity in design" is an approach that subdivides a system into smaller parts that can be independently created and then used in different systems to drive multiple functionalities...

: The daemon itself only implements infrastructure for filtering and relaying data as well as auxiliary functions. Data acquisition and storage is handled by plug-ins in the form of shared objects. This way code specific to one operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 is mostly kept out of the actual daemon. Plug-ins may have own dependencies, for example a specific operating system or software libraries. Other tasks performed by the plug-ins includes 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:
  • Operating system plug-ins collect information such as CPU-utilization, memory usage, or number of users logged into a system. These plug-ins usually need to be ported
    Porting
    In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...

     to each operating system. Not all such plug-ins are available for all operating systems.
  • Application plug-ins collect performance data from or about an application running on the same or a remote computer, for example the Apache HTTP Server
    Apache HTTP Server
    The Apache HTTP Server, commonly referred to as Apache , is web server software notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server software to surpass the 100 million website milestone...

    . These plug-ins often use software libraries but are usually otherwise operating system independent.
  • Generic plug-ins offer basic functions which the user can use to perform specific tasks. Examples are querying of network equipment using SNMP
    Simple Network Management Protocol
    Simple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks, and more." It is used mostly in network management systems to monitor...

     or execution of custom programs or scripts.


So called “write plug-ins” offer the possibility to store the collected data on disk using RRD
RRDtool
RRDtool aims to handle time-series data like network bandwidth, temperatures, CPU load, etc...

- or CSV
Comma-separated values
A comma-separated values file stores tabular data in plain-text form. As a result, such a file is easily human-readable ....

-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.

The plug-in uses a binary network protocol over UDP
User Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

. Both, IPv4
IPv4
Internet Protocol version 4 is the fourth revision in the development of the Internet Protocol and the first version of the protocol to be widely deployed. Together with IPv6, it is at the core of standards-based internetworking methods of the Internet...

 and IPv6
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...

 are supported as network layer
Network layer
The network layer is layer 3 of the seven-layer OSI model of computer networking.The network layer is responsible for packet forwarding including routing through intermediate routers, whereas the data link layer is responsible for media access control, flow control and error checking.The network...

. It is possible to use unicast
Unicast
right|200pxIn computer networking, unicast transmission is the sending of messages to a single network destination identified by a unique address.-Addressing methodologies:...

 (point-to-point) and multicast
Multicast
In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source creating copies automatically in other network elements, such as routers, only when the topology of the network requires...

 (point-to-group) addressing. Authentication and encryption has been added to the protocol with version 4.7.0, released in May 2009.

See also

  • Cacti
  • Munin
    Munin (Network Monitoring Application)
    Munin is a network/system monitoring application that presents output in graphs through a web interface. Its emphasis is on plug and play capabilities. About 500 monitoring plugins are currently available. Using Munin you can monitor the performance of your computers, networks, SANs, and...

  • Multi Router Traffic Grapher
    Multi Router Traffic Grapher
    The Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form....

     (MRTG)
  • N2rrd
    N2rrd
    N2RRD is a Nagios add-on tool, which stores performance data generated by Nagios plugins into a Round-Robin-Database . The package also includes the display tool rrd2graph to view data stored in an RRD database.Optionally data stored by N2RRD can also be viewed by any RRD database graph frontend e.g...

  • Observium
    Observium
    Observium is a PHP/MySQL-based Network Observation and Monitoring System which collects data from devices using SNMP and presents it via a web interface. It makes heavy use of the RRDtool package. Observium has a number of simple core design goals driving its development: minimum interaction,...

     - Provides navigation frontend integration
  • Pandora FMS
  • Zabbix
    Zabbix
    Zabbix is a network management system created by Alexei Vladishev. It is designed to monitor and track the status of various network services, servers, and other network hardware....

  • Comparison of network monitoring systems
    Comparison of network monitoring systems
    This is a comparison of some notable network monitoring systems.- Legend :Product Name : The name of the software, linked to its Wikipedia article...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK