CACTI est un logiciel de monitoring réseau. Il vous permettra de créer des graphiques de la charge processeur, d'utilisation mémoire, de débits réseaux, le niveau d'encre d'une imprimante et même la température de sortie d'une climatisation. Cacti utilise RRDTool, PHP et MySql. Tous ces graphiques permettront à l'administrateur réseau d'anticiper et de résoudre les problèmes réseaux et systèmes (mais pas de réparer la climatisation ;-) ).
Voici l’installation préalable des outils nécessaires à Cacti. J’ai fait cette installation sur un système Debian Sarge 3.1.
(installe les paquets apache, apache-common, libexpat1, mime-support et fixe DocumentRoot à /var/www)
(installe seulement la version php 4.1.2 du langage et configure apache pour php)
(installe le serveur mysql et aussi mysql-common, mysql-client et les librairies indispensables)
(installe les librairies mysql indispensables pour php)
(en option : facilite l'administration de MySQL via une interface web)
(installe un interpréteur php en ligne de commandes)
(installe l'outil rrdtool)
(installe l'agent/client SNMP)
(installe les librairies snmp indispensables pour php)
Tout d'abord, affectez un mot de passe à mysql à l'aide de phpmyadmin:
http://localhost/phpmyadmin ou http://IP_de_la_machine/phpmyadmin
Une fois le mot de passe affecté, exécutez les commandes suivantes:
La première commande créé la table cacti et la deuxième fait sa mise en forme.
Modifier le fichier config.php:
vi /var/www/cacti/include/config.php
Afin que l'utilisateur cactiuser puisse créer les graphiques, les droits de rra/ et log/ doivent être modifiés:
chown -R cactiuser /var/www/cacti/rra/ /var/www/cacti/log/
Passez en utilisateur cactiuser:
Par défaut, la collecte des données va se faire toute les 5 minutes, et donc les graphiques vont s’actualiser toutes les 5 minutes aussi. Il est possible de modifier cette valeur à une minute. Attention, ceci demandera plus de ressources processeurs à votre serveur.
Dans un navigateur web, saisissez l'adresse suivante:
http://localhost/cacti/ ou http://IP_de_la_machine/cacti/

L’image 1 va s’afficher dans le navigateur, cliquez sur NEXT. Il vous demandera alors d’indiquer comme sur l’image 2, si c’est une nouvelle installation, puis cliquez sur NEXT.

Comme sur l’image 3, il vous sera demandé de corriger les chemins d’accès aux fichiers en rouge. Ici j’ai indiqué que le chemin pour « PHP Binary Path » est /usr/bin/php . Au premier lancement entrez comme login et mot de passe "admin". Il vous demandera ensuite de changer le mot de passe de admin.
En étant loggé en cactiuser, nous allons vérifier que la création des graphiques se génère bien.
Exécutez dans un terminal cette commande :
Si le message d'erreur suivant apparaît
Fatal error: Call to undefined function: mysql_pconnect() in /var/www/cacti/lib/adodb/drivers/adodb-mysql.inc.php on line 356
exécutez la commande
et choisissez oui.
En ré-exécutant la commande :
vous verrez alors tous les problèmes que cette commande rencontre, généralement ceux sont des problèmes de permissions sur certains répertoires.
Faire un graphique d’un hôte pour la première fois se fait simplement en 4 étapes :
Si vous rajoutez ultérieurement des graphiques au même hôte, l’étape 4 est facultative.
Dans la catégorie MANAGEMENT, cliquez sur DEVICES, puis sur ADD en haut à droite.
Le formulaire propose les champs suivants :
Cliquez sur CREATE. Cacti affiche alors la liste des hôtes créés, c’est-à-dire celui que l’on vient de faire à l’instant, ainsi que le localhost.
Cliquez sur le nom de l’hôte créé. Cacti affiche les propriétés de l’hôte que l’on a vu précédemment ainsi que 2 cadres supplémentaires ASSOCIATED GRAPH TEMPLATES et ASSOCIATED GRAPH QUERIES.
Si l’on avait affecté un HOST TEMPLATE à l’hôte à l’étape 2.1, nous aurions vu dans ces 2 cadres apparaître les scripts correspondants.
Au dessus du cadre DEVICES, on s’aperçoit aussi que Cacti vous indique si le protocole SNMP est activé sur l’hôte.
Certains scripts sont déjà présents dans Cacti et sont utilisables en fonction du système de l’ordinateur. Ici nous allons affecter à l’hôte un script graphant les débits de la carte réseau de l’hôte.

Dans le cadre ASSOCIATED GRAPH QUERIES, choisissez dans le menu ADD DATA QUERY, choisissez SNMP – INTERFACE STATISTICS, puis cliquez sur ADD.
Le script a dû apparaître vous indiquant également que son status à la valeur SUCCESS et qu’il a trouvé un certain nombre d’ITEMS et de ROWS.
Dans la catégorie CREATE, cliquez sur NEW GRAPHS. Choisissez dans le menu déroulant, l’hôte qui nous intéresse. On retrouve les deux cadres de l’étapes 2.2, GRAPH TEMPLATES et DATA QUERY.

Dans le cadre DATA QUERY, on s’aperçoit que notre script à détecter 2 cartes réseaux , MS TCP LOOPBACK et HP NC7131 GIGABIT.
Dans notre exemple, c’est la deuxième carte qui nous intéresse. Pour créer son graphique, cochez la case correspondante. Dans le menu déroulant juste en dessous, on peux choisir dans quelle unité sera présenté le débit, ou bien nous indiquer les erreurs se trouvant sur l’interface.
Une fois votre choix fait, cliquez sur CREATE.
Nous allons indiquer à Cacti comment nous présenter les différents graphiques que vous allez créer.
Comme je l’ai précisé précédemment, cette étape n’est obligatoire qu’une seule fois. Mais il peux vous être nécessaires d’y revenir si vous choisissez une autre présentation que dans l’exemple.
Dans la catégorie MANAGEMENT, cliquez sur GRAPH TREES.
Nous choisissons ici la catégorie dans laquelle va apparaître notre hôte. Par défaut il en existe déjà une, DEFAULT TREE. Dans mon exemple, je vais créer une catégorie SERVEURS BORDEAUX, dans laquelle je vais pouvoir ranger tous mes serveurs situés sur Bordeaux.
Pour cela, cliquez sur ADD en haut à droite. Dans la case NAME, donnez un nom à votre catégorie. La case SORTING TYPE permet de choisir la façon dont Cacti va trier les différents hôtes :
* Manuel Ordering : tri manuel
* Alphabetic Ordering : tri par ordre alphabétique
* Numeric Ordering : tri par valeurs numériques
Puis cliquez sur CREATE. Dans la nouvelle fenêtre, nous allons y inscrire l’hôte. Cliquez sur ADD.
Le menu TREE ITEM TYPE contient trois options :
* Header : la branche d’un arbre. Title contient le nom de la branche, et Sorting Type la méthode de tri.
* Graph : affiche un graphique. Graph permet de choisir quel graphique afficher, Round Robin Archive permet de choisir sur quelle période s‘étend le graphique
* Host : affiche tous les graphiques d’un hôte, l’option Host permet de choisir quel hôte, Graph Grouping Style indique l’ordre de présentation
Puis cliquez sur CREATE. Maintenant votre hôte apparaît dans la catégorie que vous avez créée.
Vous pouvez admirer le résultat en cliquant sur le bouton GRAPHS en haut à gauche. Il se peut que le graphique mette quelques minutes à se créer.
Dans cette partie, on va créer un script qui va nous permettre de récupérer des valeurs à partir d’un OID d’une MIB.
Je ne vais pas détailler comment récupérer l’OID, mais juste l’utiliser. Les valeurs renvoyées par l’OID de cet exemple correspondent à l’activité du processeur n°1 d’un serveur HP ProLiant.
Cet OID a pour adresse : .1.3.6.1.4.1.232.11.2.3.1.1.2.0
Dans la catégorie TEMPLATES, cliquez sur DATA TEMPLATES, puis sur ADD en haut à droite.
Les différents champs du formulaire sont :
* Name (cadre Data Templates) : le nom de la data template
* Name (cadre Data Source) : le nom de la source de données (vous pouvez utiliser le même nom que pour le data template)
* Data Input Method : méthode de collecte des données (pour notre exemple choisissez Get SNMP Data)
* Associated RRA’s : Ceux sont les 4 RRA par défaut de Cacti :
Daily : graphique sur une période de 24h avec une moyenne de 5 min
Weekly : graphique sur une période de 7 jours avec une moyenne de 30 min
Monthly : graphique sur une période de 30 jours avec une moyenne de 2h
Yearly : graphique sur une période de 365 jours avec une moyenne de 24h
* Step : Temps en secondes entre chaque mise à jour des données
* Data Source Active : activation de la collecte des données
* Internal Data Source Name : nom de la source de données (champ limité à 19 caractères)
* Minimum Value : en dessous de cette limite, la valeur collectée sera considérée comme inconnue
* Maximum Value : au dessus de cette limite, la valeur collectée sera considérée comme inconnue
* Data Source Type : type de la source de données, c’est à dire la façon dont est retournée la donnée par l’OID
* Counter : c’est un compteur, on récupère la dernière valeur en faisant la différence entre la valeur actuelle du compteur et la précédente.
* Gauge : la valeur est retournée comme telle (choix à effectuer pour notre exemple)
Puis cliquez sur CREATE.
Comme nous avons choisi Get SNMP Data des nouveaux champs sont apparus en bas de la fenêtre.
* SNMP IP Address : adresse IP de la source de données (à laisser vide, Cacti le remplira automatiQUÉMENT avec l’adresse de l’hôte)
* SNMP Community : nom de la communauté SNMP (inscrivez-y « public »)
* SNMP Username et SNMP Password à remplir si vous utilisez la version 3 du SNMP
* SNMP Version : la version du SNMP (dans notre exemple la version 2)
* OID : l’adresse de l’OID à interroger (dans notre exemple : .1.3.6.1.4.1.232.11.2.3.1.1.2.0 )
Pour chaque champ du formulaire, une case à cocher « Use Per-Data Source Value (Ignore this value) » existe. Cette option vous permettra de modifier la valeur du champ au moment de la création du graphique.
Puis cliquez sur SAVE.
Dans la catégorie TEMPLATES, cliquez sur GRAPH TEMPLATES, puis sur ADD en haut à droite.
Un nouveau formulaire apparaît :
* Name : nom du modèle
* Title : titre du graphique, il est possible d’utiliser des variables telles que |host_description| qui sera remplacé par le nom d’hôte
* Auto Scale : adapter automatiQUÉMENT l’ordonnée du graphique aux valeurs extrêmes
* Auto Scale Options : adapte l’ordonnée aux valeurs minimums et maximales (Use –alt-autoscale), ou de 0 à son maximum ( Use –alt-autoscale-max).
* Auto Padding : adapte automatiQUÉMENT l’abscisse du graphique
* Base Value : valeur de base pour l’ordonnée (1024 pour la mémoire, 1000 pour le traffic réseau)
* Unit Value : unité de valeur de l’ordonnée
* Vertical Label : légende de l’ordonnée
Puis cliquez sur CREATE.
Deux nouveaux cadres sont apparus en haut de la fenêtre, c’est ici qu’on va indiquer quelle Data Template utiliser.
Dans le cadre GRAPH TEMPLATES ITEMS, cliquez sur ADD.
Dans ce formulaire, les champs sont les suivants :
* Data Source : nom de la Data Template qui récupères les données
* Color : couleur de la courbe
* Graph Item Type : différents types de graphiques
Comment : commentaire en bas du graphique
Line1 : courbe fine
Line2 : courbe moyenne
Line3 : courbe épaisse
Area : aire de couleur
Gprint : élément de légende
* Consolidation Function : fonction permettant de renvoyer une certaine valeurAverage : une moyenne
Last : la dernière valeur
Min : la valeur minimum
Max : la valeur maximum
* CDEF Function : permet d’appliquer une opération sur les valeurs (ex: Turn Bytes into Bits --> convertis les octets en bits )
* Text Format : texte de légende pour cette courbe
* Insert Hard Return : permet d’appliquer un retour à la ligne pour faciliter la mise en place des légendes
Puis cliquez sur CREATE.
Comme dans l’image ci-dessus, vous pouvez ajouter en légende des valeurs tels que la moyenne, la dernière valeur, et la valeur maximale.
De plus vous pouvez ajouter, sur un même Graph Template, plusieurs Data Template.
Maintenant cliquez sur SAVE en bas à droite de la page.
Cacti est un freeware de monitoring réseau de plus en plus utilisé. Dans cet article nous avons vu qu'une petite partie de ses possibilités. Vous pourrez retrouver plus d'informations à ces adresses:
Site officiel de Cacti:
http://www.cacti.net/
Cacti sous Windows:
http://www.supinfo-projects.com/fr/2005/cacti%5Ffr/
De nombreux scripts et templates:
http://forums.cacti.net/forum-12.html
Et pour la climatisation:
http://forums.cacti.net/about6750.html