Installation de Cacti sous Debian

Décembre 2016

Les systèmes informatiques d'entreprise associent une diversité de services proposés (routage, proxy, serveur web...), à plusieurs types de réseaux (LAN, Intranet, DMZ, Internet...). La disponibilité et le bon fonctionnement de chaque machine participant à cet ensemble ont besoin d'être vérifiés régulièrement. Des logiciels, les “moniteurs”, existent afin d'automatiser la vérification des systèmes informatiques. Ces outils ne fonctionnent pas tous sur le même principe (par exemple tester les services, interroger ces services sur leurs états, ou attendre une éventuelle alerte émise par le service).
Par ailleurs, l'outil de supervision réseau ne doit pas remettre en cause l'architecture : il doit permettre de surveiller dans les meilleures conditions toutes les machines du réseau sans l'affaiblir (assurer la sécurité tout en absorbant la montée en charge).
Il existe plusieurs logiciels permettant de monitorer un réseau. Seulement, ils sont pour la plupart payant. De ce fait, il faut rechercher une application à moindre coût pour l'entreprise, tout en ayant une fiabilité et une rentabilité maximum au niveau des informations recherchées.
Nous allons voir l'installation du fameux Cacti sous plateforme Debian Etch avec un couplage à GLPI

Au niveau de la version j'ai utilisé, la 0.8.7b.


Un autre tuto est publié pour l'installation de Cacti sous plateforme Windows

Sommaire :



Sous plateforme Debian Etch


Installation des packages


On peut utiliser deux façons pour procéder au déploiement de Cacti :

Par version prépakagée


Par les dépôts

  • Solution la plus sûre afin d’avoir une compatibilité entre les versions des programmes RRDTool, PHP, MySql et Apache.
     apt-get install cacti 


Pour l'installation, on suppose que vous avez déjà installé un Serveur Web avec Apache, My Sql (5.0) et Php (5).
Sinon, voici la commande à lancer pour l'installation des packages :
 # apt-get install php5-cli php5-mysql php5-snmp snmp snmpd rrdtool cacti 


Lors de l'installation, l'outil debconf vous demandera le mot de passe de l'administrateur de votre base My Sql afin de pouvoir créer la base de données "cacti". De même, il vous sera aussi demandé de créer un mot de passe pour l'utilisateur Cacti (utilisateur associé à la base de données Cacti). Pour finir, il vous demandera le type de serveur Web utilisé.
Debconf génèrera automatiquement le fichier /etc/cacti/debian.php, dans lequel il regroupera les informations nécessaires (login et password de notre utilisateur Cacti crypté, ainsi que le type de base de données).

Maintenant nous allons configurer Cacti.

Gestion du polling via notre crontab


Afin de récupérer des données (charge CPU, espace disques....etc), lors de l'installation, un fichier de crontab a été mis en place par Cacti dans /etc/cron.d/cacti. Il contient :
 MAILTO=root

*/5 * * * * www-data php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log 


Remarque : Il existe un paquet connu sous le nom de cacti-cactid qui a le même rôle que le fichier poller.php, mais, qui est plus rapide. Il est à utiliser pour les serveurs sur lesquels transitent beaucoup de trafic. Cependant, si poller.php fonctionne correctement (pas d'erreur liée à un délai de réponse trop important), il est vivement déconseillé de l'installer.

Pour installer ce paquet :
 # apt-get install cacti-cactid 

L'agent SNMP


Il y a un fichier de configuration :
  • /etc/snmp/snmpd.conf : fichier de configuration de l'agent SNMP.



Il faut modifier la partie Access Control :

 # Autoriser le serveur intranet avec le max de droits a consulter
com2sec local localhost public

# Autoriser le reseau local en lecture
com2sec localNet 192.169.10.0/24 public

# sec.name  source                      community
# com2sec paranoid  default         public
com2sec readonly  default         public
# com2sec readwrite default         public

####
# Second, map the security names into group names:

#               sec.model  sec.name
group MyROSystem v1         local
group MyROSystem v2c       local
group MyROSystem usm      local
group MyROGroup v1           localNet
group MyROGroup v2c         localNet
group MyROGroup usm        localNet
group MyRWGroup v1          local
group MyRWGroup v2c        local
group MyRWGroup usm       local 


Enfin pour que l'agent accepte les requêtes du réseau, il faut modifier la ligne suivante :
 SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' 
en :
 SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid' 
Ceci permet d'accepter les requêtes venant du réseau.

Maintenant que la configuration est finie, redémarrons l'agent pour prendre en compte les modifications :
 # /etc/init.d/snmpd restart 

Firewall


En cas de présence d’un firewall sur le réseau, pour que l'agent SNMP soit accessible, il faut autoriser le port 161/UDP.

Routeur


Si la machine que vous voulez inspecter avec SNMP est derrière un routeur, il faut penser à configurer le routeur pour envoyer les requêtes reçues au port 161 du routeur vers le port 161 de la machine qui héberge l'agent, en l’occurrence notre serveur intranet.

Lancement de Cacti


On accède à Cacti via l'url : [http://] « adresse de notre serveur »/cacti.

Par défaut, le login et le mot de passe ont les valeurs suivantes :
  • Login : admin
  • Password : admin


Lors du premier lancement, renseignez les champs avec ces deux valeurs. Ensuite, il vous sera demandé un nouveau mot de passe pour l'utilisateur admin.

Création d'un device (hôte)


Je vais ici, indiquer toutes les étapes de la création de graphiques pour la supervision du trafic réseau. Beaucoup d’autres possibilités sont bien sur disponibles.
Sélectionnez Devices dans le menu de gauche. La page de tous les devices existants s'affiche. Choisissez ensuite Add : une liste de champs apparaît vous permettant de renseigner les premières informations nécessaires à la création du device.
  • Description : Serveur Intranet
  • Hostname : « Adresse IP de l’hôte »
  • Host Template : Generic SNMP-enabled Host




Cliquez sur Create afin de mettre à jour votre configuration. (cliquer sur l'image pour l'agrandir)



Deux nouvelles rubriques sont maintenant disponibles. Dans celle intitulée 'Associated Graph Templates' sélectionnez via la liste déroulant le type de graphique que vous souhaitez. Pressez Add pour l'ajouter à la liste des graphs du device.

Création supplémentaire des graphiques


Il est maintenant possible de créer d’autres graphiques. Choisissez 'New Graphs' dans le menu de gauche puis sélectionnez la configuration que l'on vient de créer. Les graphiques pouvant être générés apparaissent.

Classement des données


Les graphiques de Cacti peuvent être classés suivant différents niveaux à l'aide d'un arbre pour une meilleure gestion et visibilité des hôtes sur notre réseau. On va donc créer un nouveau niveau dans l'arbre par défaut pour y stocker nos graphiques.
Choisissez Default Tree en haut à gauche.
Des champs concernant la configuration de la nouvelle branche de notre arbre apparaissent.

Regarder ses graphiques


Il y a deux modes disponibles sous Cacti :
  • le mode console : permet de configurer tous les graphiques et devices.
  • le mode graphs : permet de visionner les différents graphiques tous ensembles, séparément ou par catégories.


Remarque : Il faut attendre un peu avant de voir s'afficher les courbes qui viennent d'être créées. Le système récupère les nouvelles données en fonction du temps attribué dans notre crontab configurée précédemment.

Implémentation à GLPI


Afin de disposer de la supervision de Cacti sous GLPI, il faut rajouter un plugin qui va nous permettre d’appeler l’interface des hôtes de Cacti ainsi que l’ensemble des graphiques associés à chacun.
Ce couplage permet de disposer d’un « tout en un » mais la visualisation des graphique est nettement moins précise.

Dans un premier temps, il faut se positionner dans le répertoire des plugins de GLPI :
 cd var/www/glpii/plugins/ 
Puis télécharger, via la commande wget, sur le site du projet GLPI, le plugin cacti. (cliquer sur l'image pour l'agrandir)



Sur notre interface GLPI, on peut le voir apparaître dans l’onglet Plugins. Une très courte configuration est demandée pour relier GLPI à la base de données de Cacti.

Dans la foulée, il est possible de visionner nos graphiques sous l’interface de GLPI. (cliquer sur les images pour agrandir)






Conclusion Générale


Cacti est un outil de surveillance basé sur le célèbre RRDTool, permettant de connaître toutes les données systèmes des autres ordinateurs du réseau. Il les présente automatiquement sous forme de graphiques consultables depuis une page web. Par ailleurs, il dispose d'un système de plugins qui le rend simple d'utilisation et très modulaire. Il est ainsi possible de le coupler à GLPI afin de disposer d’un outil de gestion pour le parc. La lecture des graphique et l’exploitation des données est cependant beaucoup moins agréable.
La surveillance d'un système permet de connaître sa disponibilité à un instant t, mais aussi de mesurer dans le temps l'évolution d'un certain nombre de paramètres tels l'occupation de l'espace disque ou la charge mémoire. Il devient alors possible par extrapolation de prévenir le moment de rupture du système en prenant des mesures préventives.

A voir également :

Ce document intitulé «  Installation de Cacti sous Debian  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.