Julien QUÉMENT

Etudiant en informatique


Installation et configuration de Cacti

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 ;-) ).

Installation de CACTI

Installation des outils de base

Voici l’installation préalable des outils nécessaires à Cacti. J’ai fait cette installation sur un système Debian Sarge 3.1.

  • apt-get install apache -y

    (installe les paquets apache, apache-common, libexpat1, mime-support et fixe DocumentRoot à /var/www)

  • apt-get install php4 -y

    (installe seulement la version php 4.1.2 du langage et configure apache pour php)

  • apt-get install mysql-server -y

    (installe le serveur mysql et aussi mysql-common, mysql-client et les librairies indispensables)

  • apt-get install php4-mysql -y

    (installe les librairies mysql indispensables pour php)

  • apt-get install phpmyadmin -y

    (en option : facilite l'administration de MySQL via une interface web)

  • apt-get install php4-cli -y

    (installe un interpréteur php en ligne de commandes)

  • apt-get install rrdtool -y

    (installe l'outil rrdtool)

  • apt-get install snmp snmpd -y

    (installe l'agent/client SNMP)

  • apt-get install php4-snmp -y

    (installe les librairies snmp indispensables pour php)

Installation de Cacti

  • cd /var/www/
  • wget http://www.cacti.net/downloads/cacti-0.8.6h.tar.gz
  • tar xzvf cacti-0.8.6h.tar.gz
  • mv cacti-0.8.6h cacti
  • cd cacti

Création de l'utilisateur Cacti

  • useradd cactiuser -d /var/www/cacti -s /bin/zsh
  • passwd cactiuser (entrez le mot de passe de l'utilisateur cactiuser, dans mon exemple j'utilise le mot de passe cacti)

Création de la base et de l'utilisateur mysql "cacti"

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:

  • mysqladmin -u root -p create cacti
  • mysql -u root -p cacti < cacti.sql

La première commande créé la table cacti et la deuxième fait sa mise en forme.

  • mysql --user=root -p mysql
  • GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cacti';
  • flush privileges;
  • exit

Modifier le fichier config.php:

vi /var/www/cacti/include/config.php

  • $database_type = "mysql";
  • $database_default = "cacti";
  • $database_hostname = "localhost";
  • $database_username = "cactiuser"; (ici l'utilisateur cactiuser avec son mot de passe que l'on a créé à l'étape précédente)
  • $database_password = "cacti";
  • $database_port = "3306";

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:

  • su - cactiuser
  • crontab -e
  • */5 * * * * /usr/bin/php /var/www/cacti/poller.php

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.

  • */1 * * * * /usr/bin/php /var/www/cacti/poller.php

Création de l'utilisateur Cacti

Dans un navigateur web, saisissez l'adresse suivante:

http://localhost/cacti/ ou http://IP_de_la_machine/cacti/

cacti-1 cacti-2
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.


cacti-3 cacti-4
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.

Vérification du fonctionnement

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 :

  • /usr/bin/php /var/www/cacti/poller.php

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

  • dpkg-reconfigure php4-mysql

et choisissez oui.

En ré-exécutant la commande :

  • /usr/bin/php /var/www/cacti/poller.php

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.


Configuration

Faire un graphique d’un hôte pour la première fois se fait simplement en 4 étapes :

  1. Créer l’hôte
  2. Affecter à l’hôte le script de récupération des données
  3. Créer le graphique
  4. Déclarer l’hôte dans l’arbre de présentation

Si vous rajoutez ultérieurement des graphiques au même hôte, l’étape 4 est facultative.

Créer l'hôte

Dans la catégorie MANAGEMENT, cliquez sur DEVICES, puis sur ADD en haut à droite.

cacti-5










Le formulaire propose les champs suivants :

  • Description : nom de l’hôte qui apparaîtra dans Cacti et non une véritable description
  • Hostname : adresse IP ou nom DNS de l’hôte
  • Host Template : modèle de template qui sera appliqué sur l’hôte (on peux créer un modèle dans lequel on indique tous les scripts qui s’appliqueront sur un hôte)
  • Disable Host : désactive l’hôte
  • SNMP Community : nom de la communauté SNMP utilisé pour la lecture (par défaut : public)
  • SNMP Username et SNMP Password : login et mot de passe de l’utilisateur autorisé lorsque le SNMP est de version 3
  • SNMP Version : version du protocole SNMP (par défaut : 1)
  • SNMP Port : port UDP du serveur SNMP (par défaut : 161)
  • SNMP Timeout : temps de réponse maximum à Cacti

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.

Affectation des scripts de récupération de données

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.

cacti-6













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.

Créer le graphique

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.

cacti-7







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.

Déclarer l’hôte dans l’arbre de présentation

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.

Création d’un script à l’aide d’un OID

Création du script de récupération de données

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.

Création de la mise en forme du graphique

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 valeur

Average : 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.


Conclusion

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