collectd is a daemon, which collects system data and statistics and it may send them over the network to a back-end data. Under CentOS Stream 9 the collectd package has been removed from the CentOS Stream 9 repositories. Special Interest Groups (SIG), which is a group of CentOS Community, provides and supports multiple small repositories for different Linux utilities and tools. One of the SIG‘s repositories is OpsTools, which provides a package for collectd daemon and multiple collectd modules packed in separate packages.
To use collectd under CentOS Stream 9 a CentOS Community repository should be installed – OpsTools.
Steps to install and use the collectd daemon:
dnf install -y centos-release-opstools dnf install -y collectd
It’s worth noting that all the Linux distribution, which tries to track and be compatible with Red Hat Enterprise Linux like Rocky Linux will have the same problem with missing collectd package. So the SIG OpsTools repository should be also possible to install under all of these Linux distributions.
Here is the output of installing the above packages under CentOS Stream 9:
[root@srv ~]# dnf install -y centos-release-opstools Last metadata expiration check: 0:00:23 ago on Wed 22 Jun 2022 02:05:19 PM UTC. Dependencies resolved. ====================================================================================== Package Architecture Version Repository Size ====================================================================================== Installing: centos-release-opstools noarch 1-12.el9s extras-common 8.4 k Transaction Summary ====================================================================================== Install 1 Package Total download size: 8.4 k Installed size: 1.7 k Downloading Packages: centos-release-opstools-1-12.el9s.noarch.rpm 62 kB/s | 8.4 kB 00:00 -------------------------------------------------------------------------------------- Total 22 kB/s | 8.4 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : centos-release-opstools-1-12.el9s.noarch 1/1 Verifying : centos-release-opstools-1-12.el9s.noarch 1/1 Installed: centos-release-opstools-1-12.el9s.noarch Complete! [root@srv ~]# dnf install -y collectd CentOS Stream 9 - OpsTools - collectd 12 kB/s | 41 kB 00:03 Dependencies resolved. ====================================================================================== Package Architecture Version Repository Size ====================================================================================== Installing: collectd x86_64 5.12.0-7.el9s centos-opstools 673 k Installing dependencies: yajl x86_64 2.1.0-20.el9 appstream 38 k Transaction Summary ====================================================================================== Install 2 Packages Total download size: 711 k Installed size: 2.2 M Downloading Packages: (1/2): yajl-2.1.0-20.el9.x86_64.rpm 179 kB/s | 38 kB 00:00 (2/2): collectd-5.12.0-7.el9s.x86_64.rpm 1.1 MB/s | 673 kB 00:00 -------------------------------------------------------------------------------------- Total 594 kB/s | 711 kB 00:01 CentOS Stream 9 - OpsTools - collectd 1.0 MB/s | 1.0 kB 00:00 Importing GPG key 0x51BC2A13: Userid : "CentOS OpsTools SIG (https://wiki.centos.org/SpecialInterestGroup/OpsTools) <security@centos.org>" Fingerprint: 7872 8176 9AD7 3878 85EE A649 4FD9 5327 51BC 2A13 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-OpsTools Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : yajl-2.1.0-20.el9.x86_64 1/2 Installing : collectd-5.12.0-7.el9s.x86_64 2/2 Running scriptlet: collectd-5.12.0-7.el9s.x86_64 2/2 Verifying : collectd-5.12.0-7.el9s.x86_64 1/2 Verifying : yajl-2.1.0-20.el9.x86_64 2/2 Installed: collectd-5.12.0-7.el9s.x86_64 yajl-2.1.0-20.el9.x86_64 Complete!
collectd default configuration
The default configuration comments all the lines in /etc/collectd.conf except one, which includes all the files under /etc/collectd.d/. So the logic is to have a separate file for each collectd plugin. By default, there are 5 default configuration files activating 5 plugins:
[root@srv ~]# ls -altr /etc/collectd.d/ total 32 -rw-r--r--. 1 root root 18 Feb 1 09:44 90-default-plugins-syslog.conf -rw-r--r--. 1 root root 18 Feb 1 09:44 90-default-plugins-memory.conf -rw-r--r--. 1 root root 16 Feb 1 09:44 90-default-plugins-load.conf -rw-r--r--. 1 root root 21 Feb 1 09:44 90-default-plugins-interface.conf -rw-r--r--. 1 root root 15 Feb 1 09:44 90-default-plugins-cpu.conf drwxr-xr-x. 2 root root 4096 Jun 22 19:48 . drwxr-xr-x. 91 root root 4096 Jun 22 19:48 ..
Installing only collectd won’t install output plugin, which is responsible for sending the collected metrics and statistics to the back-end. Plugins collect data locally from the system and a plugin or plugins send data remotely to the back-end database like rrd files (locally), influxdb, graphite, prometheus, MySQL and more and then using Grafana or other web software to create charts. The simple setup is to use rrd files locally:
root@srv ~]# dnf install -y collectd-rrdtool Last metadata expiration check: 5:42:31 ago on Wed 22 Jun 2022 02:06:00 PM UTC. Dependencies resolved. ====================================================================================== Package Arch Version Repository Size ====================================================================================== Installing: collectd-rrdtool x86_64 5.12.0-7.el9s centos-opstools 22 k Installing dependencies: cairo x86_64 1.17.4-7.el9 appstream 660 k dejavu-sans-mono-fonts noarch 2.37-18.el9 baseos 467 k fontconfig x86_64 2.14.0-1.el9 appstream 297 k freetype x86_64 2.10.4-9.el9 baseos 388 k fribidi x86_64 1.0.10-6.el9.2 appstream 85 k graphite2 x86_64 1.3.14-9.el9 baseos 95 k harfbuzz x86_64 2.7.4-5.el9 baseos 625 k libX11 x86_64 1.7.0-7.el9 appstream 647 k libX11-common noarch 1.7.0-7.el9 appstream 206 k libXau x86_64 1.0.9-8.el9 appstream 31 k libXext x86_64 1.3.4-8.el9 appstream 40 k libXft x86_64 2.3.3-8.el9 appstream 62 k libXrender x86_64 0.9.10-16.el9 appstream 28 k libdatrie x86_64 0.2.13-4.el9 appstream 33 k libpng x86_64 2:1.6.37-12.el9 baseos 117 k libthai x86_64 0.1.28-8.el9 appstream 208 k libxcb x86_64 1.13.1-9.el9 appstream 243 k pango x86_64 1.48.7-2.el9 appstream 303 k pixman x86_64 0.40.0-5.el9 appstream 271 k rrdtool x86_64 1.7.2-21.el9 appstream 540 k xml-common noarch 0.6.3-58.el9 appstream 32 k Transaction Summary ====================================================================================== Install 22 Packages Total size: 5.3 M Total download size: 3.6 M Installed size: 14 M Downloading Packages: [SKIPPED] collectd-rrdtool-5.12.0-7.el9s.x86_64.rpm: Already downloaded [SKIPPED] dejavu-sans-mono-fonts-2.37-18.el9.noarch.rpm: Already downloaded [SKIPPED] freetype-2.10.4-9.el9.x86_64.rpm: Already downloaded [SKIPPED] graphite2-1.3.14-9.el9.x86_64.rpm: Already downloaded [SKIPPED] harfbuzz-2.7.4-5.el9.x86_64.rpm: Already downloaded [SKIPPED] libpng-1.6.37-12.el9.x86_64.rpm: Already downloaded (7/22): fribidi-1.0.10-6.el9.2.x86_64.rpm 268 kB/s | 85 kB 00:00 (8/22): fontconfig-2.14.0-1.el9.x86_64.rpm 501 kB/s | 297 kB 00:00 (9/22): libX11-1.7.0-7.el9.x86_64.rpm 845 kB/s | 647 kB 00:00 (10/22): cairo-1.17.4-7.el9.x86_64.rpm 592 kB/s | 660 kB 00:01 (11/22): libXau-1.0.9-8.el9.x86_64.rpm 356 kB/s | 31 kB 00:00 (12/22): libXext-1.3.4-8.el9.x86_64.rpm 445 kB/s | 40 kB 00:00 (13/22): libXft-2.3.3-8.el9.x86_64.rpm 713 kB/s | 62 kB 00:00 (14/22): libXrender-0.9.10-16.el9.x86_64.rpm 304 kB/s | 28 kB 00:00 (15/22): libdatrie-0.2.13-4.el9.x86_64.rpm 372 kB/s | 33 kB 00:00 (16/22): libX11-common-1.7.0-7.el9.noarch.rpm 266 kB/s | 206 kB 00:00 (17/22): libthai-0.1.28-8.el9.x86_64.rpm 927 kB/s | 208 kB 00:00 (18/22): libxcb-1.13.1-9.el9.x86_64.rpm 881 kB/s | 243 kB 00:00 (19/22): pango-1.48.7-2.el9.x86_64.rpm 903 kB/s | 303 kB 00:00 (20/22): xml-common-0.6.3-58.el9.noarch.rpm 393 kB/s | 32 kB 00:00 (21/22): pixman-0.40.0-5.el9.x86_64.rpm 955 kB/s | 271 kB 00:00 (22/22): rrdtool-1.7.2-21.el9.x86_64.rpm 962 kB/s | 540 kB 00:00 -------------------------------------------------------------------------------------- Total ..... ..... rrdtool-1.7.2-21.el9.x86_64 xml-common-0.6.3-58.el9.noarch Complete! [root@srv ~]# systemctl start collectd [root@srv ~]# systemctl status collectd ● collectd.service - Collectd statistics daemon Loaded: loaded (/usr/lib/systemd/system/collectd.service; disabled; vendor prese> Active: active (running) since Wed 2022-06-22 19:49:28 UTC; 16min ago Docs: man:collectd(1) man:collectd.conf(5) Main PID: 1875 (collectd) Tasks: 12 (limit: 23472) Memory: 9.5M CPU: 125ms CGroup: /system.slice/collectd.service └─1875 /usr/sbin/collectd Jun 22 19:49:28 srv systemd[1]: Starting Collectd statistics daemon... Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "cpu" successfully loaded. Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "interface" successfully load> Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "load" successfully loaded. Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "memory" successfully loaded. Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "syslog" successfully loaded. Jun 22 19:49:28 srv collectd[1875]: plugin_load: plugin "rrdtool" successfully loaded. Jun 22 19:49:28 srv collectd[1875]: Systemd detected, trying to signal readiness. Jun 22 19:49:28 srv systemd[1]: Started Collectd statistics daemon. Jun 22 19:49:28 srv collectd[1875]: Initialization complete, entering read-loop.
The rrd file plugin will install all the dependencies and a plugin file under /etc/collectd.d/.
[root@srv ~]# cat /etc/collectd.d/rrdtool.conf LoadPlugin rrdtool <Plugin rrdtool> DataDir "/var/lib/collectd/rrd" CacheTimeout 120 CacheFlush 900 </Plugin>h
And after a while the rrd files appear:
[root@srv ~]# find /var/lib/collectd/rrd/ /var/lib/collectd/rrd/ /var/lib/collectd/rrd/srv /var/lib/collectd/rrd/srv/load /var/lib/collectd/rrd/srv/load/load.rrd /var/lib/collectd/rrd/srv/interface-enp0s3 /var/lib/collectd/rrd/srv/interface-enp0s3/if_dropped.rrd /var/lib/collectd/rrd/srv/interface-enp0s3/if_octets.rrd /var/lib/collectd/rrd/srv/interface-enp0s3/if_packets.rrd /var/lib/collectd/rrd/srv/interface-enp0s3/if_errors.rrd /var/lib/collectd/rrd/srv/cpu-0 /var/lib/collectd/rrd/srv/cpu-0/cpu-system.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-idle.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-user.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-interrupt.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-nice.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-steal.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-wait.rrd /var/lib/collectd/rrd/srv/cpu-0/cpu-softirq.rrd /var/lib/collectd/rrd/srv/cpu-1 /var/lib/collectd/rrd/srv/cpu-1/cpu-system.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-idle.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-user.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-interrupt.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-nice.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-steal.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-wait.rrd /var/lib/collectd/rrd/srv/cpu-1/cpu-softirq.rrd /var/lib/collectd/rrd/srv/memory /var/lib/collectd/rrd/srv/memory/memory-slab_unrecl.rrd /var/lib/collectd/rrd/srv/memory/memory-used.rrd /var/lib/collectd/rrd/srv/memory/memory-free.rrd /var/lib/collectd/rrd/srv/memory/memory-slab_recl.rrd /var/lib/collectd/rrd/srv/memory/memory-buffered.rrd /var/lib/collectd/rrd/srv/memory/memory-cached.rrd /var/lib/collectd/rrd/srv/interface-lo /var/lib/collectd/rrd/srv/interface-lo/if_dropped.rrd /var/lib/collectd/rrd/srv/interface-lo/if_octets.rrd /var/lib/collectd/rrd/srv/interface-lo/if_packets.rrd /var/lib/collectd/rrd/srv/interface-lo/if_errors.rrd
collectd modules in SIG OpsTools repository
Here are all the available collectd modules in OpsTools – around 55 modules:
[root@srv ~]# dnf search collectd* Last metadata expiration check: 0:01:59 ago on Wed 22 Jun 2022 02:06:00 PM UTC. ========================= Name & Summary Matched: collectd* ========================== collectd-libpod-stats.x86_64 : Collectd plugin for monitoring resource usage of : containers managed by libpod collectd-sensubility.x86_64 : collectd-exec extension enabling collectd to bahave like : sensu-client collectd-utils.x86_64 : Collectd utilities ============================== Name Matched: collectd* =============================== collectd.x86_64 : Statistics collection daemon for filling RRD files collectd-amqp.x86_64 : AMQP 0.9 plugin for collectd collectd-amqp1.x86_64 : Sends JSON-encoded data to an Advanced Message Queuing Protocol collectd-apache.x86_64 : Apache plugin for collectd collectd-ascent.x86_64 : Ascent plugin for collectd collectd-bind.x86_64 : Bind plugin for collectd collectd-ceph.x86_64 : Ceph plugin for collectd collectd-check-uptime.x86_64 : Check for cache events for uptime metric collectd-chrony.x86_64 : Chrony plugin for collectd collectd-connectivity.x86_64 : Monitors network interface up/down status via netlink library collectd-curl.x86_64 : Curl plugin for collectd collectd-curl_json.x86_64 : Curl JSON plugin for collectd collectd-curl_xml.x86_64 : Curl XML plugin for collectd collectd-dbi.x86_64 : DBI plugin for collectd collectd-disk.x86_64 : Disk plugin for collectd collectd-dns.x86_64 : DNS traffic analysis plugin for collectd collectd-drbd.x86_64 : DRBD plugin for collectd collectd-email.x86_64 : Email plugin for collectd collectd-hugepages.x86_64 : Number of hugepages on Linux collectd-infiniband.x86_64 : Collect metrics about infiniband ports collectd-ipmi.x86_64 : IPMI plugin for collectd collectd-ipvs.x86_64 : IPVS plugin for collectd collectd-log_logstash.x86_64 : Logstash plugin for collectd collectd-logparser.x86_64 : Parse different kinds of logs collectd-mcelog.x86_64 : Machine Check Exceptions notifications collectd-mdevents.x86_64 : Get events from RAID arrays in syslog collectd-mysql.x86_64 : MySQL plugin for collectd collectd-netlink.x86_64 : Netlink plugin for collectd collectd-nginx.x86_64 : Nginx plugin for collectd collectd-notify_email.x86_64 : Notify email plugin for collectd collectd-openldap.x86_64 : OpenLDAP plugin for collectd collectd-ovs-events.x86_64 : Open vSwitch events plugin for collectd collectd-ovs-stats.x86_64 : Open vSwitch statsevents plugin for collectd collectd-pcie-errors.x86_64 : Read errors from PCI Express Device Status collectd-ping.x86_64 : Ping plugin for collectd collectd-pmu.x86_64 : Intel PMU plugin for collectd collectd-postgresql.x86_64 : PostgreSQL plugin for collectd collectd-procevent.x86_64 : Plugin that monitors process starts/stops via netlink library collectd-python.x86_64 : Python plugin for collectd collectd-rdt.x86_64 : Intel RDT plugin for collectd collectd-rrdcached.x86_64 : RRDCacheD plugin for collectd collectd-rrdtool.x86_64 : RRDTool plugin for collectd collectd-sensors.x86_64 : Libsensors module for collectd collectd-smart.x86_64 : SMART plugin for collectd collectd-snmp.x86_64 : SNMP module for collectd collectd-snmp-agent.x86_64 : SNMP agent module for collectd collectd-sysevent.x86_64 : Plugin that monitors rsyslog for system events collectd-turbostat.x86_64 : Turbostat module for collectd collectd-virt.x86_64 : Libvirt plugin for collectd collectd-write_http.x86_64 : HTTP output plugin for collectd collectd-write_kafka.x86_64 : Kafka output plugin for collectd collectd-write_prometheus.x86_64 : Prometheus output plugin for collectd collectd-write_sensu.x86_64 : Sensu output plugin for collectd collectd-write_syslog.x86_64 : syslog output plugin for collectd collectd-write_tsdb.x86_64 : OpenTSDB output plugin for collectd collectd-zookeeper.x86_64 : Zookeeper plugin for collectd ============================= Summary Matched: collectd* ============================= libcollectdclient.x86_64 : Collectd client library
Check out collectd-ping plugin to track the network latency – Install and use collectd-ping under CentOS 8 to monitor latency