Documente Academic
Documente Profesional
Documente Cultură
Mes très chers parents en guise de remerciements pour leur dévouement à mon
éducation et surtout aux sacrifices consentis pour la bonne marche de mes études
Mes amis
Mes promotionnaires
Nous remercions tout d’abord ALLAH le tout puissant de nous avoir accordé vie et santé
jusqu’à la réalisation de ce travail, ainsi que son prophète Mohamed (Paix et salut sur lui).
Nous tenons également à exprimer nos vifs remerciements à tous ceux qui par leur travail,
leur idée, leur collaboration ont participé de prés ou de loin à la réalisation de ce mémoire à
savoir :
Notre professeur encadreur Monsieur Samuel Ouya, grâce à son sens poussé de la
pédagogie et à sa rigueur. Il nous a fait bénéficier de ses connaissances, tout en ayant
la volonté de nous encadrer.
Mon maitre de stage Omar Sagnang, Mohamed Alimou aidara, mon chef de service
Namory Dia et toute l’équipe de la supervision IP.
Nous ne saurions terminer sans exprimer tous nos remerciements à nos très chers parents,
pour le soutien qu’ils n’ont jamais cessé de nous apporter tout au long de nos études. Qu’ils
trouvent l’expression de toute notre gratitude et notre profonde reconnaissance.
INTRODUCTION
CHAPITRE01 : Présentation générale et choix d’une plateforme de supervision
I. Installation...................................................................................................30
1. Pré-requis.............................................................................................................................30
2. Installation de nagios...........................................................................................................30
3. Installation des plugins Nagios...........................................................................................33
4. Installation du protocole SNMP.........................................................................................33
II. Configuration..............................................................................................33
1. Configuration d’apache......................................................................................................33
2. Configuration des fichiers principaux de nagios...............................................................36
3. Configuration du protocole SNMP...................................................................................40
I. RRDTOOL..................................................................................................48
1. Présentation.........................................................................................................................48
2. Manipulation.......................................................................................................................48
a. Création de fichiers RRD....................................................................................................48
b. Peuplement d’un fichier RRD............................................................................................49
c. Création du graphique........................................................................................................50
CONCLUSION
C'est pourquoi les administrateurs réseau font appel à des logiciels de surveillance et de
supervision de réseaux. Ces logiciels vérifient l'état du réseau ainsi que des machines
connectées et permettent à l'administrateur d'avoir une vue d'ensemble en temps réel de
l'ensemble du parc informatique sous sa responsabilité. Il peut être aussi informé (par email,
par SMS) en cas de problème. Grâce à un tel système, les délais d'interventions sont fortement
réduits.
Plusieurs logiciels réalisent ces taches, comme par exemple Websense, Tivoli, Observer, Hp
Openview, Ciscoworks, Patrol et d'autres, mais certains sont payants.
Dans ce domaine, un logiciel fait office de référence: Nagios. En effet Nagios est très
performant et possède une prise en main assez intuitive. Il s'installe sur une machine
possédant un système d'exploitation Linux, mais peut superviser aussi bien des machines
Linux que Windows. Cet outil permet également une supervision des équipements réseaux
(routeur, switch), ce qui est primordial pour l'utilisation que l'on va en faire.
De plus, Nagios est un outil Open source: Chaque société peut l'adapter comme elle lui
semble. Puis, la société ne payera pas de licence: Elle ne payera que les frais de formation,
d'installation et de maintenance.
Elle est devenue en 1997 une société privée en s’alliant à France Télécom qui possède
actuellement 42% de son capital. Cette figure montre les différents actionnaires de la
SONATEL.
SONATEL Mobiles créée En 1999, avec la marque Alizé gérant toutes les offres
mobiles du groupe.
SONATEL Multimédia créée En 2001 chargée du développement de l’activité
internet sous la marque Sentoo.
ORANGE Mali créée en 2002, la Guinée Bissau et la Guinée Conakry en 2007 ou
SONATEL commence à s’imposer comme un leader régional.
SONATEL Business Entreprise créée En 2004, spécialisée dans les réseaux privés
d’entreprise.
Le 31 Décembre 2007, SONATEL détient une part de marché d’environ 71% pour les
services mobiles avec plus de 5 millions de clients. Son réseau couvre environ 84% du
térritoire sénégalais. Son capital est estimé à cinquante (50) milliards de FCFA. F
FFFFF
Elle a un réseau GSM (2G, 3G) et RTC pour offrir les services de téléphonie fixe et mobile.
Elle a aussi un réseau de données IP/MPLS pour offrir l’internet, la TV/ADSL, la Mobile TV
et permettre aussi d’interconnecter les sites distants des entreprises par VPN.
3. Organigramme de l’entreprise
La direction de la SONATEL est composée d’une direction générale, d’une direction générale
adjointe, des directeurs des filiales (Orange Mali, Orange Conary, Orange Bissau, etc) et de
15 directions opérationnelles composées chacune de plusieurs départements, services et
centres techniques.
Le département ERT
Les principales attributions de ce département sont les suivantes :
Le département ERT est composé de plusieurs services parmi lesquels nous retrouvons :
Notre stage s’est effectué au service SQT. Le schéma suivant nous montre l’organigramme
du pôle d’exploitation DRSI/DEX.
Nous allons présenter dans ce chapitre la notion de supervision de réseau. En quoi cela
consiste il exactement et concrètement ? Nous tenterons de répondre à cette question en
présentant les deux grands axes de la supervision et leurs objectifs respectifs.
Un utilisateur qui accède à service informatique, comme par exemple une simple consultation
d’une page web de l’intranet, met en œuvre de nombreux mécanismes et doit réunir toutes les
bonnes conditions. Tout d’abord les lignes de communications ne doivent pas être engorgées.
Les éléments actifs établissant le chemin ainsi que la machine fournissant le service doivent
être opérationnels et le service concerné doit être disponible. Le schéma ci-dessous retrace les
différents points clés, garants de l’accessibilité d’un service.
Nous voyons donc se distinguer deux axes majeurs de la supervision de réseau au sens général
:
L’analyse de flux
la supervision des équipements et des services.
Notre étude porte en première partie sur la supervision des équipements et des services en
utilisant le logiciel nagios. En deuxième partie on va étudier l’analyse des flux en utilisant le
logiciel cacti.
a. L’analyse de flux
L’analyse de flux consiste à connaître l’activité en temps réel sur les liaisons réseaux. Les
buts sont à la fois d’identifier les liaisons saturées et d’identifier l’origine de cette sur
utilisation des ressources. De plus, au travers de statistiques, les dirigeants peuvent décider de
l’augmentation des débits des liaisons qui sont saturées.
Tout cela joue un rôle déterminant dans la stratégie de développement de l’entreprise.
De nombreux outils permettent de faire cela. Ils utilisent tous le même principe de sondes qui
« sniffent » le trafic sur une liaison précise.
Ces informations sont ensuite analysées selon les besoins des administrateurs. En général les
informations recherchées sont des classements par nombre de paquets transmis par utilisateurs
ou par application, par protocoles…
Ceci permet d’identifier les causes principales de la saturation constatée.
Nous pouvons citer par exemple les logiciels rrdtool ou Ntop qui sniffent au niveau des
interfaces de machines ou routeurs, fastnet (payant) qui nécessite la mise en place d’une
sonde, ou encore cacti qui donne les statistiques à temps réels sur les équipements à l’aide de
graphes.
Comme nous allons le voir dans la suite, SNMP est le protocole de référence en matière de
supervision. Il permet à un serveur central de communiquer avec tous les équipements et
Les gros éditeurs logiciels ont rapidement compris que la supervision était une ressource clé
pour les entreprises qui, de plus en plus, utilisent leur système d'information et ont donc
besoin d'une disponibilité toujours plus grande de leur infrastructure informatique.
Par conséquent, la supervision est un domaine dans lequel les sociétés n'hésitent pas à investir
depuis quelques années. Ayant rapidement compris cela, les gros éditeurs logiciels sont donc
très vite entrés dans la course aux logiciels de supervision.
Aujourd'hui, la majorité des gros éditeurs logiciels propose des outils complets de
supervision. On retrouve, parmi les plus connus :
HP : la gamme Openview (NNM, OVO, ...)
BMC : Patrol
IBM : Tivoli
Computer Associates : Unicenter TNG
BigBrother
Ces outils, véritables frameworks de la supervision, possèdent tous leur avantage face à la
concurrence. Cependant, tous ont également le même défaut : le prix !
En effet, il faut savoir que, pour une entreprise de taille moyenne, il lui faudra compter
plusieurs millions pour superviser son système.
Depuis une dizaine d'années déjà, plusieurs projets de supervision ont vu le jour au sein de la
communauté du logiciel libre. Il suffit pour cela d'aller faire un petit tour sur sourceforge pour
se rendre compte de la multitude de projets émergeants autour de la supervision système et
Réseau. On notera ainsi, parmi les plus populaires : Zabbix, Cacti et Nagios qui feront
l'objet de notre étude.
Cacti
C’est un outil de création de graphiques reposant sur une interface web basée sur PHP et
MySQL et qui utilise le moteur RRDTool pour collecter les statistiques.
La force de Cacti provient du fait qu'il peut être aisément installé et utilisé. Il est possible de
partager ses modèles (Template) avec d'autres utilisateurs et ainsi de vous faire gagner du
temps.
Nagios
Nagios (anciennement appelé Netsaint) est une application permettant la surveillance système
et réseau. Elle surveille les hôtes et services spécifiés, alertant lorsque les systèmes ont des
dysfonctionnements et quand ils repassent en fonctionnement normal. C'est un logiciel libre
sous licence GPL.
NAGIOS
1. Historique et présentation
Créé en 1988 par l’IETF (Internet Engineering Task Force), SNMP (Simple Network
Management Protocol) était à l'origine destiné à l'administration distante des ponts et des
routeurs. Aujourd’hui, SNMP est utilisé pour l'administration d'un large éventail de matériel
informatique. C'est un protocole réseau qui permet comme son nom l'indique, de gérer les
équipements réseaux ainsi que les machines informatiques. Ce protocole est donc utilisé par
les administrateurs réseaux pour détecter à distance les problèmes qui surviennent sur leur
réseau. Le protocole SNMP définit des échanges entre un client et un serveur afin de :
Connaître l’état d’un appareil.
Gérer les évènements exceptionnels
Mesurer le trafic et les erreurs à distance.
Configurer les appareils à distance
Il est l’un des protocoles (simples) de gestion de réseaux les plus utilisés, devenu de fait un
standard quasi incontournable dans le domaine. Il s’appuie sur le protocole TCP/IP ce qui
peut expliquer le fait qu’il se soit propagé si rapidement.
Il existe trois versions de SNMP : SNMPv1, SNMPv2 et SNMPv3 et plusieurs standards qui
définissent ce protocole : la RFC 1155SMI (Structure of Management Information), RFC
1156MIB (Management Information Base), RFC 1157SNMP Protocol, etc.
Plus qu’un simple protocole de liaison, la mise en place d’une structure utilisant SNMP fait
intervenir plusieurs concepts:
La station d’administration
C’est la machine qui centralise toutes les données, c’est le cœur du système. C’est notamment
cette station qui va dialoguer avec les différents matériels à administrer.
Les agents SNMP
Ce sont des démons installés sur tous les éléments du réseau à superviser (machines serveurs
ou éléments actifs). Ils envoient les traps SNMP et répondent aux requêtes de la station
d’administration.
Comme on le constate le protocole est simple. Cependant, étant un protocole Internet, il doit
être utilisable sur des plates formes hétérogènes (matériel et système d’exploitation !). Il a
donc fallu lui associer des standards pour la gestion, le stockage des informations transportées
SNMP est un protocole de type client serveur, donc basé sur l'utilisation de démons (les
agents SNMP).Le principe est très simple sur chacune des machines, on installe un petit
programme : l’agent SNMP.
Cet agent enregistre en permanence des informations relatives à la machine et les stocke dans
une base de données. Ainsi, de son ordinateur, l’administrateur peut interroger chacune de ses
machines et obtenir les informations qu’il souhaite.
C'est un protocole de la couche application (niveau 7 du modèle OSI) qui se base sur UDP
pour l'acheminement des informations entre les différents agents (les agents écoutent les
requêtes sur les ports UDP 161 et les alarmes sur le port 162).
Chaque agent situé sur un nœud du réseau qui est dit administrable (MN : Managed Node)
renseigne périodiquement les variables de MIB (délai paramétrable dans le fichier de
configuration par défaut fixé à 30 secondes avec l’agent de netsnmp2). Ces nœuds peuvent
être soit des hôtes (stations de travail ou serveurs), soit des éléments d’interconnexion
(Switch, hubs, routeurs).
Lorsqu’un évènement inattendu se produit sur un des périphériques gérés, par exemple un
échec de transmission ou une modification d’état, le périphérique envoie un « trap » SNMP au
NMS (Network Management System). Ce trap contient une indication de l’évènement ayant
provoqué la génération du message. Le gestionnaire SNMP doit alors prendre des mesures qui
s’imposent. Il peut se contenter d’enregistrer le message dans un fichier de suivi, ou prendre
des mesures plus immédiates, par exemple demander des informations complémentaires au
périphérique lui ayant envoyé le message.
Ces informations supplémentaires sont obtenues grâce à des requêtes de lecture des variables
MIB. Si le NMS est programmé pour le contrôle du périphérique, il peut lui demander de
modifier la valeur de ses variables MIB.
L'accès aux variables d'un matériel réseau se fait grâce à un mot de passe particulier que l'on
appelle la communauté.
Les communautés
La chaine de caractères communauté de SNMP authentifie l’accès aux objets et aux fonctions
de la MIB. Pour que le NMS puisse accéder à un équipement, il faut que la chaîne de
caractères définie sur la MIB ait au moins un des attributs suivants :
3. Nagios et SNMP
Le logiciel de supervision Nagios ne dispose pas nativement d’une supervision avancée
d’équipements par SNMP. Comme nous l’avons expliqué dans les rubriques ci-dessus, SNMP
peut être un outil intégré à Nagios. Cependant des plugins spécifiques NRPE, NSCA fourni
par Nagios permettent de ne pas utiliser SNMP. Néanmoins, l’utilisation de ces plugins
impose l’installation d’un agent spécifique (les agents SNMP étant par défaut sur tous les
commutateurs) sur chaque machine supervisée ! Des plugins utilisant SNMP sont également
fournis dans l’installation par défaut de Nagios. Nous pouvons citer check_snmp ou
check_ifoperstatus par exemple. Le second va nous permettre par exemple de remonter
l’état, le statut (up ou down) d’un port précis d’un commutateur donné.
Nagios n'est pas un gestionnaire SNMP, cependant, on peut utiliser ce protocole, soit via le
plugin "check_snmp" qui utilise la commande snmpget soit via un script Perl, pour contrôler
certains services ainsi que gérer des remontées d'alertes (traps snmp).
Trois mécanismes sont utilisés. Chacun de ces mécanismes a pour but d'empêcher un type
d'attaque.
a. L’authentification
L'authentification a pour rôle d'assurer que le paquet reste inchangé pendant la transmission,
et que le mot de passe est valide pour l'usager qui fait la requête. Pour construire ce
mécanisme, on doit avoir connaissance des fonctions de hachage à une seule direction. Des
exemples de ces fonctions sont : MD5 et SHA-1. Ces fonctions prennent en entrée une chaîne
de caractères de longueur indéfinie, et génèrent en sortie une chaîne d'octets de longueur finie
(16 octets pour MD5, 20 octets pour SHA-1).Pour authentifier l'information qui va être
transmise, on doit aussi avoir un mot de passe qui est « partagé ». Le mot de passe ne doit
donc être connu que par les deux entités qui s'envoient les messages, et préférablement par
personne d'autre.
Avec cette technique, le mot de passe est validé sans qu'il ait été transmis sur le réseau.
Quelqu'un qui saisit les paquets SNMPv3 passants sur le réseau ne peut pas facilement trouver
le mot de passe.
b. Le cryptage
Le cryptage a pour but d'empêcher que quelqu'un n'obtienne les informations de gestion en
écoutant sur le réseau les requêtes et les réponses de quelqu'un d'autre.
Comme les informations que l'on doit encrypter sont plus longues que 8 octets, on utilise du
chaînage de blocs DES de 64 bits. Une combinaison du mot de passe, d'une chaîne aléatoire et
d'autres informations forme le « Vecteur d'initialisation ». Chacun des blocs de 64 bits est
passé par DES et est chaîné avec le bloc précédent avec un XOR. Le premier bloc est chaîné
par un XOR au vecteur d'initialisation. Le vecteur d'initialisation est transmis avec chaque
paquet dans les « Paramètres de sécurité », un champ qui fait partie du paquet SNMPv3.
Contrairement à l'authentification qui est appliquée à tout le paquet, le cryptage est seulement
appliquée sur le PDU. La RFC 3826 "The Advanced Encryption Standard (AES) Cipher
Algorithm in the SNMP User-based Security Model" relate l'intégration d'AES dans SNMP.
Celui renforce le chiffrement en remplacement du DES. Cependant, pour le moment, cette
RFC est en cours de validation et donc pas encore officialisée.
c. L’estampillage de temps
On appelle ce type d'attaques le « Replay Attack ». Pour éviter ceci, le temps est estampillé
sur chaque paquet. Quand on reçoit un paquet SNMPv3, on compare le temps actuel avec le
temps dans le paquet. Si la différence est plus que supérieur à 150 secondes, le paquet est
ignoré.
SNMPv3 n'utilise pas l'heure normale. On utilise plutôt une horloge différente dans chaque
agent. Ceux-ci gardent en mémoire le nombre de secondes écoulées depuis que l'agent a été
mis en circuit. Ils gardent également un compteur pour connaître le nombre de fois où
l'équipement a été mis en fonctionnement. On appelle ces compteurs BOOTS (Nombre de fois
ou l'équipement a été allumé) et TIME (Nombre de secondes depuis la dernière fois que
l'équipement a été mis en fonctionnement).
La combinaison du BOOTS et du TIME donne une valeur qui augmente toujours, et qui peut
être utilisée pour l'estampillage. Comme chaque agent a sa propre valeur du BOOTS/TIME, la
plate-forme de gestion doit garder une horloge qui doit être synchronisée pour chaque agent
qu'elle contacte. Au moment du contact initial, la plateforme obtient la valeur du
BOOTS/TIME de l'agent et synchronise une horloge distincte.
1. Historique
Nagios est un outil de Supervision Libre. Il est disponible sous Licence GNU GPL
version2 .Développé sous le nom de NetSaint en 1999 par Ethan Galstad, le projet est ensuite
renommé en Nagios ("Nagios Ain't Gonna Insist On Sainthood") pour des raisons de droits de
marques en 2001.
En effet, une société avait déjà déposé ce nom et Ethan a préféré modifier le nom de son
projet plutôt que de consommer du temps et de l‘argent.
Les principaux développeurs sont Ethan Galstad pour le cœur de Nagios, Karl DeBisschop,
Subhendu Ghosh, Ton Voon et Stanley Hopcroft ont réalisé les principaux plugins de Nagios.
Cependant, de nombreuses personnes ont participé au projet et continuent de le faire.
Notamment sur la partie plugins, de nombreux développeurs mettent à disposition de la
communauté leurs propres plugins. La partie "Liens" (en cours de construction pour le
moment) indique une série de sites web mettant à disposition des plugins.
2008
2. Les fonctionnalités
En réalité Nagios peut superviser de nombreux éléments. Il est simple de l'étendre car il est
conçu dans cette optique. Il permet de superviser plusieurs équipements compatible avec le
protocole SNMP comme :
les Windows NT/2000/2003/XP
tous les Linux (Debian, Ubuntu, Redhat...)
les AS400
Serveurs
les Switchs
les routeurs
les firewalls
les robots de sauvegarde,
.
Nagios supervise à la fois le hardware que le software. Au niveau du hardware, il suffit
d'installer l'agent SNMP spécifique au constructeur du serveur (Dell, Compaq, IBM, ...). Au
niveau hardware sont généralement disponibles les éléments suivants:
o état de chacun des CPU
o état des barrettes de RAM
o état de chacun des disques physiques
o état de la carte RAID
o état des ventilateurs et des alimentations (branché/débranché, fonctionnement
correct/incorrect)
o température des équipements
Au niveau software, il existe de nombreux plugins permettant de superviser:
o le taux d'occupation du CPU, de la RAM, du SWAP, des filesystems (partitions)
o le nombre de processus
o la présence de point de montage NFS ou de partage
o l'ouverture d'un port TCP
o la réponse à une requête particulière (SQL, HTTP, POP, IMAP, ...)
2008
Figure 6: Architecture de Nagios
Nagios n'est donc qu'un moteur d'ordonnancement de vérifications diverses et variées. Enfin,
un peu plus, mais nous n'allons utiliser que cette vision pour l'instant.
Ces vérifications sont assurées par des greffons (plugins en anglais), dont le développement
est séparé du moteur principal (pour les greffons de base).
Le terme plugin désigne une extension prévue des fonctionnalités, en comparaison des ajouts
non prévus initialement apportés à l'aide de patches.
La relation entre le moteur et les greffons est assurée d'une part dans la configuration de
Nagios pour que Nagios sache quelles vérifications lancer sur ou à destination de quelles
machines ou services, d'autre part par le code retour ainsi que la sortie standard d'un greffon.
En effet, un greffon n'est qu'un script, un programme qui sache fournir un code retour (0: tout
va bien, 1: avertissement, 2: alerte), et éventuellement un petit message décrivant le
déroulement de l'exécution (aide au diagnostic en cas de problème).
Les codes retours sont aussi nommés: 0: OK, 1: WARNING, 2: CRITICAL et 3:
UNKNOWN. Ce sont donc ces états qui seront ensuite remontés au moteur qui prendra les
décisions et lancera les actions programmées. Ces greffons fonctionnent soit en local sur la
machine supervisée (par exemple les vérifications sur les disques), soit effectuent des tests à
Un exemple de plugin
L'écriture d'un greffon ou plugin doit respecter deux règles: légèreté et simplicité. En effet, ce
greffon doit passer inaperçu dans son exécution, au sens où il ne doit pas se faire sentir sur la
charge globale de la machine, et doit rester simple dans l'esprit d'un greffon Nagios. À ce titre,
il doit accomplir une tâche et une seule, mais le faire bien. Le choix du langage est libre : Perl,
C, bash,…etc.
Dans l’exemple suivant nous allons créer un script permettant de détecter le système
d’exploitation de la machine testée en utilisant le protocole SNMP.
nmap -O $1>/usr/local/nagios/libexec/tmp
OS=`cat /usr/local/nagios/libexec/tmp|grep "linux"|wc -l`
if test "$OS" -ge 1; then
$ECHO "OS=LINUX\n"
exitstatus=$STATE_OK
2else
OS=`cat /usr/local/nagios/libexec/tmp|grep "Windows"|wc -l`
if test "$OS" -ge 1; then
$ECHO "OS=WINDOWS\n"
exitstatus=$STATE_OK
else
$ECHO "OS INCONNU\n"
exitstatus=$STATE_OK
fi
fi
rm /usr/local/nagios/libexec/tmp
define command {
command_name snmp_OS
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -o
system.sysDescr.0 -l OS
}
define service {
host_name mon_pc_serveur
service_description OS_par_SNMP
check_command snmp_OS
use generic-service
}
Dans notre configuration, c’est le démon snmptrapd de Net-SNMP qui utilise ce programme
client via le script ‘traitement-trap’.
Quelque soit le mode de fonctionnement, Nagios remonte des alertes aux administrateurs
définis dans ses fichiers de configuration, que soit par mail, sms, pagger… Nagios met aussi
en permanence à jour sont interface web qui reflète donc en temps réel l’état du réseau et des
services.
l’état « SOFT »
L’état SOFT correspond à une vérification :
qui retourne un résultat différent de « OK »,
mais n’a pas atteint le nombre maximum d’essais spécifié par max_check_attempts.
l’état « HARD »
L’état HARD d’un service correspond à une vérification :
Qui retourne toujours un résultat différent de « OK », alors que le service a été testé le
nombre maximum de fois spécifiées par max_check_attempts dans la définition de
l’hôte.
qui retourne un résultat différent de « OK » tandis que l’hôte associé est « DOWN »
ou « UNREACHABLE ».
Le premier est l'interface web : elle est consultable avec un simple navigateur web,
sans fonctions avancées et contraignantes (pas de plugin JavaScript, applet Java,
Flash, ... nécessaires). Cette interface web est orientée technique : les techniciens
l'apprécient beaucoup car elle est claire, efficace et fonctionnelle. Les décideurs ne la
trouvent pas très agréable au niveau visuel. Cependant, il n'est pas possible de rester
constamment devant une interface web sauf si l'on dispose d'une équipe dédiée à cela
(souvent appelée pupitre, service desk ou plus rarement exploitation). Il existe
d'autres moyens d'avertir les administrateurs.
200 8
Figure 8 : Notifications de Nagios
I. Installation
1. Pré-requis
La mise en place de Nagios requiert une plateforme UNIX. Nous avons choisi Debian qui est
plus apte pour une administration avancée. Nagios a, en plus des plugins, besoin de satisfaire
un certain nombre de dépendances. Les pré-requis à l'installation sont les suivants :
2. Installation de nagios
Passer en root
$ su root
adduser nagios
mkdir /usr/local/nagios
Installer GD-utils
cd gd-2.0.33
. /configure
Installation de nagios
Dans notre étude, nous allons installer le package nagios 2.9 qui est une version très stable.
Nous allons tout d’abord désarchiver le package téléchargé ensuite passer à la compilation
puis à l’installation.
cd /tmp
cd nagios-2.10/
Les fichiers de Nagios seront placés, par défaut dans des répertoires qu’il faudra ensuite
chercher dans le système de fichiers. Pour faciliter l’accès tout en respectant ce système de
group=nagios
make all
make install
make install-init
make install-commandmode
make install-config
cd /usr/local/nagios
cd /usr/local/nagios/etc
mv cgi.cfg-sample cgi.cfg
mv localhost.cfg-sample localhost.cfg
mv resource.cfg-sample resource.cfg
mv commands.cfg-sample commands.cfg
mv nagios.cfg-sample nagios.cfg
Les plugins de Nagios sont les commandes utilisées pour vérifier les services des hôtes
surveillés. Tout d’abord, télécharger nagios-plugins-1.4.10.tar.gz avant de passer à
l’installation.
cp Nagios-plugins.tar.gz /tmp
cd /tmp
cd Nagios-plugins
. /configure
make
make install
L’installation du protocole SNMP, pour qu’il puisse envoyer des traps à nagios, nécessite
certains pré-requis :
Le paquetage Net-SNMP, qui fournit le service de capture des traps
SNMP "Snmptrapd"
apt-get install net-snmp
Le paquetage Perl Net-SNMP associé.
apt-get install nmap librrds-perl libgd-gd2-perl libnet-snmp-perl
Le paquet SNMP
apt-get install snmp snmpd
L'outil de transformation SNMP trap translator ou SNMPTT, qui rend les traps
lisibles par un humain, et les envoie à Nagios.
apt-get install snmptt
Sur la machine distante, il est important d'avoir activé le service SNMP. Sur la station de
surveillance, seul snmptrapd, qui réceptionne les traps (snmpd gère les requêtes en
provenance d'une machine distante donc inutile sur celle-ci), doit être actifs (si on reçoit des
traps bien sûr !). On peut tester le bon fonctionnement de ces processus en ligne de commande
par un snmpget, un snmpwalk ou un snmptrap .
II. Configuration
1. Configuration d’apache
Il faut modifier le fichier de configuration d’apache en y ajoutant le script qui lui permet de
prendre nagios en compte.
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
/etc/init.d/apache2 restart
gedit /usr/local/nagios/etc/cgi.cfg
vim /usr/local/nagios/sbin/.htaccess
vim /usr/local/nagios/share/.htaccess
New password:
/etc/init.d/nagios start
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
La configuration de Nagios demande beaucoup de temps et n'est pas chose aisée. En effet,
l'ensemble de la configuration du logiciel se fait dans des fichiers textes d'extension .cfg.
L'ensemble des fichiers de configuration sont définis selon le format suivant :
define type
attribut1 valeurs
attribut2 valeurs
... valeurs
Ce mécanisme de définition implique qu'aucun espace ne pourra être inséré dans les
paramètres et leurs valeurs. La cohérence des fichiers de configuration peut être testée en
exécutant Nagios avec l'option -v et en lui fournissant le fichier de configuration
principal.
L'ordonnancement de la vérification des services se fait elle selon des périodes de temps
définis par les clauses timeperiod dans le fichier timeperiods.cfg. Le rôle de Nagios est
donc de prévenir lorsqu'un problème survient. Les contacts à prévenir sont définis dans le
fichier contacts.cfg et peuvent eux aussi être groupés dans le fichier contactgroups.cfg.
L'escalade des alertes entre les groupes, en cas de non réponse, peut être définie dans le
fichier escalations.cfg. Il reste alors le fichier misccommands.cfg dans lequel sont
déclarées les commandes non-destinées au lancement de plugin. On y trouvera par exemple
les commandes nécessaires à l'envoi de mail, de SMS, etc. Enfin, d'autres fichiers peuvent
également être utilisés tels que dependencies.cfg pour définir des dépendances entre
services, cgi.cfg pour la configuration des CGI, hostextinfo.cfg pour les infos
supplémentaires sur les hôtes (icône, coordonnées graphiques sur la statusmap, ...)
et serviceextinfo.cfg idem que hostextinfo.cfg mais pour les services.
nagios.cfg
ressource.cfg
Il s'agit d'un fichier de déclaration utilisé par les autres fichiers de configuration
de Nagios. Il permet de définir des variables globales pour une utilisation simplifiée dans les
autres fichiers de configuration (ex : $USER1$=/usr/local/nagios/libexec).
Tout d'abord, nous allons définir notre fichier d'hôtes. Ce fichier se trouve dans
/etc/nagios/hosts.cfg. .
Dans notre cas les fichiers cgi.cfg, hosts.cfg, hostgroups.cfg, services.cfg, servicegroups.cfg,
contacts.cfg, contactgroups.cfg, timeperiods.cfg, escalations.cfg constituent un seul fichier
nommée appelé bigger.cfg
De ce fait, une fois le Nagios configuré et qu'il tourne, la mise à jour (ajout hôte ou service)
nécessitera juste une modification sur du fichier bigger.cfg. Ci-dessous un exemple de fichier
bigger.cfg. Cet exemple permet des tester la charge du CPU (SNMP_CPU) de l’hôte nommé
GW_VOIP1.
KANNEL-SNTL:~# cd /etc/nagios3
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
define contact{
contact_name nagios
alias Nagios Admin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email nagios@sonatel.sn
}
define host{
name generic-host ; The name of this host template
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 0 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program
restarts
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A
REAL HOST, JUST A TEMPLATE!
contact_groups nagios
}
define host{
use generic-host ; Name of host template to use
host_name GW_VOIP1
alias GW_VOIP1
address 10.1.1.1
check_command check-host-alive
max_check_attempts 10
notification_interval 240
notification_period 24x7
notification_options u
}
define service{
name generic-service ; The 'name' of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized (disabling
this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
# Service definition
define service{
use generic-service
hostgroup_name GW_VOIP
service_description SNMP_CPU
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 1
process_perf_data 1 ; Process performance data
notification_interval 240
notification_period 24x7
notification_options n
check_command check_snmp_cpu!1.3.6.1.4.1.9.2.1.56.0!
publickey!'0:30'!'0:70'
contact_groups routeur-admins
# Service definition
define servicegroup{
servicegroup_name GW_VOIP_CPU
alias GW_VOIP_CPU
members GW_VOIP1,SNMP_CPU
Configuration de Snmptrapd
Le fichier de configuration /etc/snmp/snmptrapd.conf doit contenir :
traphandle default /usr/sbin/snmptt
disableAuthorization yes
donotlogtraps yes
Configuration de SNMPTT
Nous allons faire fonctionner SNMPTT en mode "stand-alone" ; il sera appelé chaque fois
que nécessaire par le gestionnaire d'interruptions snmptrapd.
L'initialisation est plus longue dans ce cas, mais le paramétrage plus simple.
Il faudra maintenant configurer les services Nagios, pour qu’il prenne en compte SNMP.
Pour cela, il faut définir un service générique pour les traps SNMP, dérivé du service
générique général :
define service{
name generic-service
register 0
check_period 24x7
max_check_attempts 3
normal_check_interval 15
retry_check_interval 5
notification_interval 60
notification_period 24x7
define service{
name snmptrap-service
use generic-service
register 0
service_description TRAP
is_volatile 1
check_command check-host-alive
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
passive_checks_enabled 1
check_period none
notification_interval 120
contact_groups admins
}
L'interface de Nagios est accessible via un simple navigateur web. Elle permet à
l'administrateur d'avoir accès à l'ensemble des informations de supervision. Basée sur des
CGI, cette interface peut donc être sécurisée par les mécanismes associés au serveur
web et aux CGI afin de restreindre les accès aux informations en fonction des profils
utilisateurs.
• Monitoring
• Reporting
Il est également possible d'accéder à la configuration du logiciel via cette interface, mais
uniquement en lecture.
1. Les vue de monitoring
Les vues de monitoring permettent de connaître l'état des équipements et des services
supervisés, et éventuellement d'effectuer des actions sur ces derniers. Les vues principales
disponibles sont les suivantes :
Host détail : permet de visualiser l’état des machines supervisées (soit par le biais
d'une vérification par plugins, soit par un ping si aucun service n'est
défini).Cette fenêtre présente l'état global des machines du réseau, avec leurs statuts
(ACTIF, EN PANNE ...). Ici toutes les machines sont actives, ce que traduit la couleur
verte. Une machine inactive aurait été signalée par la couleur rouge qui représente un
état critique.
Service Détail : vue des services supervisés. La liste exhaustive, par équipement,
des services supervisés. Cette vue peut être lourde si il y a un parc important avec un
grand nombre de services supervisés.
Service Group Summary : donne une vue de l’ensemble des hôtes avce leurs états
Les vues de Reporting permettent de créer, à la volée, des rapports sur l'activité du système
d'information, en fonction des données collectées par Nagios…
Grâce à la documentation qui y est jointe, les utilisateurs pourrons découvrir comment
n’afficher que les informations par groupe de machines (seulement les données concernant
les imprimantes ou les serveurs linux) ou par services, etc. La cartographie et autres
informations sont donc accessibles via un navigateur. L’accès à ces données est protégé par
un mot de passe.
CACTI
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 deréponse, etc.).
Toutes les fonctionnalités ne sont pas présentées ici, il faudra par exemple se reporter aux
autres sources d'informations pour découvrir les requêtes SNMP indexées, la gestion des
utilisateurs, l'import et l'export XML des modèles, etc.
Tout d'abord le logiciel RRDtool (version 1.0), pouvant être utilisé de manière autonome, sera
présenté. La suite du document constituera un tutoriel décrivant les étapes depuis la création
d'un script de collecte d'informations jusqu'à l'obtention d'un graphique sur l'interface
utilisateur, en passant par la création des modèles de sources de données et de graphiques.
1. Présentation
Le programme RRDtool a été développé par Tobias Etiker dès 1995. Il est librement
téléchargeable sur le site suivant : http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/.
RRD est l'acronyme de Round Robin Database, qui peut se traduire par « base de données
cyclique ». Ce mécanisme permet de stocker des données dans des fichiers de taille
invariante, définie à la création, par un mécanisme de pile LILO (Last In Last Out). Un fichier
RRD peut contenir plusieurs RRA (Round Robin Archive) qui correspondent aux différents
cycles de conservation des données (jour, semaine, mois, année, etc.).
Une fois les données collectées, RRDtool fournit des outils permettant de générer des
graphiques hautement personnalisables, retraitant les données à la volée.
2. Manipulation
Le fichier se nomme linagora.rrd. La date d'initialisation (option --start) est donnée dans le
format UNIX, c'est à dire le nombre de secondes écoulées depuis le 1er janvier 1970.
Le fichier RRD créé contient une source de données (DS pour Data Source). Elle représente la
donnée que l'on souhaite stocker et la manière dont les valeurs seront conservées. Les valeurs
d'une source de données sont nommées points de données primaires (PDP pour Primary Data
Point). Une source de données peut être de l'un des types suivants :
COUNTER : est stockée la différence entre le PDP actuel et le PDP précédent, le tout
divisé par la période d'échantillonnage. Ce type ne fonctionne que pour des PDP en
augmentation constante (comme un compteur).
DERIVE : idem que COUNTER, mais accepte les PDP négatifs.
ABSOLUTE : idem que COUNTER sauf que le PDP précédent est toujours 0. C'est
également la même chose que GAUGE, sauf que le PDP est divisé par la durée
d'échantillonnage.
GAUGE : le PDP brut est stocké, sans calcul avec le PDP précédent ou la durée
d'échantillonnage.
Par exemple, si on enregistre toutes les 300 secondes (5 minutes) les PDP suivants : 300, 600,
900, 1200, on obtiendra comme valeurs stockées :
COUNTER = 1 1 1 1
DERIVE = 1 1 1 1
ABSOLUTE = 1 2 3 4
GAUGE = 300 600 900 1200
Suite à la source de données, les RRA sont déclarées. Elles déterminent le nombre
d'échantillons (PDP) nécessaires pour calculer un point de consolidation primaire (CDP pour
Primary Consolidation Point) et le nombre d'échantillons à conserver. Une RRA a besoin
d'une fonction de consolidation (CF) qui indique comment calculer le CDP à partir des PDP :
AVERAGE : le CDP est la moyenne des tous les PDP.
MINIMUM : le CDP est le PDP le plus petit.
MAXIMUM : le CDP est le PDP le plus grand.
LAST : le CDP est le dernier PDP.
Les paramètres fournis ensuite à la RRA sont le facteur xfiles (xff pour xfiles factor) qui
détermine la proportion de PDP inconnus nécessaire pour rendre le CDP inconnu, le nombre
d'échantillons (steps) et enfin le nombre de CDP à conserver (rows).
Remarque : les RRA sont appliquées à chaque source de données, il n'est pas possible de
sélectionner les RRA par source, il faut créer des fichiers RRD différents pour obtenir cette
fonctionnalité.
UNIX. Par exemple, pour stocker les valeurs kilométriques indiquées dans l'exemple :
# rrdtool update linagora.rrd 1120082400:12345 1120082700:12357
On note que les deux dates sont distantes de 300 secondes, qui est la durée d'échantillonnage
par défaut. Après la date et le séparateur « : », la valeur brute est indiquée. Selon le type de
source de données, elle sera ou non retraitée. Si plusieurs DS sont déclarées, la valeur
correspondante est préfixée du nom de la source à enrichir.
Dans l'exemple, la source est de type COUNTER, il faut donc au minimum deux valeurs
avant d'obtenir un PDP. Dans ce cas, pour la valeur 12345, le premier vaudra nan (Not a
Number). Ensuite, pour la valeur 12357, le PDP vaudra (12357-12345)/300 soit 0,04. Ces
valeurs seront stockées dans l'archive bihoraire mais il faudra attendre d'avoir au moins 6 PDP
pour stocker une valeur dans l'archive pentahoraire (et cette valeur sera calculée à partir de la
fonction de consolidation choisie).
Les valeurs conservées dans le fichier RRD auront une dimension en kilomètres par seconde,
la transformation en kilomètres par heure pourra être réalisée plus tard, au moment de la
création du graphique.
Il est évident que la peuplement d'un fichier RRD doit être exécuté automatiquement par un
script prenant en charge la collecte des données et la mise à jour de la base. Pour Cacti, ce
script sera nommé poller.
RRDtool fournit des outils pour générer les graphiques s'appuyant sur les sources de données
des fichiers RRD. La mise à jour du graphique est indépendante de la mise à jour des données,
ce qui signifie que pour obtenir un graphique « temps réel » il faut d'abord effectuer la mise à
jour du fichier RRD puis ensuite générer une nouveau graphique à partir de ces données. La
commande suivante génère un graphique basique :
Le nom du graphique choisi est linagraphique.png, il sera créé dans le répertoire courant.
Les dates de début et de fin sont données sous format UNIX par les options --start et --end.
Vient ensuite la définition (DEF) de la source de données à utiliser. Il faut choisir pour cela un
identifiant (ici celerite), le nom du fichier RRD (ici linagora.rrd), le nom de la source de
données (ici vitesse) et enfin la fonction de consolidation (ici AVERAGE).
Pour finir, les éléments du graphique sont configurés, ils utilisent ou non une des sources de
données définies plus haut (DEF). Voici quelques types possibles (liste non exhaustive) pour
ces éléments :
GPRINT : élément de légende.
COMMENT : commentaire en bas du graphique.
LINEx : ligne d'épaisseur x.
AREA : aire.
VRULE : ligne horizontale.
Pour certains de ces types, il faut déclarer la DEF associée ainsi que la couleur, au format
#RRGGBB. Dans l'exemple, c'est une ligne d'épaisseur 2 et de couleur rouge qui représente la
vitesse (définie par celerite).
Il est possible de modifier à la volée les valeurs qui seront utilisées pour créer le graphique,
sans altérer les données du fichier RRD : ce sont les définitions calculées (CDEF pour
Calculations DEFinitions), utilisant le langage RPN (Reverse Polish Notation). Il a comme
particularité de définir des opérations en spécifiant d'abord les opérandes et ensuite l'opérateur
(par exemple 2+3 s'écrira 2,3,+ en RPN).
Pour obtenir des kilomètres par heure plutôt que des kilomètres par seconde, il faut multiplier
les données du fichier RRD par 3600, la commande de création de graphique sera alors :
# rrdtool graph linagraphique.png \
--start 1120082400 --end 1120086000 \
DEF:celerite=linagora.rrd:vitesse:AVERAGE \
CDEF:celeriteh=celerite,3600,\*
LINE2:celeriteh#FF0000
Remarque : le caractère * doit être échappé pour que l'expression soit syntaxiquement
correcte.
L'outil de création de graphique réserve d'autres fonctionnalités dont certaines seront exposées
dans le tutoriel Cacti présenté ci-après.
1) Présentation
Cacti est un logiciel écrit en PHP, s'appuyant sur un base de données MySQL pour stocker
tous ses éléments de configuration et sur RRDtool pour créer les fichiers RRD, les peupler et
obtenir les graphiques correspondants. Il a pour objectif de faciliter les manipulations parfois
fastidieuses de RRDtool, néanmoins une bonne connaissance des fonctionnalités de cet outil
est nécessaire pour apprécier l'utilisation de Cacti (cf. 2. RRDtool). Il est librement
téléchargeable sur le site http://www.cacti.net.
La suite de ce document va décrire comment programmer un script de collecte de données,
comment l'intégrer aux commandes Cacti puis créer les modèles de source de données et de
graphiques associés. Ensuite seront décrites les étapes permettant de déclarer un serveur puis
lui générer les sources de données et les graphiques issus des modèles créés précédemment.
Pour terminer, il sera expliqué comment gérer l'arbre des graphiques présenté sur l'interface
utilisateur.
Le script d'exemple permettra de mesurer d'une part le temps nécessaire pour réaliser une
authentification sur un annuaire, et d'autre part le temps nécessaire pour réaliser une lecture
sur cet annuaire. On obtiendra au final un graphique possédant deux courbes reflétant
l'évolution de ces deux temps de réponse.
Le script peut être programmé dans n'importe quel langage, du moment qu'il reste exécutable
sur le système d'exploitation hébergeant Cacti. Si PHP est choisi, il est possible d'optimiser
l'exécution du script en respectant la norme fixée par les développeurs pour créer un script
serveur (voir documentation officielle sur le site http://www.cacti.net).
Le script peut prendre ou non des paramètres en entrée, il doit par contre respecter le format
de sortie suivant :
attribut1:valeur1 attribut2:valeur2 attribut3:valeur3 ...
Si le script ne renvoie qu'une valeur, le nom de l'attribut peut être omis. Il est important de
mettre des espaces entre chaque couple attribut/valeur mais de ne pas en mettre avant et après
le caractère séparateur « : ».
Le script d'exemple se nomme temps_ldap.pl et prend en entrée l'adresse et le port de
l'annuaire LDAP. Voici son usage :
./temps_ldap.pl -h hostname -p port
Il renvoie deux valeurs, un pour l'attribut bind, l'autre l'attribut search, par exemple :
bind:0.001 search:0.004
# cp temps_ldap.pl /var/www/html/cacti/scripts
Pour chaque paramètre, cliquer sur create pour valider et sur Add pour ajouter le suivant. Le
message Save Successful doit apparaître en haut de la page.
Pour terminer il faut déclarer les champs de sortie, en cliquant sur Add en haut du tableau
Ouput Fields :
4) Création de l’hôte
Avant toute chose, il faut déclarer les hôtes supervisés dans Cacti. Il est fortement conseillé
que ces hôtes soient accessibles par SNMP, mais ce n'est pas une obligation.
Cliquer sur Devices dans le sous-menu Management, puis sur Add en haut à droite :
Pour l'exemple, il faut remplir les champs Description et Hostname, choisir ucd/net SNMP
Host pour le champ Host Template et modifier si besoin le nom de la Communauté SNMP. Si
on ne souhaite pas de SNMP, conserver None comme modèle.
Ces éléments sont indiqués dans les tableaux Associated Data Queries et Associated Graph
Templates. Pour créer les graphiques standards, cliquer sur Create Graphs for this Host en
haut à droite de la page :
Dans le tableau Graph Templates, sélectionner la totalité des graphiques avec la case en haut à
droite. Dans les tableaux Data Query, sélectionner les interfaces réseaux et les partitions à
superviser. Cliquer ensuite sur create.
Il est demandé de préciser les noms de la source et du graphique pour l'utilisation du
processeur. Laisser les valeurs par défaut et cliquer sur create. En haut de la page doit
s'afficher la liste des graphiques générés.
Si le serveur ne possède pas SNMP, ces graphiques ne peuvent pas être crées, mais les étapes
suivantes permettent dans les deux cas de générer le graphique pour le temps de réponse
LDAP.
5) Source de données
a. Modèle
Pour créer un modèle de source de données, cliquer sur Data Templates dans le sous-menu
Templates. Cliquer sur Add en haut à droite :
La plupart des champs possède l'option Use Per Data Source Value (Ignore this Value). Elle
permet de rendre le champ spécifique, c'est-à-dire que la valeur inscrite dans le modèle ne
sera pas propagée aux sources issues du modèle. Plus exactement, la valeur servira de valeur
par défaut dans la source mais le champ sera modifiable pour chaque source issue du modèle.
Cliquer sur create pour créer le modèle. Le message Save Successful apparaît en haut de la
page. Il est possible de créer de nouveaux éléments de la source en cliquant sur new en haut à
gauche du cadre Data Source Item.
Cliquer sur Data Sources dans le sous-menu Management. Sélectionner l'hôte concerné dans
le cadre Data Sources et cliquer sur Add en haut à droite.
Dans le cadre Data Template Selection, choisir le modèle qui vient d'être créé (champ
Selected Data Template), vérifier que l'hôte est bien sélectionné (champ Host), et cliquer
sur create.
Le cadre Supplemental Data Template Data apparaît, avec les champs spécifiques mentionnés
dans le modèle (options Use Per Data Source Value), plus le champ
Data Source Path qui détermine le nom du fichier RRD (il est conseillé de conserver la valeur
attribuée par Cacti).
Remplir les champs spécifiques et cliquer sur save. Le message Save Successful apparaît en
haut de la page. Pour l'exemple, les champs spécifiques sont le nom de la source de données
et le port de l'annuaire LDAP, il est possible de les modifier pour chaque source de données
générée.
La création de la source de données dans Cacti équivaut à la création du fichier RRD avec
RRDtool. Cependant comme la source est active, Cacti va la mettre à jour automatiquement
en utilisant la commande fournie, alors qu'il faudrait le faire manuellement avec RRDtool (cf.
Peuplement d'un fichier RRD).
6) Graphiques
Dans le même esprit que pour les sources de données, un modèle va d'abord être créé pour
permettre de générer facilement des graphiques pour chaque hôte.
a. Modèle
Pour créer un modèle de graphiques, cliquer sur Graph Templates dans le sous-menu
Templates. Cliquer sur Add en haut à droite. Un formulaire vierge avec plusieurs cadres
apparaît.
Lorsque que l'élément du graphique est lié à un nouvel élément de source de données (option
Data Source dans le formulaire précédent), une entrée est créée dans le tableau Graph Item
Inputs (elle correspond à une ligne DEF dans la commande de création de graphique
RRDtool). Une entrée peut servir à plusieurs élément (par exemple pour tracer la courbe et
afficher la valeur en légende). Il est possible d'éditer ces entrées en cliquant sur leur nom, on
obtient alors les options suivantes :
Il faut à présent définir les éléments du graphique que sont les courbes, les aires, les légendes,
etc. Les choix diffèrent avec ceux proposés par défaut dans RRDtool (Création du graphique).
Cliquer sur Add en haut à droite du cadre Graph Template Items. Le formulaire suivant
apparaît :
Les concepts de fonctions de consolidation et de CDEF sont ceux exposés dans (Création du
graphique). Cliquer sur create pour créer l'élément. Le message Save Successful apparaît en
haut de la page.
Cliquer sur Graph Management dans le sous-menu Management. Sélectionner l'hôte concerné
dans le cadre Graph Management et cliquer sur Add en haut à droite.
Dans le cadre Graph Template Selection, choisir le modèle concerné (champ Selected Graph
Template), vérifier que l'hôte est bien sélectionné (champ Host), et cliquer sur create. Le
cadre Supplemental Graph Template Data apparaît, avec les champs spécifiques mentionnés
dans le modèle (options Use Per Data Source Value), plus les champs Data Source qui
déterminent les éléments des sources de données à associer aux entrées des éléments du
graphique (Graph Item Inputs).
Remplir les champs spécifiques (uniquement le nom pour l'exemple) et cliquer sur save. Le
message Save Successful apparaît en haut de la page.
Les graphiques sont créés mais n'apparaissent par dans l'arbre de présentation de Cacti
(Graph Tree). Pour cela il faut cliquer sur Graph Trees dans le sous-menu Management.
Pour créer un nouvel arbre, cliquer sur Add en haut à droite du cadre Graph Trees. Deux
paramètres seulement sont nécessaires :
- Name : Nom de l'arbre
- Sorting Type : Tri des éléments de l'arbre :
Manual Ordering : tri manuel.
Alphabetic Ordering : tri par ordre alphabétique.
Numeric Ordering : tri par valeurs numériques.
Pour éditer un des arbres existants, cliquer sur le nom de celui-ci. Pour l'exemple, créer un
arbre « Temps de réponse LDAP » avec un tri manuel.
À l'intérieur d'un arbre, pour créer un élément, cliquer sur Add en haut à droite du cadre
Tree Items. Trois types d'éléments (Tree Item Type) peuvent être créés :
Header : branche d'un arbre. L'option Title contient le nom de la branche et l'option
Sorting Type la méthode de tri des éléments.
Graph : graphique simple. L'option Graph permet de sélectionner le graphique à afficher et
l'option Round Robin Archive permet de choisir la RRA associée.
Host : branche spéciale regroupant tous les graphiques d'un hôte. L'option Host permet de
sélectionner l'hôte et l'option Graph Grouping Style l'ordre de présentation des graphiques.
Pour l'exemple, créer des graphiques simples (avec RRA Daily) pour chaque hôte configuré.
Il est possible de modifier la hiérarchie des éléments en changeant la valeur de l'option Parent
Item.
Cliquer sur create ou save pour enregistrer les modifications. Elles sont visibles
immédiatement dans l'interface utilisateur. Les graphiques créés doivent se trouver dans la
branche « Temps de réponse LDAP ».
La supervision est devenue indispensable dans tout système d’information. Elle est à la base
du bon fonctionnement d’une architecture réseau et permet de réagir rapidement en cas de
problèmes ou pannes.
Elle se base à l’heure actuelle principalement sur le protocole SNMP qui depuis de
nombreuses années a quand même du mal à évoluer. En effet, de nombreux logiciels sont
encore basés sur la version 1 du protocole qui commence un peu à vieillir et qui n’est pas du
tout sécurisé. En effet la version 2, apportant notamment la sécurité n’a été qu’une phase de
transition vers la v3 qui est encore très peu utilisée.
Les logiciels de monitoring sont très nombreux qu’ils soient du monde du libre ou
propriétaires et supportent les principales plateformes des systèmes d’information. La plupart
sont encore basés sur le protocole SNMP. On peut alors se demander si les nouveaux
standards qui sont encore au statut de développement seront utilisés dans un avenir proche et
amené à le remplacer?