Mise en place de statistiques avec Cacti

De Linux Server Wiki
Aller à la navigation Aller à la recherche

Le logiciel de statistiques mrtg est de plus en plus souvent délaissé au profit de rddtool. Plus complet mais aussi plus difficile à configurer, des outils comme Cacti permettent de faciliter son utilisation.

Installation

Commencez par installer les deux paquets suivants :

aptitude install cacti snmpd php5-snmp php5-cli

Durant l'installation, on vous demandera de choisir le type de serveur web que vous utilisez. Dans mon cas j'ai choisi Apache 2. Quand l'installateur vous demandera s'il faut configurer la base de données de cacti avec dbconfig-common, répondez oui. On vous demandera alors d'entrer le mot-de-passe de l'administrateur MySQL, puis celui qu'il faudra utiliser pour la base de donnée de Cacti.

Si vous utilisez un noyau avec patch grsecurity, ajouter l'utilisateur snmp au groupe de restriction de <cpde>/proc ne règle pas le problème de lecture sur /proc/net/dev ce qui empêche de récupérer les informations sur le trafic des interfaces réseaux. Pour régler le problème, il faut modifier la ligne SNMPDOPTS de snmpd dans /etc/default/snmpd en ajoutant l'option -g GID où GID est le groupe défini par la directive CONFIG_GRKERNSEC_PROC_GID de la configuration de votre kernel.

Configuration de Apache et SNMP

Nous allons autoriser l'accès en lecture à SNMP. Éditez /etc/snmp/snmpd.conf comme suit :

####
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):
# sec.name source community
#com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private

Redémarrez le service SNMP :

/etc/init.d/snmpd restart

La base de donnée et l'utilisateur ont déjà été créés automatiquement lors de l'installation. A titre d'information, le schéma de la base de donnée de cacti se trouve dans /usr/share/doc/cacti/cacti.sql.gz.

Éditez le fichier de configuration de la vhost apache sur laquelle vous souhaitez pouvoir consulter cacti et ajoutez y la ligne suivante :

Include /etc/cacti/apache.conf

Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires /usr/share/cacti/, /etc/cacti/, /usr/share/php/adodb/, /usr/bin/, /bin/, /sbin/ et /var/log/cacti/:/usr/share/rrdtool/fonts/ au open_basedir de votre vhost. Dans mon cas :

php_admin_value open_basedir /srv/http/admin.csnu.org/:/usr/share/cacti/:/etc/cacti/:/usr/share/php/adodb/:/usr/bin/:/bin/:/sbin/:/var/log/cacti/:/usr/share/rrdtool/fonts/

Etant donné que vous donnez l'accès à beaucoup de répertoires, il serait peut-être bon de sécuriser le dossier /usr/share/cacti/site/ avec un .htaccess. De cette manière, en cas de faille sur cacti, vous vous assurez de que personne ne pourra l'exploiter sur votre serveur.

Pour que les modifications soient prises en compte, redémarrez apache :

/etc/init.d/apache2 restart

Configuration de Cacti

Connectez vous à l'adresse de votre vhost. Vous vous retrouvez devant le guide d'installation de Cacti. Cliquez sur Next. A la page suivante, on vous demande de sélectionner le type d'installation. Selectionnez New install et cliquez sur Next. La dernière page récapitule la présence des différents binaires nécessaires. Si vous n'avez aucune erreur, vous pouvez cliquer sur Finish. Vous êtes alors redirigé sur la page de login de cacti. Loguez vous avec l'utilisateur admin et le mot-de-passe admin. Cacti vous demandera immédiatement de choisir un nouveau mot-de-passe puis vous vous retrouverez sur la page principale de Cacti.

Dans le menu de gauche, partie Configuration, cliquez sur Settings puis sur Paths. Vérifiez qu'un fichier de font est présent à la ligne RRDTool Default Font Path. Si aucun fichier de font n'est présent, ajoutez /usr/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf et sauvegardez. Nous allons maintenant configurer les graphiques. Cliquez sur Devices. Vous verrez qu'un device existe déjà. Sélectionnez le et supprimez le avec le menu déroulant.

Cliquez sur Add pour ajouter un nouveau device. A la ligne Hostname entrez localhost, à la ligne Host Template sélectionnez None et à la ligne SNMP Version sélectionnez Version 1. Sauvegardez la configuration.

Nous allons maintenant configurer les graphiques. Cliquez sur le device que nous venez de créer.

A la partie Associated Graph Templates vous pouvez ajouter les graphiques Linux - Memory Usage, Unix - Load Average, Unix - Logged in Users et Unix - Processes.

A la partie Associated Data Queries vous pouvez ajouter les graphiques SNMP - Get Processor Information, SNMP - Interface Statistics et Unix - Get Mounted Partitions.

Remontez en haut de la page et cliquez sur Create Graphs for this Host. Cochez les différents graphiques que vous souhaitez utiliser puis cliquez sur Create. Les graphiques sont maintenant créés. Dans quelques dizaines de minutes vous pourrez voir les premiers résultats dans l'onglet Graphs.

Configuration de SNMP et Cacti pour récupérer les statistiques d'un serveur distant

Nous allons voir comment configurer snmp sur un serveur distant afin de récupérer ses statistiques sur notre cacti.

Installez cacti sur le serveur distant :

aptitude install snmp snmpd

Éditez le fichier /etc/snmp/snmpd.conf :

#permet d'écouter sur l'ip 87.98.136.217 et sur toutes les ipv6
agentaddress 87.98.136.217,udp6:161

#com2sec paranoid  default         public
#com2sec readonly  default         public
#com2sec readwrite default         private

#Créé un utilisateur system avec le mot-de-passe abcdefgh
createUser system MD5 abcdefgh DES
group groupv3             usm      system
view    all included   .iso      80
access groupv3         ""        any       auth      exact    all         all        all

N'oubliez pas de remplacer le abcdefgh par un mot-de-passe de votre choix !

Relancez snmpd :

/etc/init.d/snmpd restart

Vous pouvez tester si tout fonctionne bien avec la commande suivante sur votre serveur principal :

snmpget -v 3 -l AuthNoPriv -u system -A abcdefgh 87.98.136.217 sysName.0

En ce qui concerne la configuration snmp de cacti il suffit de sélectionner les champs suivants lors de la configuration du device :

SNMP Version : Version 3
SNMP Username (v3) : system
SNMP Password (v3) : abcdefgh
SNMP Privacy Passphrase (v3) : abcdefgh

A la section Associated Data Queries le graphique SNMP - Get Mounted Partitions permet d'obtenir l'état de toutes les partitions (y compris le taux d'utilisation de la mémoire et du swap) et le graphique SNMP - Interface Statistics permet d'obtenir les statistiques réseaux. A la section Associated Graph Templates, vous pouvez utiliser les graphiques ucd/net - CPU Usage, Host MIB - Logged in Users, ucd/net - Load Average et ucd/net - Memory Usage.