Vous êtes sur la page 1sur 18

Cacti Ayoub Labidi

• Cacti : est un logiciel de supervision (dit de « capacity planning ») basé sur RRDtool
permettant de surveiller l’activité de son architecture informatique à partir de graphiques quotidiens,
hebdomadaires, mensuels et annuels. Cette solution n’est donc pas destinée à alerter en temps réel
sur les dysfonctionnements d’un système mais bien de proposer une vision dans le temps de
l’évolution d’indicateurs matériels et logiciels (trafic réseau, occupation des disques, temps de
réponse, etc…).

Mise en place de Cacti sur : Ubuntu 16.04.2

1 Pré-requis de Cacti :

L’installation de Cacti sous ubuntu 16.04 nécessite l’installation de quelques paquets :

• Lamp server: La première étape consiste à installer le Lamp server (Apache, Mysql,
PHP).
#sudo apt-get install apache2 mysql-server php7 libapache2-mod-php7

• RRDtools : C’est un outil open source utile pour le stockage et la récupération de


données de séries chronologiques.
# sudo apt-get -y install RRDTool
Cacti Ayoub Labidi

Figure 1: installation de RRDtools

• SNMP et SNMPD : On les utilise pour surveiller l'hôte local où cacti est installé, on a
installé et configuré le service snmpd comme suit :

Figure2: Configuration et installation de SNMPD


Cacti Ayoub Labidi

Maintenant, après avoir installé toutes les dépendances, On commence l'installation de Cacti.

2.3.2 Installation de Cacti :


Dès qu’on a fini l'installation des quelques packages de Cacti, on a suivi ses instructions.

Pour un moyen plus rapide de rechercher des serveurs d'informations que le script PHP par défaut
cmd.php, on va installer cacti spine.

# sudo apt-get -y install cacti épine cacti

Un message contextuel apparaît comme cela il suffit de sélectionner OK et passer à l’étape suivante.

Figure 3: Mettre à jour le php.ini

Maintenant, il nous demande un serveur Web qu’on utilise, on choisit Apache2 puisque c'est ce
qu’on a installé dans les dépendances.
Cacti Ayoub Labidi

Figure 4: choix du serveur web

Ensuite, il nous demande de configurer la base de données Cacti, on sélectionne Oui.

Figure 5:Demande de confirmation pour configurer la base de données de Cacti


Cacti Ayoub Labidi

Maintenant, il nous demande notre mot de passe root de base de données MySQL.

Figure 6:Saisie mot de passe root de base de données MySQL

Avant de commencer la partie de configuration Web, on doit démarrer le service snmpd et apache2.

Figure 7:Démarrage de service snmpd

Figure 8: Démarrage de service apache2

A partir d’un navigateur web, l’url : http://@IP_serveur/cacti/ nous permet d’obtenir la page
d’authentification au niveau de laquelle on saisit les paramètres d’authentification.
Cacti Ayoub Labidi

Une fois on est connecté sur l’interface web de cacti, on va suivre les instructions, et remplir les
champs en fonction de notre configuration.

Figure 9: Guide de l'installation de Cacti

Sélectionnant une nouvelle installation et on clique sur "Next".

Figure 10:Choix de type d'installation


Cacti Ayoub Labidi

Si tout est vert ça montre qu'on a suivi toutes les étapes.

Figure 11 : Vérification d'installation

Pour finir, la dernière étape concerne à choisir le mot de passe pour accéder à l'interface de cacti. Le
compte par défaut et le mot de passe sont "admin".

Figure 12 : interface web d'authentification de cacti


Cacti Ayoub Labidi

Après qu'on a connecté sur cacti, il nous affiche l’interface suivante.

Figure13:Interface web de cacti


Cacti Ayoub Labidi

Chapitre : Présentation de l’outil Cacti

Introduction :
Dans ce présent chapitre, nous commençons par définir la notion de la supervision et
ses objectifs. Ensuite, nous analysons de près les fonctionnalités de l’outil de supervision Cacti
qui va être implémenté dans la solution proposée.

1. Concept de la supervision :
La supervision est l’ensemble des opérations critiques telles que l’observation,
l’analyse, le jugement ainsi que l’intervention. Elle peut être appliquée sur le réseau, le système
et l’application. Elle permet de suivre à distance l’activité d’un réseau informatique ainsi
qu’assurer le bon fonctionnement d’un système ou d’une activité.
En fait, la supervision fournira des rapports sur le fonctionnement du système comme
l’utilisation du CPU, l’occupation de la mémoire physique, l’espace libre des disques durs, la
fluctuation de la température, etc. Ces rapports permettront à l’administrateur d’anticiper les
incidents sur le parc informatique, de piloter son réseau et de réaliser des actions en fonction
des alertes déclenchées. La supervision facilite donc la tâche de l’administrateur et garantit le
bon fonctionnement des serveurs et ceci grâce aux outils de supervision qui vont nous permettre
de visualiser l’état de santé de notre parc, ce qui est très souvent apprécié par les entités
dirigeantes des entreprises.

• Objectif :
De nos jours, les entreprises veulent surveiller leur réseau pour les raisons suivantes :
o Donner une vue globale sur le fonctionnement du réseau de leur entreprise, aussi
bien sur la disponibilité des différents serveurs que sur le fonctionnement de
services aux personnes chargées du réseau,
o Etre proactif en anticipant les pannes possibles. En effet, il est possible de
connaître un problème avant même que les utilisateurs ne s’en rendent compte.
La panne est donc réparée plus rapidement ce qui équivaut en entreprise à un
gain d’argent,
o Cibler le problème dès son apparition afin d’agir rapidement de la façon la plus
pertinente possible.
o Etre réactif en alertant l’administrateur par mail ou sms en cas de
dysfonctionnement d’une partie du système d’information.
Cacti Ayoub Labidi

2. Protocoles de gestion de réseau :


2.1 Protocole SNMP :
2.1.1 Définition :
SNMP signifie Simple Network Management Protocol (traduisez protocole simple de
gestion de réseau). Il s'agit d'un protocole qui permet aux administrateurs réseau de gérer les
équipements du réseau et de diagnostiquer les problèmes de réseau.
Le but de ce protocole est de permettre la visualisation en temps réel de l’état du réseau. C’est
dans cet esprit que SNMP a été adopté par les administrateurs réseau comme une solution leur
permettant de s’informer sur l’état d’une machine, gérer les événements inattendus, mesurer le
trafic ainsi que les erreurs à distance et même réaliser des configurations des équipements
distants à partir de la station de l’administrateur.

2.1.2 Différentes versions du SNMP :


Le protocole SNMP a connu pour l’instant trois versions (V1, V2, V3) :
• SNMP Version 1 (1987) : Ceci est la première version du protocole, la sécurité de cette
version est triviale, car la seul vérification qui est faite est basée sur la chaîne de
caractères " community " . SNMPsec. Très peu ou aucuns manufacturiers n'a utilisé
cette version qui est maintenant largement oubliée.
• SNMP Version 2 (1993) : cette version corrige la plupart des défauts de SNMP v1. Les
principales différences entre SNMPv1 et SNMPv2 sont :
- De nouvelles requêtes SNMP définies : deux nouveaux PDU ont été ajoutés dans
SNMPv2.
- Correction des failles de sécurité : pas de communauté en clair sur le réseau.
Utilisation de procédés de chiffrement et d’authentification des requêtes SNMP. Il s’agit
des PDU GetBulkRequest qui permettent à la station de gestion du réseau de récupérer
beaucoup de données à la fois, notamment pour récupérer des tables entières, et du PDU
InformRequest qui permet à un manager d’envoyer des messages semblables aux
messages de type trap à un autre manager.
• SNMP V3 (1998) : Cette version comprend une combinaison de la sécurité basée sur
les usagers et les types et les opérations de SNMPv2, avec en plus la capacité pour les
" proxies ". La sécurité est basée sur ce qui se trouve dans SNMPv2.

2.1.3 Fonctionnement :
Le protocole SNMP est basé sur un fonctionnement asymétrique. Il est constitué d'un
ensemble de requêtes, de réponses et d'un nombre limité d'alertes. Le manager envoie des
requêtes à l'agent, lequel retourne des réponses. Lorsqu'un événement anormal surgit sur
l'élément réseau, l'agent envoie une alerte (trap) au manager.
SNMP utilise le protocole UDP. Le port 161 est utilisé par l'agent pour recevoir les requêtes de
la station de gestion. Le port 162 est réservé pour la station de gestion pour recevoir les alertes
des agents.
Cacti Ayoub Labidi

Les requêtes SNMP


Il existe quatre types de requêtes: GetRequest, GetNextRequest, GetBulk, SetRequest :
• La requête GetRequest permet la recherche d'une variable sur un agent.
• La requête GetNextRequest permet la recherche de la variable suivante.
• La requête GetBulk permet la recherche d'un ensemble de variables regroupées.
• La requête SetRequest permet de changer la valeur d'une variable sur un agent.
Les réponses de SNMP
À la suite de requêtes, l'agent répond toujours par GetResponse. Toutefois si la variable
demandée n'est pas disponible, le GetResponse sera accompagné d'une erreur noSuchObject.
Les alertes (Traps, Notifications)
Les alertes sont envoyées quand un événement non attendu se produit sur l'agent. Celui-ci en
informe la station de supervision via une trap. Les alertes possibles sont: ColdStart, WarmStart,
LinkDown, LinkUp, AuthentificationFailure.

2.1.4 Architecture SNMP :

Figure 2:Communication manager-agent via SNMP


La gestion de réseau à partir du protocole SNMP est basée sur deux éléments principaux
comme le montre la figure 4 : un manager (superviseur) et des agents. Le manager est la console
qui permet à l’administrateur réseau d’exécuter des requêtes de management, en effet, c’est une
entité logicielle qui centralise les informations en provenance des équipements du réseau par
l’intermédiaire d’agents agissant pour le compte du manager.
Cacti Ayoub Labidi

Les agents sont des entités qui se trouvent au niveau de chaque interface connectant
l’équipement managé au réseau et permettant de récupérer des informations sur différents
objets.
Le manager envoie des commandes de contrôle et reçoit les réponses y afférant, l’agent fournit
un accès à un objet local MIB qui reflète l’état des ressources et l’activité de l’hôte et répond
aux commandes du manager en retournant les valeurs de la MIB et en assignant des valeurs.
Commande et Action
• get-request : Le Manager SNMP demande une information à un agent SNMP.
• set-request : Le Manager SNMP met à jour une information sur un agent SNMP.
• get-reponse : L’agent SNMP répond à un get-request ou à un set-request.
• Trap : L’agent SNMP envoie une alarme au Manager.

2.1.5 Composants de base SNMP :


• NMS : c’est un système sur lequel sont exécutées les applications contrôlant et
inspectant les équipements réseau. Toutes les ressources mémoires requises pour le
management du réseau sont fournies par le système de management. L’entité managée
se chargeant de l’envoi des requêtes aux divers agents SNMP se localise au niveau de
NMS.
• Agent : se situe au niveau de l’équipement réseau à administrer et représente un module
software indispensable à l’opération de gestion. Il est à l’écoute des éventuelles requêtes
de superviseur du réseau soit pour agir sur l’environnement local (modification de
paramètres), soit pour fournir la valeur d’un paramètre (consultation des paramètres).
• MD : c’est le nœud du réseau à gérer contenant un agent SNMP, permet de collecter et
stocker les informations nécessaires au management. Par la suite, ces informations sont
fournies au NMS moyennant le protocole SNMP.
• MIB : Management Information Base est une base d’informations de gestion. Elle
comprend des informations à consulter, des paramètres à modifier, ainsi que des alarmes
à émettre. La MIB est structuré sous une forme arborescente. Chaque objet de la MIB
est identifié par un nom et un OID. Le chemin suivi pour aller de la racine à l’objet
constitue l’OID de celui-ci. Les OIDs permettent de parcourir la MIB jusqu’à atteindre
la variable souhaitée pour en lire ou modifier les attributs. Une présentation de la
structure de la MIB est requise afin de bien maîtriser son intervention lors d’une
communication SNMP. Souvent appelée «arbre objet», la MIB définit les objets réseau
pouvant être supervisés sous forme d’une arborescence. Chacun de ces objets est
identifié par une marque numérique ou encore OID permettant sa reconnaissance par la
suite. Plus explicitement, un OID sert à désigner une caractéristique matérielle ou
logicielle d’un MD.
Cacti Ayoub Labidi

2.2 Protocole ICMP :


Le protocole ICMP (Internet Control Message Protocol) est un protocole de niveau 3
sur le modèle OSI qui permet de gérer les informations relatives aux erreurs aux machines
connectées. Son but est de tester la connectivité réseau mais aussi d’apporter une aide au
diagnostic en cas de problèmes ou de défaillances.

2.2.1 Programmes utilisant ICMP :


Il existe différents programmes ou fonctionnalités qui tirent parti des facilités offertes
par le protocole ICMP :
• Ping,
• nmap,
• Bing,
• Path MTU Discovery,
• Traceroute.

2.2.2 Programme "Ping" :


Le programme "ping" est un programme qui utilise les paquets ICMP de type "Echo" et
"Echo reply". Cet utilitaire permet de savoir si une machine est présente sur le réseau en lui
envoyant un paquet ICMP Echo. En recevant ce paquet, la machine répond par un paquet ICMP
Echo Reply. Si l’on ne reçoit pas de réponse, bien souvent cela signifie que la machine n’est
pas présente sur le réseau (mais il peut y avoir aussi d’autres causes à cette absence de réponse).
L’utilitaire "ping" permet aussi de spécifier la taille des données ICMP que l’on va envoyer, il
est possible de déduire la bande passante entre ces deux machines en affichant le temps entre
l’émission du paquet et la réponse.

2.2.3 ICMP et la translation d’adresse :


Dans la plupart des paquets ICMP, dans les données, on retrouve l’entête IP du paquet
initial qui a généré le problème et nécessité l’envoi d’un paquet ICMP. Dans le cas de translation
d’adresse (NAT), cet entête IP du paquet initial n’est absolument pas modifié par l’équipement
de translation en retour et cela peut donner :
• soit des données très difficiles à comprendre et à analyser,
• soit une mine d’informations pour un agresseur potentiel externe. En effet, il est possible
de deviner le plan d’adressage interne derrière le mécanisme de translation d’adresse.
Cacti Ayoub Labidi

3. Présentation de l’outil de supervision Cacti :


Cacti est un logiciel libre de mesure de performances réseau et serveur basé sur la
puissance de stockage de données de RRDTool. Il permet de faire l'étude d'indicateurs sur une
période donnée (moyenne sur le mois par exemple, ou maximum de la semaine…). Il fonctionne
grâce à un serveur web équipé d'une base de données MySQL et du langage PHP. Il peut être
considéré comme le successeur de MRTG et également comme une interface d'utilisation de
RRDTool. Il permet de représenter graphiquement divers états de périphériques et équipements
réseau utilisant SNMP pour connaître la charge processeur, le débit des interfaces réseau,
utilisation de la Qualité de service sur une ligne, la qualité d'une liaison (CRC/s) ou encore la
latence réseau.

3.1 Caractéristiques du Cacti :


Cacti est un produit open source qui permettent de suivre l’évolution d’une
infrastructure et des services proposés au fil du temps. Parmi ses nombreuses fonctions voici
les principales :
• Conserve un historique des valeurs capturées.
• Supporte une architecture plugable lui permettant d’étendre ses fonctionnalités et
notamment de passer en mode semi-actif basé sur les valeurs et variances de ses graphes
pour lever des alertes.
• Permet de créer ses propres graphes
• Basé sur l’outil open source RRDtool (Round Robin Database Tool).
• Supervision Web : Surveillance des performances et des disponibilités Web, Scénarios
flexibles.
• Surveillance globale : Suivi d’un groupe d’hôtes comme un seul hôte.
• Surveillance sans agent : support du SNMPv1/v2/v3, Support de l’IPMI, Support des
traps SNMP,
• Administration facile : Très rapide courbe d’apprentissage, toutes les données sont
stockées dans une base de données (MySQL), configuration centralisée et stockage de
l’information.

Figure 3:Fonctionnalités du Cacti


Cacti Ayoub Labidi

3.2 Les composants techniques de Cacti :

Figure 4:les composants techniques de cacti

3.2.1 Apache2 :
Est conçu pour prendre en charge de nombreux modules lui
donnant des fonctionnalités supplémentaires. Les possibilités de
configuration d'Apache sont une fonctionnalité phare. Le principe
repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment.
Cette caractéristique est notamment utile aux hébergeurs qui peuvent ainsi servir les sites de
plusieurs clients à l'aide d'un seul serveur HTTP.

3.2.2 PHP5 :
PHP appartient à la grande famille des descendants du C, dont la
syntaxe est très proche. En particulier, sa syntaxe et sa construction
ressemblent à celles des langages Java et Perl, à ceci près que du code PHP
peut facilement être mélangé avec du code HTML au sein d'un fichier
PHP. Dans une utilisation destinée à l'internet, l'exécution du code PHP se déroule ainsi lorsque
le visiteur demande à consulter la page du Cacti, son navigateur envoie une requête au
localhost. Le serveur appelle l'interprète PHP qui va traiter et générer le code final de la page,
Ce contenu est renvoyé au localhost, qui l'envoie finalement au client.
Cacti Ayoub Labidi

3.2.3 Mysql :
Les modèles MySQL fonctionnent en exécutant un script
PHP qui rassemble les informations des serveurs MySQL et les
renvoie aux Cacti. Le script fait une connexion MySQL ordinaire
pour recueillir ses commentaires. Il est fortement recommandé
d'utiliser le même nom d'utilisateur et le même mot de passe MySQL pour tous les serveurs que
vous souhaitez graver, afin de faciliter l'installation et la configuration du cacti.

3.2.4 RRDTool :
Est un outil de gestion de base de données RRD (Round-
Robin database) créé par Tobias Oetiker. Il est utilisé par de
nombreux outils open source, tels que Cacti, pour la sauvegarde
de données cycliques et le tracé de graphiques, de données
chronologiques. Cet outil a été créé pour superviser des données
serveur, telles la bande passante et la température d'un processeur. Le principal avantage d'une
base RRD est sa taille fixe.

3.3 Les composants logiques de cacti :

Figure 5:les composants logiques de cacti


Cacti Ayoub Labidi

3.3.1 Host (hôtes) :


Les variables d'hôte représentent des données d'hôte et peuvent être placées dans des
titres de graphe ou de source de données. Le tableau suivant décrit les variables hôtes pouvant
être utilisées et les champs hôtes auxquels elles correspondent.
Variable Name Description
|host_hostname| Nom d'hôte
|host_snmp_community| Communauté SNMP
|host_ping_retries| Réessayez SNMP
|host_max_oids| SNMP Maximum OIDs sur un bulkwalk
(v2, v3)
|host_id| Cacti ID interne pour cet hôte
Tableau 1: Exemples des variables hôtes du cacti

3.3.2 Host Templates (Modèles d'hôtes) :


Les modèles d'hôtes dans Cacti servent à un but différent puis des modèles de données
et de graphiques. Au lieu d'abstraire les champs d'un hôte, un modèle hôte vous permet
d'associer des modèles de graphe et des requêtes de données à un type d'hôte donné. De cette
façon, lorsque vous attribuez un modèle hôte à un hôte, tous les graphes pertinents à ce type
d'hôte sont à un seul clic de l'utilisateur.

3.3.3 Graph Templates (Modèles de graphiques) :


Dans Cacti, un modèle de graphique fournit un squelette pour un graphique réel. Si vous
avez beaucoup de graphiques qui partagent la plupart de leurs caractéristiques, l'utilisation d'un
modèle de graphique aurait probablement un sens. Après un graphique est attaché à un modèle
de graphique particulier, toutes les modifications apportées au modèle de graphe se propagent
sur l'ensemble de ses graphiques, à moins que l’utilisation par-Graph Value a été vérifiée.

3.3.4 Data Templates (Modèles de données) :


Dans Cacti, un modèle de données fournit un squelette pour une source de données
réelle. Si vous avez de nombreuses sources de données qui partagent la plupart de leurs
caractéristiques, l'utilisation d'un modèle de données aurait probablement un sens. Aucun
changement de modèle de données n'est propagé aux fichiers rrd déjà existants. Mais la plupart
d'entre eux peuvent être modifiés en utilisant rrdtool air de la ligne de commande. Faites
attention à ne pas ajouter de nouveaux éléments de source de données aux fichiers rrd déjà
existants.

Conclusion :
Le présent chapitre a été introduit avec une brève présentation de la notion de
supervision et des enjeux. Ensuite nous avons décrit l’aspect de la solution, énuméré ses
fonctionnalités et modélisé son architecture.
Cacti Ayoub Labidi

Lien :

https://doc.ubuntu-fr.org/cacti
https://openmaniak.com/fr/cacti_tutorial.php
https://wiki.monitoring-fr.org/cacti/ubuntu-install
https://www.monitoring-fr.org/2015/06/cacti-ou-en-est-cet-outil-de-reference-du-
monitoring/