Collectd : Installation et configuration de Collectd

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Collectd gathers statistics about the system it is running on and stores this information. Those statistics can then be used to find current performance bottlenecks (i.e. performance analysis) and predict future system load (i.e. capacity planning). Or if you just want pretty graphs of your private server and are fed up with some homegrown solution you're at the right place, too ;).

A la suite de cette installation, vous serez certainement content d'avoir accès via une interface web. Je vous laisse continuer avec ces documentations.

2 Installation

Que ce soit sur le serveur ou le client, c'est assez pratique, c'est le même package qu'il faut installer.

2.1 Debian

Donc sur Debian, c'est toujours aussi simple :

Command aptitude
aptitude install collectd

2.2 Client

2.2.1 Debian

Donc sur Debian, c'est toujours aussi simple :

Command aptitude
aptitude install collectd

2.2.2 Solaris

Sur Solaris, c'est disponible sur SunFreeware :

Command
wget "http://collectd.org/files/collectd-4.6.2-0-SunOS-5.10-x86_64.pkg"
pkgadd -d collectd-4.6.2-0-SunOS-5.10-x86_64.pkg

3 Configuration

3.1 Serveur

Pour le serveur, nous allons nous assurer que ces modules sont bien activés (donc décommentés) :

Configuration File /etc/collectd/collectd.conf
...
LoadPlugin "logfile"
LoadPlugin "network"
LoadPlugin "rrdtool"
...

Puis nous allons ajouter l'IP sur lequel le serveur Collectd doit écouter :

Configuration File /etc/collectd/collectd.conf
...
# Server
<Plugin "network">
  Listen "192.168.0.25"
</Plugin>
...

Sauf si le serveur de Collectd est une bête de course, il est préférable de mettre en cache les infos avant de les écrire sur le disque. Celà va réduire les I/O et l'utilisation CPU :

Configuration File /etc/collectd/collectd.conf
...
<Plugin rrdtool>
    DataDir "/var/lib/collectd/rrd"
    CacheTimeout 485 
    CacheFlush 1800
</Plugin>
...

Redémarrez maintenant le serveur collectd.

3.2 Client

Côté client, on choisis quelques modules à activer :

Configuration File /etc/collectd/collectd.conf
...
LoadPlugin "logfile"
LoadPlugin "network"
LoadPlugin "cpu"
LoadPlugin "memory"
...

Et enfin on renseigne l'adresse IP du serveur :

Configuration File /etc/collectd/collectd.conf
...
# Client
<Plugin "network">
  Server "192.168.0.42"
</Plugin>
...

Redémarrez maintenant le client collectd.

Si vous souhaitez activer d'autres services, il suffit de décommenter ceux qui vous intéressent.

4 Rajouter des modules

On peut facilement rajouter des modules en les compilant. Suivant l'OS sur lequel on se trouve, c'est plus ou moins facile.

4.1 Compiler des modules sur Solaris

Après en avoir chier pendant quelques heures, voici la marche à suivre pour compiler en 32 et 64 bits collectd avec ses modules.

  • Tout d'abord, nous allons télécharger et décompresser les sources :
Command
wget http://collectd.org/files/collectd-4.10.0.tar.gz
gtar -xzvf collectd-4.10.0.tar.gz

  • Ensuite, nous allons installer des dépendances. Il faut télécharger le companion cd de Solaris et installer ces packages :
Command pkgadd
cd /cdrom/companioncd/Packages
pkgadd -d `pwd` SFWaconf
pkgadd -d `pwd` SFWamake
pkgadd -d `pwd` SFWcoreu
pkgadd -d `pwd` SFWcurl
pkgadd -d `pwd` SFWctags
pkgadd -d `pwd` SFWdiffu
pkgadd -d `pwd` SFWgawk
pkgadd -d `pwd` SFWgfind
pkgadd -d `pwd` SFWltool
pkgadd -d `pwd` SFWncur
pkgadd -d `pwd` SFWscrn

Vous pouvez (pour ceux qui veulent) utiliser GCC :

Command pkg-get
pkg-get install libiconv gcc3 gcc3core gmake

Mais je n'ai pas réussi à compiler des librairies en 64 bits même en suivant la doc et la FAQ. C'est pourquoi je vous recommande Solaris Studio Express.

  • Ensuite on lance la compilation en 64 bits avec les options standards :
Command
cd collectd-4.10.0
export PATH=$PATH:/opt/solstudioex1006/bin:/opt/SUNWspro/bin:/usr/ccs/bin
./configure CFLAGS="-m64 -mt -D_POSIX_PTHREAD_SEMANTICS"
make

Ceci 'CFLAGS="-m64 -mt -D_POSIX_PTHREAD_SEMANTICS"' indique que nous voulons faire du 64 bits. Enlevez le pour faire du 32 bits.

Si vous souhaitez ne compiler qu'un plugin en particulier, vous pouvez faire comme ceci :

Command ./configure
./configure CFLAGS="-m64 -mt -D_POSIX_PTHREAD_SEMANTICS" --disable-all-plugins --enable-zfs_arc

Ensuite il vous reste à faire le fameux 'make install' quand vous êtes prêt.

5 Créer le SMF Solaris

Tous les fichiers nécessaires se trouvent dans les sources (contrib/solaris-smf). Le plus propre est de déplacer le fichier collectd.xml au même endroit que les autres xml :

Command mv
mv collectd.xml /var/svc/manifest/application

Par défaut le xml va chercher le SMF dans /lib/svc/method, donc on déplace le script au bon endroit :

Command mv
mv collectd /lib/svc/method

Puis on enregistre le xml :

Command svccfg
svccfg import /var/svc/manifest/application/collectd.xml

6 Ressources

http://collectd.org/wiki/index.php/First_steps
http://collectd.org/wiki/index.php/Networking_introduction