Cacti

Fiche logiciel validé
  • Création ou MAJ importante : 19/12/11
  • Correction mineure : 11/03/13
Mots-clés

Cacti : métrologie d'équipements et de services informatiques ou réseaux

Description
Fonctionnalités générales

Cacti est un logiciel complet de métrologie de traffic réseau, d'équipements (réseau...) et de services informatiques basé sur RRDTool (fiche plume). Complet dans le sens où il permet de collecter des données de performances sur les différents équipements surveillés, stocker ces données dans des bases, générer des graphes et les visualiser grâce à une interface web.

Collecter des données :

A intervalle donné (5 minutes par défaut), Cacti va collecter des valeurs ou mesurer des temps de réponse grâce à son ordonnanceur intégré. Il existe plusieurs types d'ordonnanceurs, du plus simple écrit en PHP au plus performant écrit en C. Cacti interroge les hôtes principalement par l’intermédiaire du protocole SNMP. Une majorité d'équipements réseaux et informatiques proposent cette fonctionnalité mais si ce n'est pas le cas, Cacti peut aussi interroger via des scripts étendant grandement les possibilités.

Alimenter des bases de données :

Comme dit en introduction, Cacti s'appuie sur RRDTool développé par Tobias Oetiker (http://tobi.oetiker.ch/hp/) qui est également l'auteur des logiciels comme Smokeping ou le célèbre MRTG. Le grand principe de RRDTool est de stocker les valeurs dans des bases de données tournantes à taille fixe, appelées "Round Robin Archive". On ne conserve que les "n" dernières valeurs, les valeurs sont moyennées pour alimenter une autre base portant sur une période de temps plus grande, et ainsi de suite.

Générer des graphes :

S'appuyant sur RRDTool, Cacti fournit une représentation graphique de ces valeurs et de leur évolution dans le temps. Les graphes sont générés en temps réel et l'on peut zoomer ou changer l'échelle de temps. Une arborescence permet de naviguer simplement entre les équipements et les graphes associés.

Proposer une interface :

Cacti permet aux utilisateurs de consulter les graphes à travers une interface web écrite en PHP. Mais elle permet aussi d'effectuer très simplement toute la configuration de l'outil. De plus, afin de permettre une délégation des taches, Cacti propose une gestion des accès très fine.

Exemples de graphes

Le débit réseau entrant et sortant d'un pare-feu :

Le filtrage de spam (avec j-chkmail) :

Détection d'effets de bord suite à une modification de la configuration du serveur de messagerie :

Exemple d'attaque violente qui pourrait faire s'écrouler le service, l'équipe a pu réagir avant :

Autres fonctionnalités

Système de templates

Une des forces de Cacti est de pouvoir grandement réutiliser le travail effectué. Par l'intermédiaire d'un mécanisme de modèles, appelé templates, il est possible d'automatiser plus ou moins la création d’hôtes d'une même famille de matériels. De plus, il est possible d'importer et d'exporter des "templates" ce qui permet le partage entre utilisateurs de Cacti.

Gestionnaire de plugins

Cacti en natif n'embarque pas de gestionnaire de plugins, mais cela est prévu sur la "road map" du projet. Néanmoins, un contributeur a développé un gestionnaire appelé PIA (Plug In Architecture). Pour installer PIA, il est nécessaire de modifier le code de Cacti ce qui rend possible par la suite l'ajout de plugins de façon automatique.

Une liste des plugins proposés par la communauté est disponible ici :
http://docs.cacti.net/plugins

Méthode d'authentification flexible

Cacti propose trois méthodes d'authentification : authentification interne, authentification par annuaire LDAP ou authentification déléguée à Apache. Cette dernière est très intéressante car on va pouvoir utiliser tous les modules existants pour Apache sans pour autant modifier quoi que se soit dans Cacti.

Parmi les modules Apache d'authentification, l'authentification CAS (fiche PLUME) nous intéresse particulièrement. En effet, ce web SSO est très souvent utilisé dans nos établissements, utiliser cette méthode permet à Cacti de s'intégrer parfaitement dans le SI de l’établissement.

Interopérabilité

Utilisation du protocole SNMP

Cacti utilise majoritairement des requêtes SNMP pour interroger les équipements réseaux et autres. Ce protocole est très répandu sur les matériels réseaux tels que les routeurs, les commutateurs, les onduleurs, les sondes de températures, les imprimantes, etc. De plus, sur les systèmes d'exploitations récents, on peut installer ce service et même y ajouter ses OID personnalisés.

Utilisation de scripts

Cacti peut aussi passer par des scripts pour interroger des équipements. Peu importe le langage tant que la sortie est formatée pour Cacti. Ainsi on va pouvoir utiliser des requêtes HTTP, des connections SSH/TELNET ou tout autre moyen pour récupérer les valeurs que l'on souhaite afficher. Il n'y a aucune limite.

Contexte d'utilisation dans mon laboratoire/service

Pour ma part, j'ai mis en place ce produit dans plusieurs DSI (INRA...), en particulier pour la surveillance de leur système d'information. Dans ce sens, j'ai utilisé Cacti pour monitorer une grande variété d'équipements et de services :

  • Pare-feux, switchs, routeurs : trafics entrants/sortants, paquets rejetés.
  • Serveurs Linux : load average, utilisation espace disque, consommation I/O, etc.
  • Service messagerie : nombre de processus, mails entrants/sortants, statistiques j-chkmail, taille de la mailq, connexions pop(s)/imap(s)/smtp, etc.
  • Onduleurs : charges/phases, autonomie, capacité des batteries, températures internes, etc.
  • Sondes : températures, humidités, luminosités.
  • Passerelles TOIP : nombre de communications simultanées.

Ces plateformes sont toujours en production, mes collègues s'en servent régulièrement pour suivre l'évolution de l'utilisation des services ou pour remonter l'origine d'un incident. Ce produit demande un peu de temps lors de la phase de configuration mais son coût d'exploitation est très faible : pas de problème d’espace disque saturé et pas de corruption de bases de données grâce à l'utilisation de RRDTool. Une fois les templates installés, il suffit de les instancier pour chaque nouvel hôte.

Limitations, difficultés, fonctionnalités importantes non couvertes

Supervision limitée

Cacti détecte qu'un hôte n'est pas joignable pour ses besoins internes (pour optimiser le temps de collecte en évitant des timeout inutiles). Mais Cacti n'est en aucun cas un outil de supervision servant à alerter l’administrateur d'un incident. Pour ce besoin, il y a des outils plus pertinents, comme Nagios (fiche PLUME) par exemple.

Interface vieillissante

L'interface de Cacti n'est pas multilingue, elle est proposée à l'heure actuelle seulement en anglais. Néanmoins, il est indiqué dans la road map le support prochain de plusieurs langues.

De plus, l'interface web ne bénéficie pas des avancés du "web 2.0". Il faut cliquer de très nombreuses fois pour configurer quelque chose, trier des listes est un peu long, tout comme naviguer dans l'arborescence de visualisation.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Cacti est une application web écrite en PHP, elle s'installe donc depuis les sources sur tout système d'exploitation disposant d'un serveur de documents web, d'un serveur de bases de données et du moteur PHP ainsi que les modules nécessaires.

Quelques distributions proposent Cacti sous formes de package, c'est le cas de Debian et ses dérivés ainsi que Red Hat et ses dérivés.

Logiciels connexes

Nagios :

Nous avons indiqué dans la partie "Limitations et difficultés" que Cacti n'était pas un logiciel de supervision. Dans de nombreux EPST nous retrouvons le couple Nagios/Cacti car ces logiciels sont complémentaires. Nous ne pouvons faire de supervision pertinente sans avoir la métrologie pour définir les bons seuils d'alarme. De même, de la métrologie seule ne nous mettrait pas en capacité de réagir suffisamment vite en cas d'incident sur le SI.

Si vous souhaitez en savoir plus sur le logiciel de supervision Nagios, consultez la fiche dédiée :
http://www.projet-plume.org/fr/fiche/nagios

Weathermap :

Certains administrateurs apprécient d'avoir une vue d'ensemble de leur infrastructure. Weathermap permet de construire une carte des équipements et des liens réseaux. Un code couleur est utilisé pour représenter la charge des liens réseaux, on peut aussi afficher l'état des équipements (up/down) et intégrer des graphes Cacti lorsque la souris survol un objet particulier.

Depuis peu, une nouvelle version de Weathermap est proposée : PHP Weathermap qui est en fait un plugin pour Cacti. Il s'installe donc en quelques instants et s'intègre encore mieux dans l'outil Cacti.

Autres logiciels aux fonctionnalités équivalentes

Cacti est un peu le standard de fait en matière de métrologie mais il existe d'autres outils :

  • MRTG : Logiciel libre développé par Tobias Oetiker et qui a inspiré grandement Cacti.
  • Zabbix : Logiciel libre de supervision et métrologie.
  • Centréon : Surcouche graphique libre pour Nagios proposant un peu de métrologie.
  • Smokeping : Encore un logiciel libre développé par Tobias Oetiker. C'est un outil spécialisé dans les temps de réponses.
Environnement de développement
Eléments de pérennité

Il est toujours difficile d'évaluer la pérennité d'un projet libre. La première release de Cacti (v0.5) a été faite le 23 septembre 2001. C'est un projet qui dure depuis 10 ans, on peut donc supposer qu'il a encore de belles années devant lui.

De plus, la communauté Cacti qui s'exprime à travers le forum officiel est très réactive pour les demandes de support et publie de nombreuses contributions (plugins, templates, scripts...). Il y a plus de 30 000 membres inscrits sur ce forum.

Enfin, on trouve sur internet des tutoriels, des documentations d’installation et des templates supplémentaires. De grands constructeurs proposent même leurs templates, par exemple F5 met à disposition le nécessaire pour monitorer leur loadbalancer :
http://devcentral.f5.com/Forums/tabid/53/aft/16275...

Références d'utilisateurs institutionnels
  • Université Nancy 2 : 1 plateforme (Serveur : 2 coeurs ; RAM : 1Go ; RRD : 65 Mo) surveillant 149 hôtes et 567 indicateurs.
  • INRA

Il existe un sujet sur le forum officiel Cacti traitant des performances et du dimensionnement :
http://forums.cacti.net/viewtopic.php?f=4&t=6206

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Le forum officiel de Cacti :
http://forums.cacti.net/

Documentation utilisateur

Un excellent tutoriel proposé par Linagora décrivant les concepts de base de Cacti et RRD :
http://linagora.org/_media/contrib/supervision/doc...

Une liste des "templates" les plus utilisés :
http://forums.cacti.net/viewtopic.php?f=12&t=15067