# Collectd

Amazing little thing that collects data on interfaces, processes, daemons and tons of other stuff on your system. You can even centralize log collection! Some details on this install log:

• RHEL/CentOS 5.5 64-bit system
• collectd v4.10 from EPEL
• Configured to collect data locally

## Installation

yum install collectd collectd-apache collectd-rrdtool


Problem:

collectd-4.10.0-4.el5.i386 from epel has depsolving problems
--> Missing Dependency: libpython2.4.so.1.0 is needed by package collectd-4.10.0-4.el5.i386 (epel)
Error: Missing Dependency: libpython2.4.so.1.0 is needed by package collectd-4.10.0-4.el5.i386 (epel)


This file, however, exists:

[root@support other_scripts]# locate libpython2.4.so.1.0
/usr/lib64/libpython2.4.so.1.0


The issue is that the 64-bit repo has both 32-bit and 64-bit versions. So you need to be a little more explicit:

yum install collectd*.x86_64* collectd-apache collectd-rrdtool


Done!

## Configuration

Make a copy and edit the config file /etc/collectd.conf:

cp /etc/collectd.conf /etc/collectd.conf.original


Add the following for base config that will monitor CPU, Interface, Load and Memory:

Hostname    "support.eng.uiowa.edu"
FQDNLookup   true
BaseDir     "/var/lib/collectd"
PIDFile     "/var/run/collectd.pid"
PluginDir   "/usr/lib64/collectd"
TypesDB     "/usr/share/collectd/types.db"
Interval     10


This is bloody important: Observe the lib64 in the PluginDir above for 64-bit installs. I wasted 2 hours of my life wondering why the damn thing didn’t work and started blaming the packagers.

At the bottom of the file, add this:

include "/etc/collectd.d/*.conf"


This basically keeps things organized and modular w.r.t. new plugins (all of which can be defined in collectd.conf itself).

Now start the service and watch as /var/lib/collectd/support.eng.uiowa.edu gets populated.

## Plugin Management

### Overview

Plugins are basically .so files (or executable code) which are used by the collectd daemon if the are enabled. They are configured individually via XML-style directives in either collectd.conf or in /etc/collectd.d (see below).

### Using existing plugins

Just uncomment the corresponding LoadPlugin in /etc/collectd.conf and restart the service!

Like the config file mentions, there are a few plugins which you will have to install manually. For example, I’m interested in the Apache and RRDtool plugins. These are not bundled with collectd by default, but are available via yum:

yum install collectd-apache collectd-rrdtool


They install shared object files in /usr/lib64/collectd (on a 64-bit system) and a config file in /etc/collectd.d.

The upshot is that they include LoadPlugin directives, so don’t touch the collectd.conf file to enable them. Remember the include directive we added above.

### Configuring Plugins

Read the man page for collectd.conf or the documentation on the plugin’s website.

## Graphing

You would use rrdtool for this. It deserves its own Wiki article(s). But for instant gratification, install the collectd-web package:

yum -y install collectd-web

This installs a bunch of CGI scripts in /usr/share/collectd/collection3. You can now move them to your Apache cgi-bin to run them

cp -rv /usr/share/collectd/collection3 /var/www/cgi-bin/
chmod -R 755 /var/www/cgi-bin/collection3/bin


If you’ve configured Apache properly, you can now navigate to http://hostname/cgi-bin/collection3/bin/index.cgi and enjoy your graphs! Remember that you can still do a ton of amazing graph-related things with rrdtool