Collectd : Installation et configuration de Collectd
Contents
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 :
aptitude |
aptitude install collectd |
2.2 Client
2.2.1 Debian
Donc sur Debian, c'est toujours aussi simple :
aptitude |
aptitude install collectd |
2.2.2 Solaris
Sur Solaris, c'est disponible sur SunFreeware :
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) :
/etc/collectd/collectd.conf |
... LoadPlugin "logfile" LoadPlugin "network" LoadPlugin "rrdtool" ... |
Puis nous allons ajouter l'IP sur lequel le serveur Collectd doit écouter :
/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 :
/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 :
/etc/collectd/collectd.conf |
... LoadPlugin "logfile" LoadPlugin "network" LoadPlugin "cpu" LoadPlugin "memory" ... |
Et enfin on renseigne l'adresse IP du serveur :
/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 :
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 :
- Puis il faut installer Oracle Solaris Studio Express.
Vous pouvez (pour ceux qui veulent) utiliser GCC :
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 :
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 :
./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 :
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 :
mv |
mv collectd /lib/svc/method |
Puis on enregistre le xml :
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