Outil de supervision réseau Icinga2
Outil de supervision réseau Icinga2
Rédigée par :
NOUMEDEM Guyvarch Nelson
SOMMAIRE
1
SOMMAIRE..............................................................................................................................................i
DÉDICACE..............................................................................................................................................iii
REMERCIEMENTS...................................................................................................................................iv
LISTE DES TABLEAUX...............................................................................................................................v
LISTE DES FIGURES.................................................................................................................................vi
RÉSUMÉ................................................................................................................................................vii
ABSTRACT............................................................................................................................................viii
INTRODUCTION GÉNÉRALE....................................................................................................................9
CHAPITRE 1 : PRESENTATION DE QUALISYS CONSULTING ET CADRE DU PROJET.................................10
1.1. Présentation de Qualisys Consulting........................................................................................10
1.1.1. Historique.........................................................................................................................11
1.1.2. Vision et valeur.................................................................................................................11
1.1.3. Ligne de services...............................................................................................................11
1.1.4. Nos bureaux......................................................................................................................12
1.1.5. tructure organisationnelle................................................................................................14
1.1.6. Organisation des directions fonctionnelles.......................................................................15
1.2. Cadre du projet.....................................................................................................................16
1.2.1. Problématique..................................................................................................................16
1.2.2. Contexte...........................................................................................................................16
1.2.3. Motivation et objectif.......................................................................................................16
CHAPITRE 2: ETAT DE L'ART ET CONCEPTS THEORIQUES.....................................................................18
2.1. Présentation de la supervision.............................................................................................18
2.1.1. Définition..........................................................................................................................18
2.1.2. Principe.............................................................................................................................18
2.1.3. Fonctionnement d’une plateforme de supervision..........................................................19
2.1.4. Les méthodes de supervision............................................................................................19
2.2. Protocole de supervision réseau...........................................................................................20
2.2.1. Problématique..................................................................................................................20
2.2.2. Exemple de protocoles de supervision.............................................................................20
2.2.3. SNMP................................................................................................................................20
2.3. Les outils de supervisions.....................................................................................................21
2.3.1. Outils payants...................................................................................................................22
2.3.2. Outils open source............................................................................................................23
2.4. Etude et choix de l’outil........................................................................................................28
2
2.4.1. Critère de choix.................................................................................................................29
2.4.2. Choix de l’outils................................................................................................................30
CHAPITRE 3 : SPECIFICATION ET CONCEPTION DES BESOINS...............................................................32
3.1. Spécification des besoins...........................................................................................................32
3.1.2. Besoins fonctionnels...............................................................................................................32
3.1.3. Besoins non fonctionnels........................................................................................................33
3.2. Le Langage de modélisation.....................................................................................................33
3.2.1. Diagrammes de structure ou diagrammes statiques..............................................................33
3.2.1. Diagrammes de comportement..............................................................................................34
3.2.2. Diagrammes d'interaction ou diagrammes dynamiques........................................................35
3.3. Conception et modélisation des besoins...................................................................................35
3.3.1. Acteurs...................................................................................................................................35
3.3.2. Diagrammes de cas d’utilisations...........................................................................................36
3.3.3. Diagramme de séquence........................................................................................................38
3.4. Présentation d’icinga2..............................................................................................................39
3.4.1. Architecture............................................................................................................................40
3.4.2. Fonctionnalités et performances d'Icinga.........................................................................43
3.4.3. Que peut-on superviser ?.................................................................................................44
3.4.4. Complément de Icinga2....................................................................................................45
CHAPITRE 4 : MISE EN PLACE DE LA SOLUTION....................................................................................47
4.1. Architecture du travail...............................................................................................................48
4.1.1. Environnement matériel.........................................................................................................48
4.1.2. Environnement logiciel...........................................................................................................48
4.2. Prérequis pour la mise en place de icinga2...............................................................................48
4.2.1. Installation et configuration de Icinga2 sur Ubuntu 20.04......................................................48
4.2.2. Installation et configuration de Icingaweb2...........................................................................51
4.2.3. Ajout et configuration d’hôte et monitoring..........................................................................52
[Link]. Ajout simple d’un hôte........................................................................................................52
[Link]. Ajout d’un hôte par le biais d’un agent...............................................................................53
4.3. Configuration de notification................................................................................................72
a. Notification par mail.................................................................................................................72
4.3.2. Notification par sms..........................................................................................................74
4.4. Les interfaces de icinga.........................................................................................................76
CONCLUSION GÉNÉRALE......................................................................................................................79
3
DÉDICACE
REMERCIEMENTS
Avant d’entamer ce mémoire, IL nous est agréable de témoigner de ma grande
gratitude, ma forte reconnaissance et mon profond sentiment de respect à l’honorable de mes
encadreurs M. Richard NDIOMO et M. Console NOUMEDEM pour leurs pertinentes
recommandations, leurs précieux conseils et leurs suivi continuel tout le long de l’élaboration
4
de cette recherche. Je salue, en termes de ma haute considération, leurs passions de recherche
et leurs engouements pour les études.
Nous tenons à remercier également M. Éric KOUAM, PhD. pour l’opportunité donnée
de découvrir une telle structure.
Enfin, nous restons reconnaissants à tous ceux qui m’ont aidé à la bonne conduite du
présent mémoire
5
LISTE DES TABLEAUX
6
RÉSUMÉ
7
ABSTRACT
8
INTRODUCTION GÉNÉRALE
9
CHAPITRE 2 : ETAT DE L'ART ET CONCEPTS
THEORIQUES
Introduction
Les réseaux sont devenus indispensables au bon fonctionnement général de nos entreprises et
administrations. Tout problème ou panne sur ces réseaux peut avoir de lourdes conséquences
aussi bien financières qu’organisationnelles. C’est pour cela la supervision des réseaux est une
nécessité primordiale et indispensable. Elle assure une suivie de la disponibilité des services
en ligne, d’avoir une vue globale sur le fonctionnement et les problèmes pouvant survenir sur
un réseau et aussi de disposer des indicateurs sur les performances de son architecture. Nous
consacrons le présent chapitre à la présentation des concepts de base de supervision des
réseaux.
10
2.1.1. Définition
La supervision, dénommée aussi surveillance informatique ou monitoring, est le
procédé qui consiste à Contrôler et Vérifier, l’activité d’un système informatique grâce à un
ensemble d'outils logiciels et/ou matériels. Les principales solutions de supervision s’intègrent
dans l’activité quotidienne informatique et permettent de surveiller, analyser, piloter en
agissant directement après avoir reçu des alertes informant de potentielles anomalies.
2.1.2. Principe
La supervision informatique permet de mettre en avant, les anomalies éventuelles du
système d’information de l’entreprise, en alertant et en alarmant dès la connaissance du souci,
l’opérateur concerné pourra intervenir à distance et réparer si besoin l’anomalie constatée.
Tout l’existant informatique et téléphonique de l’entreprise peut être concerné, le courant
électrique, les disponibilités réseaux (fibres, ADSL), les serveurs, les imprimantes et autres
éléments actifs constituant le réseau (hubs, switches, routeurs, etc.).
Surveiller les systèmes d’information, permet de s’assurer d’une bonne disponibilité des
services
11
2.1.4. Les méthodes de supervision
Le monitoring informatique ou la surveillance technique dans le cadre de la mise en
place d’une politique de sécurité des données et des réseaux informatiques, peut-être classé en
trois grandes familles fournissant différents niveaux d’informations :
Pour les deux premiers cas, il est indispensable que des tests soient effectués directement
par des équipements qui ne sont pas sur la machine elle-même mais délocalisé à distance et le
fait de les réaliser depuis des sites déportés prend son sens si le serveur est destiné à des
utilisateurs externes (connections à Internet).
12
IPMI : Intelligent Platform Management Interface, c’est une interface intelligente
intégré à certains matériel (serveurs) qui permet la gestion et le contrôle de certains
paramètre à distance (comme température, sonde, …).
Syslog : C’est un protocole qui permet la transmission d’évènements systèmes de
chaque équipement et les centralisés dans une seule machine dans le but d’archivage,
d’analyse et la production d’alerte.
JMX : Java Management Interface
CIM : Common Information Model
SNMP : Simple Network Management Protocol est le protocole de communication et
de gestion simplifiée du réseau.
ICMP : Internet Control Message Protocol est un protocole de gestion des
informations concernant les erreurs des hôtes qui lui sont connectées
ITIL : Information Technology Infrastructure Library
SBLIM : Standard Based Linux Instrumentation For Manageability
WBEM : Web Based Enterprise Management
WS-Management : Web Services For Management
Windows Management Instrumentation
2.2.3. SNMP
Principe de fonctionnement
SNMP fonctionne avec les technologies utilisant les protocoles TCP/IP et s’appuie sur
le protocole UDP (User Datagram Protocol). Il permet aux administrateurs de contrôler et de
gérer (diagnostiquer) tous les éléments actifs du réseau. En langage SNMP on ne supervise
pas, on manage, mais le résultat est similaire. C’est le SNMP qui permet de dialoguer entre le
superviseur et les agents pour recueillir les objets dans la MIB.
SNMP est basé sur trois éléments le superviseur, les nodes (ou nœuds en français) et
les agents :
13
Une console de supervision qui permet d’interroger les agents accessibles par le réseau
ou de recevoir des alertes émises par les agents
Chaque équipement sur lequel intervient l’administrateur via SNMP doit disposer d’un
agent SNMP qui y soit installé. L’interrogation d’un agent se fait en lui envoyant des
messages sur le port UDP 161. L’agent envoie des alertes à la console sur le port UDP 162.
Les objets collectés sont des informations matérielles, des paramètres de configuration, des
statistiques de performance ou bien d’autres sont regrouper dans la base de données MIB.
MIB
14
Distributed Monitoring" (versions 3.6 et 3.7). Il est devenu "IBM Tivoli Monitoring"
(ITM) en version 5. La version de Tivoli Monitoring (version 6.1) ne repose plus sur
le Framework Tivoli, mais est basée sur l'outil Omegamon de Candle (racheté par
IBM).
BMC Patrol est l'un des plus anciens logiciels de supervision du marché. C’est un
système de gestion basé sur la technologie des agents. Il comprend une console et
plusieurs agents. Chaque hôte à surveiller dispose d’un agent BMC Patrol, ainsi que
des modules de connaissances requis. Un module de connaissances est un périphérique
de plug-in pour l’agent et est utilisé pour surveiller les événements. Les agents
envoient des événements à l’API BMC Patrol et la console collecte les événements de
l’API. Les opérateurs peuvent spécifier sur la console ce qu’il faut surveiller et quels
seuils définir. BMC Patrol permet jusqu’à trois plages de seuils : fonctionnement
normal, seuil 1 dépassé et seuil 2 dépassé.
La sonde pour BMC Patrol se connecte directement aux agents BMC Patrol et utilise
l’API Patrol pour acquérir des données d’événement à l’aide de la même méthode que
la console BMC Patrol.
Cisco Works (Network Connectivity Monitor NCM) constitue le plus récent
développement de la gamme de solutions de gestion Cisco Works, conçues pour faire
des réseaux Cisco les plus faciles à administrer et les plus disponibles du marché. Sur
un réseau Cisco, NCM est immédiatement prêt à localiser les problèmes de
connectivité en temps réel et à identifier leurs répercussions. À mesure que le réseau
s'étend et évolue, Cisco Works NCM détecte les modifications apportées aux
périphériques Cisco et ajuste son analyse en conséquence.
HP OpenView est à l’heure actuelle, un des logiciels majeurs de la supervision. Il
permet le management d’équipements réseaux. Une interface graphique permet un
affichage de l’état courant des équipements. Il est basé sur SNMP pour dialoguer avec
les différentes machines. HP OpenView permet de gérer des composants d'une
infrastructure informatique d’une manière standardisée. Il est principalement utilisé
pour la surveillance de serveurs, périphériques, réseaux, bases de données et
applications pour assurer que les défauts sont détectés et alertés dans les meilleurs
délais
15
2.3.2. Outils open source
Présentation
Nagios est un outil de surveillance continue open source qui surveille le réseau, les
applications et les serveurs. Il peut trouver et réparer les problèmes détectés dans
l'infrastructure et arrêter les problèmes futurs avant qu'ils n'affectent les utilisateurs
finaux. Il donne l'état complet de votre infrastructure informatique et ses
performances.
Zabbix surveille le réseau et rend compte de sa santé comme de ses performances.
Elle détecte les problèmes au niveau des équipements et des connexions. Elle vérifie
s’ils fonctionnent normalement, comment ils utilisent la bande passante, s’ils perdent
des paquets, ou encore comment le processeur et la RAM sont utilisés. Elle fournit
même des prédictions sur l’évolution du trafic.
Cacti exploite les fonctions d’interrogation et de collecte de relevés des équipements
réseaux. Il remonte des informations sur les réseaux de toutes tailles via RRDTool, un
système Open source qui représente les métriques sous forme de graphiques. Il permet
de visualiser la santé et les performances du réseau sur des tableaux de bord très
faciles à comprendre et qui peuvent être personnalisés. Icinga L’outil de surveillance
Icinga mesure la disponibilité et les performances au travers d’une interface web. Il est
configurable pour s’adapter à tout équipement et dispose de modules pour étendre la
surveillance à un cluster VMware vSphere, à des applications ou à l’accès des
certificats de sécurité. On trouve aussi des outils de modélisation des processus métier.
Shinken, est un logiciel de supervision réseau libre, sous licence GNU AGPL, créé en
2009 par Jean Gabès. Shinken, surveille les hôtes et les services spécifiés, en alertant
les fonctionnements normaux et anormaux des systèmes. Shinken, a pour but
d'apporter une supervision distribuée et hautement disponible facile à mettre en place.
Il permet donc d'avoir une vision claire en temps réel, de l'état du réseau (système,
services et applications) et aussi d'être prévenu directement en cas de défaillance (par
mail, sms, …).
Icinga est une plateforme logicielle de surveillance et d’alerte aussi ouverte et
extensible que Nagios. La principale différence réside dans le processus de
configuration : Icinga peut être configuré via l’interface Web, alors que Nagios utilise
des fichiers de configuration et la ligne de commande. Cette fonctionnalité est une
aubaine pour ceux qui préfèrent gérer leur logiciel de surveillance sans la ligne de
16
commande. Icinga s’intègre avec de nombreux packages logiciels de surveillance, tels
que PNP4Nagios, in Graph et Graphite, pour une visualisation fiable de votre réseau.
Créé en 2001, NetMRG veut se distinguer des autres en proposant des petites
améliorations : Visualisation des graphiques avec historiques et "auto-scroll",
utilisation de modèles (Templates) pour plus facilement ajouter de nouveaux
graphiques, mise à jour du logiciel simplifiée, Gestion des jours de travail.
Centreon est un logiciel libre de supervision, édité par la société française Merethis. Il
permet de générer des rapports sur les incidents. Les données sont stockées dans une
base de données MySQL. L'interface web, est multiutilisateur et gère des listes de
contrôle d'accès, pouvant être paramétrées de manière très précise. Bien qu'il
fonctionne par défaut avec Nagios
Avantages et Inconvénients
17
Génération facile des graphs doit disposer du client Zabbix
Affichage clair des erreurs sur le Dashboard Limité au ping sans le client
SQLite commerciales
Cacti Interface : Beaucoup plus claire que celle de Pas de gestion d'alarmes, sauf
NetMRG elle permet également beaucoup plus avec un plugin nommé Thold
de choses (Plus de modes d'affichages et plus de
Pas de gestion de panne et
possibilités de configuration)
absence d'une cartographie de
Configuration : Avec l'utilisation des Templates réseau
pour les machines, les graphiques, et la
Un développement lent tout
récupération des données tout se configure
comme NetMRG
aisément et entièrement via l'interface web.
Import/ Export très simple des Templates au
format XML. On peut aussi très facilement
18
utiliser des options poussées de RRDTOOL
19
NetMRG Performances : L'application semble pouvoir Interface : L'interface n'est
tenir la charge avec énormément de machines pas très accueillante et est
surveillées grâce au moteur multi-threadé. déroutante au début.
20
tout seul sur un autre serveur
21
Base Interface Installation Perfor Dépendanc Protocole Ecriture Monitoring Utilis OS
de web et mance e entre SNMP et ajout distribué ation
Nagio configuratio services des des
s n plugins resso
urces
3= moyen 3= bon 3=
bon
2= 4= très 4=
compliqué bon très
bon
1= très 5= 5=
difficile excellent excell
ent
22
configuration
Performance 3 4 3 4 4 4 5
Dépendance entre 1 2 2 2 1 2 2
services
Protocole SNMP 2 2 2 2 2 2 2
Ecriture et ajout des 2 2 2 2 2 2 2
plugins
Monitoring distribué 1 2 2 2 2 2 2
Utilisation des ressources 3 2 2 2 2 2 4
TOTAL 17 22 20 19 18 22 23
Le tri des solutions, en se basant sur le Tableau, nous a permet, de faire l’ordre du
premier au dernier : Icinga2, Shinken, Centreon, Nagios, Cacti et en fin Zabbix. Tout d’abord
nous excluons Centreon, car il a beaucoup de versions ce qui provoque des problèmes de
compatibilités, ainsi il a certains modules qui sont payants. Nagios reconnu auprès des
entreprises, mais, il maintienne à une partie payante, dérivante de sa partie libre, ce qui exige
son élimination. Après cette étude, nous semble qu’Icinga2 est la solution adéquate à notre
projet, au sein Qualisys Consulting.
Icinga2est un outil flexible, puissant, peut gérer un parc de plus de 200 serveurs grâce à son
daemon qui peut être partagé en plusieurs parties contrairement aux autres outils.
Conclusion
Des solutions citées ci-dessus, HP OpenView, CiscoWork, Zabbix et Nagios sont les
plus connues. Qu’elles soient « Open Source » et gratuites ou propriétaires, chacune a ses
particularités qui lui sont propres. Ces outils ont principalement pour objectif de connaître à
tout instant l’état des nœuds critiques (serveurs, switch, routeurs), l’état des services tournant
sur les différents serveurs, d’envoyer des alarmes, de générer des comptes rendus graphiques.
Ils doivent également être capables d’analyser le trafic réseau afin de permettre une meilleure
répartition des ressources réseaux. Certains outils sont également des solutions payantes, donc
à écarter de nos choix. Après avoir décrit les plateformes de supervision existantes sur le
23
marché, nous entamerons dans le chapitre suivant les différents besoins nécessaires à la
réalisation de notre application.
CHAPITRE 3 : SPECIFICATION ET
CONCEPTION DES BESOINS
Introduction
L’ingénierie de besoins, est l’une des activités importantes, parce qu’elle permet de
déterminer, les besoins des utilisateurs d’une telle application et de définir les contraintes
envisagées. Dans ce chapitre, nous présenterons, la spécification et la conception des besoins,
de notre solution Icinga2. D’abord, nous étudierons, les besoins fonctionnels, en présentant
les modules de nôtre application, ainsi que les besoins non fonctionnels, en représentant les
critères de l’environnement pour implémenter la solution Icinga2. Ensuite, nous ferons, une
conception, en citant les acteurs de la solution et quelques diagrammes de cas d’utilisation.
24
3.1. Spécification des besoins
3.1.2. Besoins fonctionnels
L'objectif de ce projet est de mettre en place une solution de monitoring sur une machine
virtuelle grâce à l’outil de virtualisation VMWare. Cette application doit permettre de
collecter des informations concernant une infrastructure informatique à plusieurs niveaux :
25
Extensibilité : Le système doit être extensible et permet d'ajouter et de supporter
d'autres fonctionnalités et d’intégrer tout type d’équipement réseau.
La performance : une application doit être avant tout performant c'est à dire à travers
ses fonctionnalités, elle répond à toutes les exigences des usagers d’une manière
optimale.
Une vue est constituée d’un ou de plusieurs diagrammes pour représenter l’application
(son fonctionnement, sa mise en place, …).
26
Diagramme des paquets (package diagram) : représentation des dépendances entre
les paquets (un paquet étant un conteneur logique permettant de regrouper et
d'organiser les éléments dans le modèle UML), c'est-à-dire entre les ensembles de
définitions.
Diagramme de structure composite (composite structure diagram) : représentation
sous forme de boîte blanche des relations entre composants d'une classe (depuis
UML 2.x).
Diagramme de profils (profile diagram) : spécialisation et personnalisation pour
un domaine particulier d'un meta-modèle de référence d'UML (depuis UML 2.2).
27
Diagramme global d'interaction (interaction overview diagram) : représentation
des enchaînements possibles entre les scénarios préalablement identifiés sous
forme de diagrammes de séquences (variante du diagramme d'activité) (depuis
UML 2.x).
Diagramme de temps (timing diagram) : représentation des variations d'une
donnée au cours du temps (depuis UML 2.3).
3.3.1. Acteurs
Un acteur, est toute entité qui interagit avec notre système, pour que l’acteur réponde à ses
besoins. Ces acteurs sont l’administrateur et les superviseurs.
28
Figure 3 : cas d’utilisation générale
29
Figure 4 : cas d’utilisation « Authentification »
Diagramme de cas d’utilisation « Gestion des services »
Ce diagramme décrit les différentes activités que prend le système lorsqu’il détecte un
service ou équipement non fonctionnel. A ce stade le système commence par vérifier l’état du
service correspondant à l’hôte jusqu'à la validation de l’état non-ok. Ensuite, il récupère la
liste des contacts afin d’en choisir un et le notifier par un [Link] l’intervalle de temps de la
prochaine notification est écoulé et que l’état du service est encore non-ok, le système
recommence la vérification des services.
30
Figure 6 : Diagramme de cas d'activité Notification
3.3.3. Diagramme de séquence
Un diagramme de séquence est un diagramme d'interaction qui montre comment les
processus fonctionnent entre eux et dans quel ordre. Il est une construction d'un graphique de
séquence de message. Un diagramme de séquence montre les interactions d'objets disposés
selon un ordre chronologique. Il représente les objets et les classes impliquées dans le
scénario. Les diagrammes de séquence sont généralement associés aux diagrammes de cas
d'utilisation dans la vue logique du système.
31
Figure 7 : Diagramme de séquence « Authentification »
Diagramme de séquence modification d’un service
32
premier fork dans ce domaine, née du mécontentement des développeurs et contributeurs de
Nagios qui ne voient plus évoluer le projet.
L’équipe recomposée fait évoluer le fork pendant 5 ans avant de sortir une nouvelle
version baptisée Icinga 2 en juin 2014. Construit à partir de zéro, Icinga 2 est une réécriture
complète de l’outil de supervision basé sur le langage C++ qu’on ne pourra alors plus
qualifier de fork. En effet, plutôt que de continuer de développer à partir du Nagios Core,
comme c’est le cas des versions 1.x, l’équipe de développement a décidé de repartir à zéro
afin de repartir sur de nouvelles bases et notamment pouvoir construire une architecture
modulaire comme par exemple avec Shinken.
3.4.1. Architecture
Icinga2 se base sur une Platform puissante et très riche soit au niveau de la présentation, le
core manager, documentation et les rapports.
Icinga de base est écrit en C et a une architecture modulaire avec un noyau autonome,
l'interface utilisateur et la base de données sur laquelle les utilisateurs peuvent intégrer divers
add-ons et des plug-ins.
33
Figure 9 : architecture de icinga
Icinga core :
Icinga core gère les tâches de surveillance, reçoit les résultats des contrôles de différents plug-
ins. Il communique ensuite ces résultats à l’IDODB (Icinga Data Out Database) à travers
l’interface IDOMOD (Icinga Data Out Module) et IDO2DB (Icinga Data Out to Database)
démon de service sur SSL crypte les sockets TCP. Bien que les deux viennent emballer
(également connu sous le nom IDOUtils) avec le noyau ; ils sont des éléments permanents
simples, qui peuvent être séparés pour distribuer les données et les processus sur plusieurs
serveurs pour la surveillance des systèmes distribués.
L'interface utilisateur icinga classique est également livrée avec icinga core et peut être utilisé
comme une interface Web.
Icinga Web :
Basé sur AGAVI et PHP Web 2.0 inspiré pour l'interface utilisateur principale (front-end) qui
utilise Cronks (widgets) pour offrir drag-n-drop des tableaux de bord personnalisés.
Contrairement à l'interface classique d’icinga, Icinga Web est une pièce autonome du logiciel.
Il communique avec le noyau, la base de données et la 3ème partie add-ons à travers les
couches composantes : couche d'abstraction Doctrine (Entrée/base de données), API REST
34
(scripts externes) et l'interface de contrôle de commande (création des pipes, l'exécution des
commandes).
Icinga Web 2 : est actuellement développé en parallèle à l'interface utilisateur classique et
Web et a été annoncé lors de la Conférence sur la surveillance open source en Novembre
2013 à Nuremberg (Allemagne).
Icinga mobile :
Icinga Mobile est une interface utilisateur pour les smartphones et les navigateurs de tablettes
qui fonctionnent sur WebKit (dérivé de KHTML). Ceux-ci sont généralement disponibles sur
iOS, Android, BlackBerry Tablet OS et webOS. Sur la base de Javascript et de Sencha Touch,
Icinga mobile est téléchargé sur un serveur pour l'accès par les utilisateurs autorisés via leurs
appareils mobiles. L’administration et les mises à jour peuvent ainsi être prises de façon
centralisée, pour l’appliquer automatiquement à tous les utilisateurs d'un réseau informatique.
35
Figure 10 : icinga mobile
Icinga 2 gère les tâches classiques de ce que nous pouvons attendre d’un outil de
supervision : exécution des contrôles, envoi de notifications d’alerte, enregistrement des
événements… De ce côté-là, le système est axé sur la performance avec une conception
multithread. L’équipe annonce avoir fait tourner sur une machine 1 million de contrôles actifs
pour 60 000 hôtes supervisés, sans problèmes. En comparaison avec la version 1, il faut 100
fois plus de contrôles à lcinga 2 pour arriver au même niveau de latence.
36
Modularité :
La conception modulaire permet d’éclater les rôles sur différentes machines afin de répartir
les charges. Quand on voit les performances annoncées, je ne suis pas sûr que ce soit la
fonctionnalité la plus utilisée
Distribution :
Dans les fonctionnalités les plus alléchantes à mon gout, c’est la surveillance distribuée. En
mode distribué, on peut créer plusieurs instances de serveurs satellites qui effectueront leurs
surveillances sur une zone et remonter les données à la zone centrale. Également distribuer
toute la supervision en équipant les satellites de certains rôles, grâce à la modélisation.
Clusterisation :
Suivant les cas, la clusterisation de l’infrastructure peut être intéressante pour assurer un
service haut disponibilité. Là encore, Icinga 2 met en avant sa flexibilité en donnant la
possibilité de mixer clusterisation, modélisation et distribution !
Historisation :
Concernant la base de données, Icinga prend en charge Oracle et PostgreSQL en plus de
MySQL pour l’historisation des données.
Notification :
Notification des personnes de contact en cas de problème de service ou de l'hôte se produisent
et sont résolues (via email, ou une méthode définie par l'utilisateur)
37
/Icinga 2 Windows Plugins (disk, load, memory, network, performance
counters, ping, procs, service, swap, updates, uptime, users /vbs and
Powershell scripts
• DataBase Monitoring : MySQL/MariaDB : mysql_health, mysql,
mysql_query /PostgreSQL : postgres /Oracle : oracle_health /MSSQL :
mssql_health /DB2 : db2_health /MongoDB : mongodb /Elasticsearch:
elasticsearch /Redis: redis)
• SNMP Monitoring : Manubulon plugins (interface, storage, load, memory,
process) /snmp, snmpv3)
• Network Monitoring :
• Web Monitoring (http /ftp /webinject /squid /apache-status /nginx_status
/kdc /rbl)
• Java Monitoring (jmx4perl)
• DNS Monitoring (dns /dig /dhcp
• Backup Monitoring (check_bareos)
• Log Monitoring (check_logfiles /check_logstash /check_graylog2_stream)
• Virtualisation Monitoring
• VMware Monitoring
• SAP Monitoring (check_sap_health /SAP CCMS)
• Mail Monitoring (smtp, ssmtp /imap, simap /pop, spop /mailq)
• Hardware Monitoring (hpasm / ipmi-sensor)
• Metrics Monitoring (graphite)
3.4.4. Complément de Icinga2
NSClient++ est un service pour toutes versions de Windows (NT, 2010, 2008, XP,
Vista, 7 ; …) qui combine les fonctionnalités d’un agent de supervision dédié à
l’environnement Windows ainsi que les fonctions de transport NRPE et NSCA pour cet
environnement. Il est disponible en version 86 et 64 bits. Du fait de ces triples fonctions, le
fichier de configuration de NSClient++ est assez long mais également assez simple. Il est
aujourd’hui considéré comme l’agent de supervision standard pour plateformes Windows.
La supervision des machines Windows se fait grâce à l'agent NSClient++ qui doit être
installé sur la machine distante à superviser.
38
Conclusion
39
CHAPITRE 4 : MISE EN PLACE DE LA
SOLUTION
Introduction
Icinga est un système de surveillance qui vérifie la disponibilité de vos ressources
réseau, informe les utilisateurs des pannes et génère des données de performance pour les
rapports. Évolutif et extensible, Icinga peut surveiller des environnements complexes et de
grande taille sur plusieurs sites. Icinga 2 est le serveur de surveillance et nécessite Icinga Web
2 sur le dessus dans votre pile Icinga. La configuration peut être facilement gérée avec Icinga
Director, des outils de gestion de configuration ou du texte brut dans Icinga DSL.
40
4.1. Architecture du travail
4.1.1. Environnement matériel
Tout au long de notre projet, nous avons eu à notre disposition un ordinateur portable avec
la configuration suivante :
41
#wget -O - [Link] | apt-key add -
Utilisons la commande suivante pour découvrir votre nom de code Linux
Ubuntu.
#. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="$
{UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi;
set | grep DIST
Dans notre cas, le code linux Ubuntu est FOCAL.
Ajoutons le référentiel official Icinga2 à votre base de données APT
# nano /etc/apt/[Link].d/[Link]
42
Configurer la base de données MySQL pour Icinga 2
# mysql -u root -p
#nano /etc/icinga2/conf.d/[Link]
43
#systemctl restart icinga2
Assurez-vous d’avoir un serveur Web avec PHP opérationnel avant de continuer. Reportez-
vous à la configuration requise pour l’installation pour plus de détails sur les versions prises
en charge. Selon votre système d’exploitation, vous devrez peut-être installer et configurer le
serveur Web séparément.
Si vous ne vous souvenez pas du jeton, vous pouvez le montrer en utilisant le :icingacli
44
MariaDB [mysql]> GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED
BY 'web2’ ;
Enfin, visitez Icinga Web 2 dans votre navigateur pour accéder à l’assistant de configuration
et terminer l’installation : adresse-local /icingaweb2/setup
Utilisez les mêmes informations de base de données, d’utilisateur et de mot de passe créées
ci-dessus lorsque vous y êtes invité.
L’assistant d’installation détecte automatiquement les packages requis. Dans le cas où l’un
d’eux est manquant, par exemple un module PHP, veuillez installer le package, redémarrer
votre serveur Web et recharger la page de configuration.
À distance et sans rien installer sur la machine à distance, ce qui n’offre que des
possibilités de contrôle très limitées (ping, ssh, http).
En installant un agent Icinga sur les serveurs, ce qui permet beaucoup plus de
flexibilité dans la supervision.
#nano /etc/icinga2/conf.d/[Link]
45
Host A Host B Host C
object Host "nelson-virtual- object Host "DESKTOP- object Host "router" {
machine" { T3OAQSK" { check_command =
address = "[Link]" address = "[Link]" "hostalive"
check_command = check_command = "hostalive" address = "[Link]"
"hostalive" } }
} object Service "ping4" {
object Service "ping4" { host_name = "DESKTOP-
host_name = " nelson-virtual- T3OAQSK
machine " check_command = "ping4"
check_command = "ping4" }
} object Service "http" {
object Service "http" { host_name = "DESKTOP-
host_name = " nelson-virtual- T3OAQSK"
machine " check_command = "http"
check_command = "http" }
}
46
Cas01 installation de l’agent sur Windows 10
xécutez le package MSI-Installer et suivez les instructions indiquées dans les captures
d’écran.
47
48
49
Remplissez les informations requises et cliquez pour ajouter une nouvelle connexion
principale. Add
50
51
Si nécessaire, vous pouvez ajouter une zone globale supplémentaire (les zones sont ajoutées
par défaut) :global-templatesdirector-global
52
Vérifiez le certificat à partir de l’instance maître/satellite à laquelle ce nœud doit se connecter.
53
Configuration NSClient++ groupée ¶
Si vous avez choisi d’installer/mettre à jour le package NSClient++, l’assistant d’installation
d’Icinga 2 vous demande de le faire.
54
Choisissez la [Link]
55
Choisissez le type de [Link]
NSClient++ n’installe pas d’exemple de configuration par défaut. Modifiez cela comme
indiqué dans la capture d’écran.
56
Générez un mot de passe sécurisé et activez le module de serveur Web. Remarque : Le
module serveur Web est disponible à partir de NSClient++ 0.5.0. Icinga 2 v2.6+ est requis qui
inclut cette version.
Terminez l’installation.
57
Ouvrez un navigateur Web et accédez à Https://localhost:8443 ;Entrez le mot de passe que
vous avez configuré lors de l’installation. Si vous l’avez perdu, examinez le fichier de
configuration. C:\Program Files\NSClient++\[Link]
58
L’API REST NSClient++ peut être utilisée pour interroger des
métriques. Check_nscp_api utilise cette méthode de transport.
Terminer l’installation de l’agent Windows
59
Si vous n’avez pas fourni de ticket d’installation, vous devez signer la demande de certificat
sur le maître. Les assistants d’installation vous demandent de le faire. Le service Icinga 2 est
déjà en cours d’exécution à ce stade et recevra et mettra à jour automatiquement un certificat
client signé.
60
Icinga 2 est automatiquement démarré en tant que service Windows.
61
Cas02 installation de l’agent sur Ubuntu 20.04
Do you want to establish a connection to the parent node from this node? [Y/n]:
62
Si ce nœud ne peut pas se connecter au nœud parent, choisissez. L’assistant
d’installation fournit des instructions pour ce scénario – les questions de signature sont alors
désactivées.n
Subject: CN = [Link]
Issuer: CN = Icinga CA
Valid From: Sep 7 [Link] 2017 GMT
Valid Until: Sep 3 [Link] 2032 GMT
Fingerprint: AC 99 8B 2B 3D B0 01 00 E5 21 FA 05 2E EC D5 A9 EF 9E AA E3
63
"/var/lib/icinga2/certs/$(hostname --fqdn).crt"
Please specify the request ticket generated on your Icinga 2 master (optional).
4f75d2ecd253575fe9180938ebff7cbca262f96e
Ensuite, vous pouvez éventuellement spécifier les noms des zones locales et parentes.
Cela sera reflété dans le fichier de configuration de zone généré.
Définissez le nom de la zone locale sur autre chose, si vous installez une instance
satellite ou une instance principale secondaire.
Définissez le nom de la zone parente sur autre chose que si cet agent se connecte à une
instance satellite au lieu du maî[Link]
Reconfiguring Icinga...
64
Enfin, l’assistant vous demande si vous souhaitez désactiver ou non l’inclusion du
répertoire de configuration local dans, ou non. La valeur par défaut est désactivée, car les
agents sont vérifiés via le point de terminaison de commande ou reçoivent une configuration
synchronisée à partir de la zone [Link].d
Done.
#nano /etc/icinga2/conf.d/[Link]
#nano /etc/icinga2/conf.d/[Link]
65
object Host "svr_testblade" {
import "generic-host"
address = "[Link]"
check_command = "hostalive"
[Link] = "Servers"
[Link]["mail"] = {
groups = ["icingaadmins"]
users = ["icingaadmin"]
#nano /etc/icinga2/conf.d/[Link]
email = "myemail@[Link]"}
object UserGroup "icingaadmins" {
display_name = "Icinga2 Admin Group"}
#nano /etc/icinga2/scripts/[Link]
66
## Other distributions (RHEL/SUSE/etc.) prefer mailx which sets a sender address with `-
r`
else
## /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -r "$MAILFROM" -s
"$SUBJECT" $USEREMAIL
/usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -r
"icinga2@[Link]" -s "$SUBJECT" $USERMAIL
fi
else
/usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" \
| $MAILBIN -s "$SUBJECT" $USEREMAIL
fi
template=`cat <<TEMPLATE
***** Icinga EPAY *****
Notification Type: $NOTIFICATIONTYPE
Host: $HOSTALIAS
Address: $HOSTADDRESS
State: $HOSTSTATE
Date/Time: $LONGDATETIME
Additional Info: $HOSTOUTPUT
Comment: [$NOTIFICATIONAUTHORNAME] $NOTIFICATIONCOMMENT
TEMPLATE
`
echo "TEST" | msmtp=myemail@[Link] -s "$NOTIFICATIONTYPE -
$HOSTDISPLAYNAME is $HOSTSTATE" $USEREMAIL
#!/bin/sh
[Link]
const SmsUsername "demo"
67
const SmsPassword "demo"
[Link]
object NotificationCommand "sms-host-notification" {
import "plugin-notification-command"
env = {
NOTIFICATIONTYPE = "$[Link]$"
HOSTALIAS = "$host.display_name$"
HOSTADDRESS = "$address$"
HOSTSTATE = "$[Link]$"
LONGDATETIME = "$icinga.long_date_time$"
HOSTOUTPUT = "$[Link]$"
NOTIFICATIONAUTHORNAME = "$[Link]$"
NOTIFICATIONCOMMENT = "$[Link]$"
HOSTDISPLAYNAME = "$host.display_name$"
SMS_USERNAME = SmsUsername
SMS_PASSWORD = SmsPassword
SMS_PHONE = "$[Link].sms_phone$"}
}
[Link]
apply Notification "sms-notification" to Host {
import "sms-host-notification"
user_groups = [Link]
users = [Link]
interval = 0
states = [ Down ]
types = [ Problem, Recovery ]
period = "24x7"}
[Link]
68
vars.sms_phone = "<phonenumber>"}
[Link]["sms"] = {
users = [ "icingaadmin" ]}
La première vue après authentification est présentée dans la figure si dessous. Elle donne
une idée générale sur l’état de fonctionnement des hôtes ainsi que les services qui lui sont
associés.
69
L’interface Tactical Overview permet d’avoir une vue globale sur les statuts des
équipements supervisés et des services qui lui sont liés. Cette vue donne un aperçu rapide sur
l’état du réseau.
Conclusion
Dans ce chapitre nous avons mis l’intérêt sur l’aspect pratique de notre projet, en
détaillant les étapes de la mise en place, la configuration et l’utilisation de ma solution, en
70
mettant l’accent sur l’importance de l’apport de ICINGA2, concernant la facilité de la
configuration et la livraison des comptes rendus et d’analyses plus rapidement.
71
CONCLUSION GÉNÉRALE
Dans ce rapport nous avons décrit le travail effectué durant la période du projet. Nous
avons atteint presque l’objectif initial de ce projet, ainsi l’administrateur peut contrôler les
routeurs de son réseau à travers l’outil de supervision effectué. Par contre aucun ne peut
accéder à cette application sans avoir permission. Notre application comporte une
cartographie présentant les différents équipements surveillés et elle permet de renseigner
l’administrateur sur l’état des machines, le trafic écoulant, etc. Enfin, l’administrateur peut
être averti par un message textuel, sous forme SMS et par Mail, dont le contenu indiquera la
machine défectueuse. Au terme de ce travail élaboré dans le cadre de mon projet de fin
d’études, Nous avons considéré que ce projet nous a été bénéfique vu qu’il nous a permis de
consolider nos connaissances vers la manipulation d’une application qui sera utile dans le
domaine de la supervision informatique. En effet, l’apport de ce projet se résume surtout dans
la découverte d’un nouveau domaine vaste et innovant qui est le contrôle et l’administration
des réseaux des entreprises. De même, il nous a apporté énormément de connaissances tant au
niveau du protocole SNMP qu’au niveau des équipements réseau. Enfin nous considérons que
le travail effectué au cours de ce projet peut être davantage enrichi et amélioré par de
nouvelles fonctionnalités. En effet, nous pourrons envisager de :
Implémenter d’autres stations (routeurs) dans d’autres sites afin de couvrir toutes
les zones ou QC est situé et ainsi d’améliorer la précision des donnes reçus.
Implémenter un ensemble de traps spécifiques : tels que la définition des seuils de
déclenchement des alarmes pour distinguer un état opérationnel normal du réseau
d’un état congestionné.
Intégrer le Serveur icinga satellite pour pouvoir ajouter des graphiques
correspondant à notre infrastructure réseau.
72