Projet de synthèse. Monitoring Réseau. Titre Visé: Technicien Supérieur Gestionnaire Exploitant des Ressources Informatiques



Documents pareils
Nagios 3 pour la supervision et la métrologie

Monitoring & Surveillance SLIM CHAKROUN (ENSI) EMNA BEN HADJ YAHIA (RT3) SAFA GALLAH (RT3)

SOLUTION DE SUPERVISION SYSTEME ET RESEAU

INSTALLATION DE NAGIOS 2.10 et CENTREON sous Debian ETCH 4.0r1

SUJET : «Administration et supervision du réseau Par NAGIOS»

Mise en place d un système de supervision Open source.

Fully Automated Nagios

NACIRI Mehdi. Rapport de stage : Mise en place d un moyen pour anticiper les pannes des serveurs de l IUT. Promotion BTS SIO Option SISR

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

Surveiller votre réseau avec Nagios

Table des matières 1. Chapitre 1 Introduction à Nagios et la supervision

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

Présentation de l outil d administration de réseau Nagios

Supervision des applications et services réseaux

PPE GESTION PARC INFORMATIQUE

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Monitoring des Ressources Informatiques au LAL. Journées Informatique IN2P3 DAPNIA HOURTIN Jacquelin Charbonnel - printemps 2004

Nouvelles Technologies Réseau

Document d'installation FAN 2.1

La supervision avec NAGIOS

et Groupe Eyrolles, 2006, ISBN :

Installation de Zabbix

SUPERVISION DE RÉSEAU AVEC NAGIOS

Tutoriel compte-rendu Mission 1

NAGIOS 4.01 Installation sur Debian 7.1

Documentation : Réseau

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Client windows Nagios Event Log

contact@nqicorp.com - Web :

Installation d'un serveur FTP géré par une base de données MySQL

Architecture de la plateforme SBC

Supervision système et réseau avec Zabbix. Anne Facq Centre de Recherche Paul Pascal 17 avril 2008

11/04/2014 Document Technique des Services Disponibles. 16/04/2014. Document Technique des Services Disponibles.

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

1. La plate-forme LAMP

Eyes Of Network 4.0. Documentation d installation et de configuration

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Documentation technique Nagios

TP PLACO. Journées Mathrice d'amiens Mars 2010

Installation des outils OCS et GLPI

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Installation d un Serveur de Messagerie

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

PORTAIL DE GESTION DES SERVICES INFORMATIQUES

UserLock Guide de Démarrage rapide. Version 8.5

Gestion et Supervision de Réseau NAGIOS

White Paper - Livre Blanc

Serveur d application WebDev

Chap.9: SNMP: Simple Network Management Protocol

Installation et configuration d OCS/GLPI sur un Serveur Debian

Standard. Manuel d installation

NRPE. Objectif. Documentation. Procédures

Windows Internet Name Service (WINS)

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Assistance à distance sous Windows

Licence Pro ASUR Supervision Mai 2013

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Rapport sur la mise en place d une solution de supervision avec Nagios

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Cisco Certified Network Associate

FreeNAS Shere. Par THOREZ Nicolas

Les modules SI5 et PPE2

Système Principal (hôte) 2008 Enterprise x64

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture IBM BladeCenter

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Mise en route d'un Routeur/Pare-Feu

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

contact@nqicorp.com - Web :

Atelier Le gestionnaire de fichier

JOMARON Sébastien BTS SIO 2012/2014. Titre de l activité: Surveiller des hôtes et des services avec NAGIOS

NetCrunch 6. Superviser

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

SECURIDAY 2013 Cyber War

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Configuration de Zabbix

FazaANGEL supervision pro-active

Joomla! Création et administration d'un site web - Version numérique

MANUEL D INSTALLATION D UN PROXY

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

CASE-LINUX MAIL - ROUNDCUBE

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Retour d expérience sur Prelude

Symantec Backup Exec Remote Media Agent for Linux Servers

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Smart Notification Management

SUPERVISION RESEAU AVEC NAGIOS

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Administration Centrale : Opérations

Compte rendu d'activité PTI n 2

Installer un serveur web de développement avec VirtualBox

Installation de Smokeping sur Debian

Supervision du réseau GSB avec EyesOfNework 3.1

Guide Installation Serveur Extensive Testing

Transcription:

Projet de synthèse Monitoring Réseau Titre Visé: Technicien Supérieur Gestionnaire Exploitant des Ressources Informatiques Auteur : Mohamed DAOUES Numéro de Version : 1.0 Année : 2011-2012

2 Suivi des Versions Version : Date : Nature des modifications : Ecrit par : 0.1 12/09/2011 Création du document : squelette Mohamed DAOUES 0.2 16/09/2011 Ajout du chapitre I, II, III MD Relu par : Validé par : 0.3 23/09/2011 Ajout d un nouveau chapitre qui a remplacé l ancien chapitre II MD 0.4 08/10/2011 Modification au niveau du chapitre IV MD 0.5 13 et 14/10/2011 Ajout du tableau des outils MD 0.6 Du 28/10/2011 au 02/11/2011 Réflexion sur quel outil choisir, téléchargement et test de plusieurs outils et plateforme. Ajout de la partie V et VI Correction au niveau de la partie IV MD Du 0.7 11/11/2011 au Ajout de la partie 1.4 au niveau de la partie VI MD 16/11/2011 0.8 23/11/2011 Ajout de la partie VII et VIII MD 1.0 19/12/2011 Finalisation du rapport et vérification MD Essia DAOUES Elaboré par Mohamed DAOUES 2

3 Table des matières Table de Figures... 6 Avant-propos :... 8 I. Introduction :... 9 II. La Supervision :... 10 1.1 Qu est-ce que la supervision?... 10 1.2 Pourquoi superviser son système d information... 10 1.3 Les limites de la supervision... 10 1.4 Le protocole lié à la supervision : SNMP... 11 1.4.1 Présentation du protocole SNMP... 11 1.4.2 Fonctionnement du protocole SNMP :... 11 III. Le marché des outils d administration et de supervision... 12 1.1 La situation du marché... 12 1.2 Les tendances du marché... 12 IV. Présentation des outils de supervision:... 14 1.1 Outils propriétaires :... 14 1.2 Outils Open Source :... 14 V. Choix de l outil... 15 VI. Présentation de l outil... 19 1. Nagios... 19 1.1 Les fonctionnalités de Nagios... 19 1.2 Principe de fonctionnement... 20 1.3 Architecture... 21 1.4 Nagios et ses plugins... 21 2. Centreon... 22 2.1 Présentation de Centreon... 22 2.2 Fonctionnalité de Centreon... 22 2.3 Architecture de Centreon... 22 VII. Installation et configuration de l outil :... 23 1. Plateforme de test choisie :... 23 2. Installation Nagios /Centreon :... 23 2.1 Les pré-requis pour l installation de nagios... 23 2.2 Installation de Nagios... 24 2.3 Les pré-requis pour l installation de Centreon... 27 2.4 Installation du NDOUTILS... 27 2.5 Installation de Centreon... 29 Elaboré par Mohamed DAOUES 3

4 3. Configuration Nagios/Centreon... 32 3.1 Fichiers de configuration Nagios... 32 3.1.1 Fichiers de configuration Nagios... 32 3.1.2 Données à définir dans Nagios... 33 3.1.2.1 Commandes de vérification... 34 3.1.2.2 Période de temps... 34 3.1.2.3 Les commandes de notification :... 35 3.1.2.4 Les hôtes... 35 3.1.2.5 Les services... 36 3.1.2.6 Les contacts... 37 3.1.2.7 Les groupes de contacts... 38 3.2 Configuration de Centreon... 39 3.2.1 Configuration de la communauté SNMP... 39 3.2.2 Configuration du fichier Ndo2db.cfg... 39 3.2.3 Configuration du fichier Ndomod.cfg... 40 3.2.4 Configuration du broker module... 41 3.2.5 Génération de la configuration de Nagios par Centreon... 41 VIII. Administration... 42 1. Interface graphique nagios... 42 2. Interface graphique Centreon... 42 2.1 Présentation de l interface de Centreon... 42 2.1.1 Menu Accueil :... 42 2.1.2 Menu Supervision :... 43 2.1.3 Menu Vues :... 44 2.1.4 Menu Rapport :... 44 2.1.5 Menu Configuration :... 45 2.1.6 Menu Administration :... 48 2.2 Prise en main de l interface... 51 2.2.1 Ajout d un hôte... 51 2.2.2 Ajout d un groupe d hôtes... 52 2.2.3 Ajout d un service... 52 2.2.4 Ajout d un groupe de services... 53 2.2.5 Ajout d une commande... 53 2.2.6 Suppression d une commande, d un service, ou d un hôte :... 54 2.2.7 Paramétrage d un compte utilisateur en lecture seule... 55 2.2.8 Gestion des ACL... 56 Elaboré par Mohamed DAOUES 4

5 Conclusion :... 58 Annexes... 59 Elaboré par Mohamed DAOUES 5

6 Table de Figures Figure 1: Fonctionnement du SNMP... 11 Figure 2: Fonctionnalités Nagios... 19 Figure 3 Principe de fonctionnement de Nagios... 20 Figure 4 : Architecture de Nagios... 21 Figure 5: Architecture de Centreon... 22 Figure 6 : Interface web de Nagios... 26 Figure 7 : Architecture NDOUTILS... 27 Figure 8 : Installation Centreon via l'interface Web... 31 Figure 9 : interface de connexion Centreon... 32 Figure 10 : architecture des fichiers de configuration de Nagios... 32 Figure 11 : Configuration de la communauté SNMP... 39 Figure 12 : Configuration du fichier ndo2db.cfg... 39 Figure 13 : Configuration de la base de données NDO... 40 Figure 14 : Configuration du fichier ndomod.cfg... 40 Figure 15 : Modification du Broker module... 41 Figure 16 : Exportation de la configuration vers Nagios... 41 Figure 17 : Processus de génération de la configuration de Nagios par Centreon... 41 Figure 18 : Sous menu tactical Overview... 42 Figure 19 : Sous menu Global Health... 42 Figure 22 : Statut des services par Hôtes... 43 Figure 20 : Statistique Nagios_Graphiques de performances... 43 Figure 21 : Statistique Nagios_Infos performance... 43 Figure 23 : Menu Vues... 44 Figure 24 : Menu reporting... 44 Figure 25 : Vue configuration Hôtes... 45 Figure 26 : vue configuration Services... 45 Figure 27 : Vue configuration des utilisateurs... 46 Figure 28 : Vue configurations des commandes... 46 Figure 29 : Vue notification - Escalades/Dépendances... 47 Figure 30 : Vue configuration Nagios... 47 Figure 31 : vue configuration Centreon... 48 Figure 32 : Vue administration Options... 48 Figure 33 : Menu Administration ACL... 49 Figure 34 : Menu Administration databases... 49 Figure 35 : Menu Administration Sessions... 49 Figure 36 : Menu Server Status... 50 Figure 37 : Menu Administration About... 50 Figure 38 : Ajout d'un hôte... 51 Figure 39 : Ajout d'un Service... 52 Figure 40 : Vue Configuration/Commande... 53 Figure 41 : Ajout d'une commande... 54 Figure 42 : Processus de suppression... 54 Elaboré par Mohamed DAOUES 6

7 Figure 43 : Ajout d'un utilisateur... 55 Figure 44 : Ajout d'un groupe d'accès... 56 Figure 45 : Ajout d'un accès aux menus... 56 Figure 46 : Ajout d'une liste de contrôle... 57 Elaboré par Mohamed DAOUES 7

8 Avant-propos : Dans le cadre de la préparation du titre professionnel TSGERI (Technicien Supérieur Gestionnaire Exploitant de Ressources informatiques), j ai eu l opportunité de découvrir le cœur du métier d un TSGERI qui consiste à la mise en exploitation, l administration courante des serveurs, des postes de travail connectés, le suivi et la sécurisation du système informatique au sein de l entreprise. Ce sujet de synthèse a pour objectif de faire la synthèse de mes connaissances théoriques et pratiques, d affiner ma perception du métier, d en retirer une expérience ainsi qu une analyse globale et approfondie de l administration réseau et de son environnement, tout en me préparant dans les meilleures conditions à la vie professionnelle. Pour ce rapport de synthèse, j ai choisi comme thème le monitoring (supervision). Le choix de l outil sera expliqué dans une rubrique ultérieure, vu le nombre élevée des solutions sur le marché. Elaboré par Mohamed DAOUES 8

9 I. Introduction : Actuellement aucun administrateur réseau ne peut se priver d utiliser des outils nécessaires à son travail. Et très souvent quand il est confronté à gérer un réseau informatique de taille importante, le nombre des postes utilisateurs peut être trop élevée. Par conséquent, la maintenance ainsi que la gestion de cette infrastructure devient assez complexe, et une panne du réseau peut avoir de graves conséquences voir même désastreuses. Pour se prémunir de ce genre de défaillances, un administrateur doit se doter d un bon outil de supervision au sein de son établissement. Ces outils 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 outils existent sur le marché et nous les trouvons de tous types, gratuits ou payants, libre de droit ou propriétaire. De plus outre ces offres, nous pouvons trouver également de nombreuses sociétés de services qui proposent leurs compétences en termes d installation, de dépannage et de suivi. Afin d exposer les différentes solutions existantes sur le marché, nous allons leur consacrer une partie dans notre rapport. Elaboré par Mohamed DAOUES 9

10 II. La Supervision : 1.1 Qu est-ce que la supervision? La supervision se définit comme une technique utilisant au mieux les ressources informatiques. En effet, elle nous permet de surveiller, rapporter et alerter les fonctionnements normaux et anomaux des systèmes informatiques. Elle permet aussi de collecter des informations, qui serviront d'outils pour gérer de manière optimale le traitement des pannes ainsi que la qualité des réseaux (problèmes de surcharge). Cette définition de la supervision est décrite plus en détail dans la norme ISO7498/4. Un tel processus est réalisé à plusieurs niveaux d'un parc de machines : Au niveau interconnexions (Réseau), au niveau de la machine elle-même (Système) et au niveau des services offerts par cette machine (Applications). Supervision réseau Par le terme réseau nous sous entendons l aspect communication entre les machines. Donc l essentiel ici est de s assurer du bon fonctionnement des communications et de la performance des liens. C est dans ce cadre-là que l on va vérifier si une adresse IP est disponible ou pas, ou si tel port est ouvert ou non. Supervision système Ce type de supervision porte principalement sur les trois types principaux de ressources système : la charge du processeur, la mémoire utilisée, la quantité de stockage disponible. Supervision applicative Cette technique nous permet de connaître la disponibilité des machines en termes de services rendus en testant les applications hébergées sur les serveurs, à titre d exemple une tentative de connexion sur le port de l application pour voir si elle retourne ou demande les bonnes informations. En effet, la supervision applicative passe par des mesures faites sur la base des flux de service. 1.2 Pourquoi superviser son système d information Superviser c est surveiller dans le sens de veiller à ce que tout fonctionne bien. La supervision vise à faire remonter les informations cachées d un système d information telles que la congestion du réseau, le taux d occupation des serveurs et la disponibilité des applications distantes. Ces informations s accompagnent souvent d une démarche de garantie du niveau de service. Avec la complexité grandissante des infrastructures, celle-ci demandent une attention assez particulière. En effet toute panne ou incident peut entrainer de lourdes conséquences sur le système d information en terme financier, organisationnel, et de notoriété (image et crédibilité). La supervision permet de remonter des indicateurs à la direction informatique en termes de données qualitatives ou quantitatives relatives à la gestion des ressources informatiques. De ce point de vue-là, il faut faire attention à la pertinence des remontées d information car «trop d information tue l information». La supervision nous permet alors de prévenir, diagnostiquer, prévoir et anticiper. 1.3 Les limites de la supervision Comme tout système et/ou outil la supervision a des limites. En effet, elle nous permet d avoir une vue globale de l état de santé d un système d information, nous permet de générer des indicateurs et des rapports quant au bon fonctionnement ou non de notre système d information, et une fois que nous avons Elaboré par Mohamed DAOUES 10

11 l information, cela peut engendrer des actions, certaines qu on peut automatiser et d autres où l intervention humaines est indispensable. Prenons l exemple où nous regardons de près l état de l espace disque sur un serveur, nous prédirons que d ici un mois le disque sera plein, donc il faudra prévoir une action afin de rajouter un deuxième disque au moment voulu. Cette action ne pourra se faire que par une intervention humaine. Donc ce qu il faut retenir ici que la supervision ne s auto suffit pas et l interprétation des rapports nécessite en parallèle une ou plusieurs actions, d où l intérêt de les accompagner par des procédures (Documenter!). 1.4 Le protocole lié à la supervision : SNMP 1.4.1 Présentation du protocole SNMP SNMP (Simple Network Management Protocol) est un protocole d administration qui permet aux administrateurs réseau de gérer les équipements du réseau, de superviser et de diagnostiquer des problèmes réseaux et matériels à distance. Il décrit la façon dont s établit le dialogue (syntaxe, type d information...) entre un équipement du réseau et la station d administration. Ce protocole fonctionne en mode datagramme, c est-à-dire sans établissement d une connexion entre les nœuds concernés. Le transport du protocole SNMP sur le réseau local est assuré soit par UDP/IP, soit par IPX. 1.4.2 Fonctionnement du protocole SNMP : SNMP permet 2 types de transactions entre le Manager et les Agents : Les transactions de type requête du Manager et réponse de l Agent. Les messages (traps) envoyés par les Agents suite à un événement non provoqué dans un des composants du réseau. SNMP ne transporte que des variables et s'appuie sur le protocole UDP (User Datagram Protocol). SNMP va créer un dialogue entre des agents installés sur des machines à superviser et un serveur de supervision. Étant donné que ces requêtes utilisent des noms de variables, ceux-ci doivent être communs à tout matériel que l'on souhaite monitorer (et supportant SNMP).C'est pour cette raison que les données sont stockées dans une base normalisée nommée MIB (Managed Information Base). Cette base organisée de manière hiérarchique et est assez compliquée à lire pour un humain. Chaque information (les fameuses variables précédentes) est identifiée par un OID (Object IDentifier). Figure 1: Fonctionnement du SNMP Elaboré par Mohamed DAOUES 11

12 III. Le marché des outils d administration et de supervision 1.1 La situation du marché Les éditeurs logiciels ont rapidement compris que la supervision était indispensable pour les entreprises qui, de plus en plus, utilisent leur système d information et ont donc besoin d une disponibilité accrue de leur infrastructure informatique. Par conséquent, la supervision est un domaine dans lequel les entreprises n hésitent pas à investir depuis des années. Suite à diverses recherches sur le web nous nous sommes confronté à un grand manque d informations par rapport à la situation du marché des outils de supervision. Nous avons néanmoins réussi à trouver des données par rapport à la croissance de ce marché depuis 2003 ainsi que ses tendances. En effet, en 2003 la part du marché des outils d administrations dans le monde représentait 5.1 Md de dollars et n a pas cessé d augmenter pendant les dernières années jusqu à atteindre la barre de 18,6 Md de dollars en 2008, selon une étude de ForresterResearch (un cabinet d analyse américain). Mais malgré ses chiffres prometteurs ce marché connait depuis 2009 et 2010 une croissance lente respectivement égale à 3% et à 7%. Cela est dû en premier temps à la crise économique et en deuxième temps à la banalisation des outils dans les couches basses (certaines fonctions sont désormais présentes dans tous les outils du marché comme la découverte des équipements reliés sur le réseau, savoir quel serveur est en panne, ou quelle application ne fonctionne plus, ). Le recul marqué de ces trois années a eu un impact sur les entreprises et par conséquent sur les services informatiques et leurs budgets «faire plus avec moins de dépense!». Ainsi cette banalisation, a un impact sur les revenus des offreurs sur le marché et leurs prix des solutions. Un autre facteur qui fait baisser les prix, c est l accroissement des offres Open Source sur le marché et qui proposent ces outils de couches basses de l administration de systèmes. Néanmoins, et dans ce contexte l open source peut fortement faire jouer ses avantages en termes de coût, d après des hommes de terrain, ils voient une montée en puissance de projets de migration de gros et moyen comptes vers des solutions open source de plus en plus mature. Ces outils semblent donc prendre la place des couches de supervision des grandes suites d administration. Le portefeuille des produits sur le marché s étouffe? Depuis quelques temps, si Nagios est l outil le plus connu du secteur, d autres outils commencent aussi à émerger dans les entreprises comme Zabbix, Eyes of network qui réunit de manière pragmatique le processus ITIL. 1.2 Les tendances du marché Les acteurs présents sur ce marché sont nombreux et d origines différentes. Malgré le fort besoin ressenti, le marché de ce secteur ne connaît qu une faible croissance. En effet, de nouveaux modèles de commercialisation sont apparues, Open Source et Cloud. Ainsi les outils se rationnalisent et embarquent de bonnes pratiques provenant de référentiel comme ITIL. Depuis 2010 de nouveaux besoins apparaissent et le marché évolue avec l émergence de nouvelles technologies fortes telles que la Virtualisation et le Cloud. Ces technologies demandent aux outils d administration des fonctions différentes. Donc le recours à ces outils ne devrait pas couvrir seulement les aspects d administration classique, mais devront aussi permettre un contrôle et un audit des services fournis pour permettre en interne le recensement des services présents dans le catalogue et en externe pour prouver la qualité et la réalité de la prestation. Les entreprises de taille plus petite devraient principalement être des consommatrices de ce type de service pour optimiser leur production informatique ou contrôler leurs relations avec leurs prestataires. En Elaboré par Mohamed DAOUES 12

13 ce qui concerne aussi les offres, il y a une tendance qui s affirme c est de pouvoir utiliser des fonctions d administration ou de supervision en Cloud. Elaboré par Mohamed DAOUES 13

14 IV. Présentation des outils de supervision: Vu le nombre élevée des outils et des solutions de supervision, nous pouvons découper le marché en deux grandes catégories d offres : d une partie les offres éditeurs (propriétaires), de l autre les offres du monde libre. Pour cela nous n allons présenter qu une liste exhaustive des logiciels les plus connus pour leur stabilité et fiabilité, sinon nous risquerons de nous noyer dans une comparaison sans fin. Vu les différents besoins spécifiques propres à chaque organisation, c est à l utilisateur final dont revient le choix de l outil ou bien de la solution. Nous allons dans ce qui suit présenter le marché, ses tendances et exposer les différentes solutions disponibles sur le marché. 1.1 Outils propriétaires : S assurant que la supervision est un marché porteur, les sociétés se pressent de plus en plus à investir dans des produits permettant la supervision et une meilleure gestion des réseaux. Ayant compris cet enjeu les gros éditeurs logiciels sont donc très vite entrés dans la course aux logiciels de monitoring tel que : HPopenview, BMC (ProactiveNet Performance Management), IBMTivoli Network manager, Ipswitch What's Up Gold, Ciscoworks Internetwork Performance Monitor, LANDesk Management Suite, Microsoft Operations Manager, PRTG Network Monitor 8. Même si les offres commerciales des constructeurs peuvent présenter l'avantage de proposer une cohérence dans la supervision du SI, leur coût d'acquisition, d'installation et de maintenance amène de plus en plus de décideurs informatiques à se tourner vers des solutions open source. 1.2 Outils Open Source : Même du côté de la communauté du logiciel libre, c est depuis des années que l activisme dans le domaine de la supervision a commencé. Plusieurs projets ont vu le jour, il suffit juste d aller faire un petit tour sur sourceforge pour se rendre compte de la multitude des projets autour de la supervision système et réseau. Et nous noterons ici que ceux qui sont les plus populaires : Nagios, NetXMS,OpenNMS, Zenoss, Zabbix(similaire à Nagios), Shinken (une refonte complète du cœur de Nagios en Python), Centreon, EyesOfNetwork. Elaboré par Mohamed DAOUES 14

15 V. Choix de l outil Une multitude de plateformes de supervision existent aujourd hui sur le marché. Certaines se contentent de gérer à temps réels l état du réseau et préserve une vue globale sur le fonctionnement de son architecture, d autres permettent également de connaître l état des différents services, et d autres offrent la possibilité de ressortir de nombreuses statistiques du réseau permettant une analyse assez fine. Les différentes solutions commerciales déjà présentées (HPOpenview, Ipswitch,BMC,IBM, etc...) nécessitent un investissement important pour leur mise en place, et pour des raisons d essai qui sont limitées en durée et en fonctionnalités, toutes ces solutions sont à écarter de notre liste de choix. Et juste à titre d exemple nous allons citer la tranche de prix de ces outils pour montrer l investissement lourd que ça nécessite : les prix sont de 5 000 pouvant arriver jusqu à 100 000 et cela dépend du nombre de nœuds à superviser ainsi que des licences à octroyer. Parmi les solutions open Source, les plus connues, nous allons dresser un tableau récapitulatif qui recense les différentes fonctionnalités de chaque outil. Produit Présentation Fonctionnalités Nagios OpenNMS C est un logiciel de supervision des systèmes et réseaux sous licence libre. cette solution permet entre autres, de superviser la disponibilité d'actifs réseaux, de serveurs ou d'applications, suivre l'évolution des capacités disques ou la bande passante de carte réseau C est un outil de supervision de réseau Open Source. Il a été développé en Java et s'appuie sur le moteur applicatif Jetty pour fonctionner. -Offre une interface web basée sur les CGL avec gestion des droits pour la consultation. -Génère des rapports de surveillance. -Il a la possibilité de monitorer à distance à travers un firewall. -Il peut définir des serveurs esclaves qui prennent le relais si le serveur maitre tombe en panne. -Surveillance des ressources des serveurs (CPU, mémoire ) -Surveillance des services réseaux. -Arrêt temporaire de la supervision locale ou globale. -Génère des graphes par l interfaçage avec RRDTools. -Découverte des équipements réseaux. -Mesure la connectivité réseau entre le serveur et les équipements supervisés. -Identifie et liste les coupures réseaux (outages, pathoutages). -Fournit un outil de base pour traduire les MIBs et les intégrer dans l'outil. -Traduit et affiche les traps SNMP reçues sous forme d'évènements (sans corrélation) et sous forme d'alarmes avec deux fonctions de corrélation de base. Elaboré par Mohamed DAOUES 15

16 Produit Présentation Fonctionnalités -Une interface multi-utilisateurs intuitive et Centreon C est un logiciel de surveillance et de personnalisable supervision réseau, fondé sur le moteur de récupération d'information libre Nagios -Une interface évoluée pour configurer le périmètre à superviser -Une gestion de tous les fichiers de configuration de Nagios -Un module de chargement de configuration de Nagios -Un test de validité des configurations avec le debugger de Nagios - Des représentations graphiques élaborées - Une gestion des accès très fine basée sur une Liste de Contrôle d'accès (LCA) -Une gestion de la prise en compte des incidents -Une gestion des temps d'arrêt des éléments supervisés -Un gestionnaire des évènements survenus sur le système de supervision -Un système de modules qui permet l'inclusion d'autres applications dans Centreon - Un compte rendu complet sur les incidents -Une MAP java pour une vision simplifiée de l'état du SI -Gestion multi sites et sécurisation des Eyes Of Network C est une solution Open Source réunissant de manière pragmatique les processus ITIL et évènements. -Gestion des incidents et des problèmes l interface technologique permettant leur -Gestion de la criticité des applications application. EyesOfNetwork Supervision est la première brique d une gamme de produits bâtie autour de la gestion des évènements, de la disponibilité, des problèmes et de la capacité. -Cartographie personnalisée de la disponibilité -Gestion des performances -Cartographie de la bande passante - Outil de sauvegarde de la solution - Interface Web unifiée de la solution, -Librairie d affichage des graphiques - Traduction des traps snmp, -Gestion de parc. Elaboré par Mohamed DAOUES 16

17 NetXMS C est un système de surveillance de toute l infrastructure informatique extrêmement fiable et puissant qui permet d améliorer la disponibilité du réseau ainsi que le taux de disponibilité. -Découverte de la Topologie IP du réseau -Découverte automatique des nouveaux serveurs et dispositifs -Surveillance du statut des dispositifs de réseau, des serveurs, et des applications installées. -Collecte des données d'exécution de vos dispositifs de réseau, des données d'exécution des serveurs. -Il permet le stockage des données rassemblées pour une analyse postérieure -Envoi des alertes par l'intermédiaire d'email ou SMS. Produit Présentation Fonctionnalités Zenoss C est un outil de supervision open-source gratuit (il existe une version commerciale comportant plus d options). Il se base sur une application Web qui va surveiller les nœuds de votre réseau et générer des rapports. -La découverte de la configuration du réseau -La découverte automatique de l environnement -La gestion de la performance, d événement, et l alerte. -La supervision de l activité réseau Zabbix C est une application libre (open source) de supervision des systèmes et des réseaux en infrastructure IT, développée en C. L interface web est quant à elle, développée en PHP et en JavaScript. Zabbix est multiplateforme, et est disponible sous des systèmes d exploitation tels que par exemple Windows, Linux, Solaris etc. -Découverte automatique des équipements -Supervision et vérification des statuts d une multitude de services réseaux ou systèmes -Supervision niveau matériel -Support du Protocol IPMI -Intègre par défaut la gestion des cartes et de graphiques. Shinken consiste en une refonte complète du cœur de Nagios en Python, lui apportant une nouvelle architecture plus souple et plus facile à maintenir que le démon monolithique actuel. Se basant sur une vue Unix, l architecture se compose de démons simples qui coopèrent afin de proposer les mêmes fonctionnalités que Nagios. -Vérifications des états softwares/hardwares -Gestion des dépendances réseaux et logiques (applicatives) -Gestion des actions correctrices -Supervision active et passive -Vérification de la fraicheur des informations dans le cadre de la supervision passive. -Supervision distribuée hautement disponible Elaboré par Mohamed DAOUES 17

18 Le monde du logiciel libre est vaste. Comment s y retrouver parmi les nombreuses solutions qui existent et trouver celle qui répond au mieux à ses besoins? C est la question qui s est posée lors de la fixation de notre choix. Et pour y répondre nous avons pris en considération la maturité de l outil, la communauté qui l entoure. Si l on retient ses considérations, notre choix se portera vers Nagios, une solution qui a fait ses preuves. Nagios est stable, dispose d une grande communauté de développeurs derrière elle et est utilisée par un grand nombre de fournisseurs d accès ou de grands noms comme Air France, le CNRS, le Ministère de l Education National. Au début nous voulions travailler sur la solution Shinken mais lors de la configuration de cette dernière nous nous sommes confronté à un problème bloquant, donc par la suite nous nous sommes focalisé sur la solution Eyes Of Network mais vu le nombre de paramètres à configurer et d interfaces graphiques à gérer ainsi que le délai qui nous a été accordé pour l élaboration de ce projet de synthèse, nous avons abandonné cette solution. Elaboré par Mohamed DAOUES 18

19 VI. Présentation de l outil 1. Nagios Nagios est un outil open source qui permet de superviser un système d information de taille moyenne ou importante. Utilisé par de nombreuses sociétés, il a fait l'objet de contributions et de recherches très actives. Nagios a un fonctionnement modulaire et ouvert, ce qui l a rendu très attractif par rapport aux autres produits. En revanche, sa configuration peut se révéler complexe. Il a été Créé en 1999 sous le nom de NetSaint et toujours maintenue par Ethan Galstad, il surveille les hôtes et les services associés, et alerte le personnel d astreinte lorsqu un problème se présente. Nagios n est pas le seul outil de supervision open source. Par rapport à ses concurrents, sa plus grande force réside dans sa modularité complète. Il n a pas de domaine de prédilection et peut observer tout ce que ses plug-ins sont capables de rapporter. D autres outils open source de supervision existent, mais ils ne sont pas aussi modulaires ou performants que Nagios. 1.1 Les fonctionnalités de Nagios Parmi ses fonctionnalités, Nagios inclut : La surveillance des services réseaux (SMTP, POP3, HTTP, NTP, PING, etc.) La surveillance des ressources des hôtes (charge processeur, utilisation des disques, etc.) Un système simple de plugins permettant aux utilisateurs de développer facilement leurs propres vérifications de services. Des contrôles parallèles des services. La possibilité de définir la hiérarchie du réseau en utilisant des hôtes parents, ce qui permet la détection et la distinction entre hôtes à l'arrêt et hôtes injoignables. Notification des administrateurs quand un seuil d'alerte a été franchi (via email, pager, sms, ou par toute autre méthode définie par l'utilisateur). La capacité à définir des gestionnaires d'événements permettant une résolution proactive des problèmes. La rotation automatique des fichiers journaux. Le support pour mettre en œuvre des serveurs de supervision redondants. Une interface web optionnelle permettant de voir l'état courant du réseau, l'historique des notifications et problèmes, le fichier journal, etc. Figure 2: Fonctionnalités Nagios Elaboré par Mohamed DAOUES 19

20 1.2 Principe de fonctionnement Le principe de fonctionnement de Nagios repose sur l'utilisation de greffon, l'un installé sur la machine qui supporte le serveur Nagios, et l'autre sur la machine que l'on souhaite superviser. Un greffon (plugin) est un programme modifiable, qui peut être écrit dans plusieurs langages possibles, selon les besoins, et qui servent à récupérer les informations souhaitées. Nagios, par l'intermédiaire de son greffon, contact l'hôte souhaité et l'informe des informations qu'il souhaite recevoir. Le greffon correspondant installé sur la machine concernée reçoit la requête envoyée par Nagios et ensuite va chercher dans le système de sa machine les informations demandées. Il renvoi sa réponse au greffon Nagios, qui ensuite le transmet au moteur de Nagios afin d'analyser le résultat obtenu et ainsi mettre à jour l'interface web. Il existe deux types de supervision: La supervision active et la supervision passive. La différence entre les deux types est l'initiative de la supervision. Dans le premier type, à savoir le type actif, c'est Nagios qui a toujours cette initiative. C'est lui qui décide quand il envoie une requête lorsqu'il veut récupérer une information, alors que lors d'une supervision passive, l'envoi d'information est planifié en local, soit à partir d'une date, soit en réaction à un événement qui se déroule sur la machine administrée. Pour notre projet, nous avons décidé d'utiliser le premier type de supervision, à savoir le type actif, ceci évite donc de configurer les postes à superviser. La collecte d'informations se fait grâce à l'exécution de commande de la part de Nagios. Une commande doit obligatoirement comporter des arguments afin de pouvoir chercher les bonnes informations sur les bonnes machines. Ces arguments sont l'adresse IP de l'hôte sur lequel, il faut aller chercher l'information. Une fois que Nagios a reçu les informations dont il avait besoin sur l'état des hôtes, celui-ci peut construire des notifications sur l'état du réseau, afin d'en informer l'administrateur. Figure 3 Principe de fonctionnement de Nagios Elaboré par Mohamed DAOUES 20

21 1.3 Architecture Nagios est un noyau qui gère l ordonnancement et les dépendances des vérifications (effectuées à l aide des greffons) et les actions à prendre en fonction des incidents (alertes, actions correctives, etc.), il peut être couplé à une interface graphique de type client web. Il est possible aussi de le coupler à une base de données lorsque le nombre de nœuds à superviser devient important. Figure 4 : Architecture de Nagios 1.4 Nagios et ses plugins Nagios fonctionne grâce à des plugins écris en Perl ou en C. Sans ces derniers, il est dans l incapacité de superviser et récolter les informations. Ces plugins sont des programmes externes au serveur, des exécutables qui peuvent se lancer en ligne de commande afin de tester une station ou service. Ils fonctionnent sous le principe d envoi de requêtes vers les hôtes ou services choisis lors d un appel du processus de Nagios, et la transmission du code de retour au serveur principale qui par la suite se charge d interpréter les résultats et déterminer l état de l entité réseau testée. Lors de son installation Nagios est livré avec un ensemble de greffons. Pour une utilisation basique et simple, ils devraient être suffisants. En voilà quelques exemples: check_smtp : Vérifie la présence d'un serveur SMTP. check_snmp : Envoie une requête SNMP (passée en argument) à un hôte. check_ssh : Vérifie la présence d'un service SSH. check_tcp : Vérifie l'ouverture d'un port TCP (passé en argument). check_users : Compte le nombre d'utilisateurs sur la machine locale. check_http : Vérifie la présence d'un serveur web. check_load : Vérifie la charge CPU locale. check_ping : Envoie une requête Ping à un hôte. check_pop : Vérifie la présence d'un serveur POP3. check_procs : Compte les processus locaux. Nous verrons un peu plus loin l utilité de ces plugins ainsi que leur rôle dans la recherche et la collecte d informations pour notre serveur de supervision. Elaboré par Mohamed DAOUES 21

22 2. Centreon 2.1 Présentation de Centreon Afin d offrir une administration moins rudimentaire à Nagios nous avons choisi de lui ajouter un greffon. En effet ce dernier, est une couche applicative web. Cette couche est connue sous le nom de Centreon, qui est un produit complet, avec une interface qui le rend professionnel aux yeux des décideurs. Et pour ceux qui auront affaire avec Nagios ça leur évitera les fichiers de configurations et les lignes de commandes brutes. Centreon intègre une interface multi-utilisateurs complète et intuitive qui permet, les accès à d autres utilisateurs, on leurs attribuerons des privilèges différents. Ce projet a vu le jour en 2003 sous le nom d Oreon et dispose à ce jour d une large communauté d utilisateurs. C est un produit français distribué sous une licence GPL v2. 2.2 Fonctionnalité de Centreon Parmi ses fonctionnalités Centreon inclut : Une interface multi-utilisateurs intuitive et personnalisable Une interface évoluée pour configurer le périmètre à superviser Une gestion de tous les fichiers de configuration de Nagios Un module de chargement de configuration de Nagios Un test de validité des configurations avec le debugger de Nagios Des représentations graphiques élaborées Une gestion des accès très fine basée sur une Liste de Contrôle d'accès (LCA) Une gestion de la prise en compte des incidents Une gestion des temps d'arrêt des éléments supervisés Un gestionnaire des évènements survenus sur le système de supervision Un système de modules qui permet l'inclusion d'autres applications dans Centreon Une MAP java pour une vision simplifiée de l'état du SI 2.3 Architecture de Centreon Centreon est divisé en plusieurs composants : CentreonWeb : une interface web qui permet la configuration et la visualisation des objets supervisés. CentreonCore : c est le cœur de la solution qui permet aux différents composants d interagir. Centreon Storage : c est l outil de métrologie qui exploite les données envoyées par nagios. Figure 5: Architecture de Centreon Elaboré par Mohamed DAOUES 22

23 VII. Installation et configuration de l outil : 1. Plateforme de test choisie : Pour mettre en œuvre et tester la solution choisie nous avons créé des machines virtuelles sur trois machines hôtes. La configuration du réseau que nous allons superviser est de type LAN et contient au total - Le serveur linux (Nagios) - Un serveur w2008 (DNS + DHCP) - Une machine cliente sous Windows XP - Une machine cliente sous Debian (serveur de partage/serveur ftp) Toutes ses machines ont la même passerelle qui est l adresse de mon routeur d accès à internet. 2. Installation Nagios /Centreon : Dans ce chapitre nous allons décrire l installation de notre serveur de supervision Nagios et son «fidèle ami» pour sa configuration Centreon. Mais avant tout nous devons mettre à jour notre système Ubuntu par les commandes suivantes : $ sudo apt-get update $ sudo apt-get upgrade 2.1 Les pré-requis pour l installation de nagios L installation de nagios requiert des pré-requis pour son bon fonctionnement et qui sont les suivants : - Un serveur web : apache2 - Un compilateur GCC et librairies de développement - Des librairies de développement GD. $ sudo apt-get install apache2 $ sudo apt-get install build-essential $ sudo apt-get install bind9-host dnsutils libbind9-60 libdns66 libisc60 libisccc60 libisccfg60 liblwres60 libradius1 qstat radiusclient1 snmp snmpd Pour tester notre serveur web, nous commençons par le démarrer via la commande suivante : $ sudo /etc/init.d/apache2ctl start Ou bien $ sudo apache2ctl start Puis nous ouvrons notre navigateur web et nous saisissons l URL suivante : http://adresse_ip_serveur. Une page de bienvenue devra s afficher. Par la suite nous procédons à l installation des librairies qui serviront à nagios pour afficher les diagrammes d état de notre réseau supervisé. $ sudo apt-get install libgd2-noxpm-dev libpng12-dev libjpeg62 libjpeg62-dev Elaboré par Mohamed DAOUES 23

24 2.2 Installation de Nagios Dans cette partie nous allons décrire l installation de notre système de supervision. Pour cela il est fortement conseillé et pour des raisons de sécurité, de procéder à la création d un utilisateur et un groupe associé à ce dernier nommé tous les deux Nagios. Le groupe Nagios comprendra les utilisateurs Nagios et www-data (utilisateur avec lequel le serveur apache sera lancé par défaut) $ sudo /usr/sbin/useradd nagios $ sudo passwd nagios $ sudo /usr/sbin/groupadd nagios $ sudo /usr/sbin/usermod -G nagios nagios $ sudo /usr/sbin/usermod -G nagios www-data Pour pouvoir installer Nagios et plugins nous nous sommes rendus à la page officielle des téléchargements sur le site de Nagios pour vérifier la dernière version stable. Cette dernière est la 3.3.1, et celle des plugins est la 1.4.15 Pour faciliter l installation nous sommes passés en mode root par le biais de cette commande : ~$ sudo -s [sudo] password for insta: ~# Par la suite, nous procédons au téléchargement des sources dans le fichier /usr/src : # cd /usr/src # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz # wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz Elaboré par Mohamed DAOUES 24

25 Une fois le téléchargement terminé, nous décompressons les sources et nous lançons la compilation via les commandes suivantes : # tar xzf nagios-3.3.1.tar.gz # cd nagios-3.3.1 #./configure with-command-group=nagios... General Options: ------------------------ Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Embedded Perl: no Event Broker: yes Install ${prefix}: /usr/local/nagios Lock file: ${prefix}/var/nagios.lock Check result directory: ${prefix}/var/spool/checkresults Init directory: /etc/init.d Apache conf.d directory: /etc/apache2/conf.d # make all # make install # make install-config # make install-commandmode Nous installons ensuite le script de démarrage pour que nagios se lance automatiquement avec notre serveur de supervision : # make install-init Les # ln commandes -s /etc/init.d/nagios qui suivent /etc/rcs.d/s99nagios servent à installer l interface web : # make install-webconf # sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin REMARQUE: Saisir le mot de passe pour le compte nagiosadmin de l'interface Web # /etc/init.d/apache2 reload De base nagios est livré sans aucune extension. Il faut donc installer les plugins nécessaires lui permettant de surveiller les machines de notre réseau à superviser. # sudo aptitude install fping libnet-snmp-perl libldap-dev libmysqlclient-dev libgnutls-dev libradiusclient-ng-dev Elaboré par Mohamed DAOUES 25

26 Par la suite nous procédons à la décompression du fichier des plugins et à leur installation. La version des plugins est la 1.4.15. # cd /usr/src # tar xzf nagios-plugins-1.4.15.tar.gz # cd nagios-plugins-1.4.15 #./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install Une fois l installation terminée, nous pouvons vérifier le bon fonctionnement de notre serveur de supervision. Nous allons donc tester les fichiers de configuration grâce à la commande suivante : # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Si tout se passe bien nous aurons ce message comme réponse : Total Warnings: 0 Total Errors: 0 Ensuite Things nous look pouvons okay - No démarrer serious problems notre serveur were nagios detected : during the pre-flight check # /etc/init.d/nagios start Starting nagios:no directory, logging in with HOME=/ Il ne nous reste plus qu à aller sur notre navigateur web et de saisir l URL suivante : http://192.168.62.128/nagios/.(login : nagiosadmin / mot de passe : ******), nous devrions voir s afficher cela : Figure 6 : Interface web de Nagios Elaboré par Mohamed DAOUES 26

27 2.3 Les pré-requis pour l installation de Centreon Centreon utilise une base de donnée MySQL, nous commençons alors par installer MySQL server sur notre serveur de supervision. # sudo apt-get install mysql-server # sudo apt-get install php5-mysql # sudo apt-get install libmysqlclient15-dev Afin que Nagios et Centreon puissent communiquer entre eux, ils utilisent une base de donnée commune (appelée NDO). Donc pour commencer, nous allons la créer avec le compte root de mysql et nous créons l utilisateur et mot de passe qui aura le droit d administrer la base : # mysqladmin -u root -p create ndo # mysql -u root -p mysql mysql> GRANT ALL ON ndo.* TO ndouser@localhost IDENTIFIED BY ndopassword ; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> exit 2.4 Installation du NDOUTILS En effet pour que nagios puisse écrire les informations sur sa base de données NDO, il faut lui installer son plugin NDOUTILS. Ce dernier est conçu de deux blocs : «Ndomod» et «Ndo2db», le premier va prendre les informations à partir du démon Nagios et les envoyer via un socket (TCP ou UNIX) vers le deuxième qui va les convertir dans un format compatible avec la base de données MySQL. Ce complément permettra à «Centreon» d accéder de manière optimisée aux données d états et performances de Nagios et de partager ses données. Et pour que tout le système fonctionne il faut que NDOMOD soit chargé par Nagios au démarrage et le démon NDO2DB soit lancé en tâche de fond. Figure 7 : Architecture NDOUTILS Elaboré par Mohamed DAOUES 27

28 Nous commençons par récupérer le plugin et le placer dans le dossier /usr/src : # cd /usr/src # wget http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz Par la suite nous décompressons le fichier ndoutils-1.4b9.tar.gz, et nous commençons la compilation de NDO avec quelques pré-requis pour notre installation # tar zxvf ndoutils-1.4b9.tar.gz # cd ndoutils-1.4b9 #./configure --disable-pgsql --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --withndo2db-group=nagios Nous # make procèderons à l installation des fichiers de NDO dans l arborescence de Nagios : cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db chown nagios:nagcmd /usr/local/nagios/bin/ndo* chmod 774 /usr/local/nagios/bin/ndo* Et nous copions les fichiers de configuration dans l arborescence de Nagios : # cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg # cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg # chown nagios:nagcmd /usr/local/nagios/etc/ndo* A l étape suivante nous éditons le fichier de configuration du module NDO et nous vérifierons les paramètres suivants : que le «output_type» est de type Unixsocket pour des questions de performances et en cas de rupture réseau, nous sommes sûres que les données ne seront pas perdues. # nano /usr/local/nagios/etc/ndomod.cfg instance_name=central output_type=unixsocket output=/usr/local/nagios/var/ndo.sock tcp_port=5668 output_buffer_items=5000 buffer_file=/usr/local/nagios/var/ndomod.tmp Elaboré par Mohamed DAOUES 28

29 Nous passons par la suite à éditer les fichiers de configuration de la base de données NDO et à la # nano /usr/local/nagios/etc/ndo2db.cfg ndo2db_user=nagios ndo2db_group=nagcmd vérification socket_type=unix des paramètres suivants : socket_port=5668 db_servertype=mysql db_host=localhost db_name=ndo db_port=3306 db_prefix=nagios_ db_user=ndouser db_pass=ndopassword Et pour finaliser cette opération nous procédons à la redirection des sorties de Nagios vers la base de données Ndo grâce à la déclaration du module Broker dans nagios.cfg # nano /usr/local/nagios/etc/nagios.cfg event_broker_options=-1 broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg Dans une autre étape nous procédons à la création d un script d init qui a pour principal rôle d automatiser le lancement du démon ndo2db avec le lancement du serveur nagios. (Voir Annexe 1). A ce script on lui donne les droits «root» afin qu il se lance. chown root:root /etc/init.d/ndo2db chmod 755 /etc/init.d/ndo2db update-rc.d ndo2db defaults 2.5 Installation de Centreon Dans cette partie nous allons procéder à l installation de la version 2.1.11 de Centreon sur notre serveur de supervision. Pour commencer nous devons récupérer les sources depuis internet, nous nous identifions en tant que root sur notre serveur. # sudo -s # cd /usr/src # wget http://download.centreon.com/index.php?id=144 # tar zxvf centreon-2.1.11.tar.gz # cd centreon-2.1.11 Elaboré par Mohamed DAOUES 29

30 Par la suite nous lançons l assistant d installation et nous devons répondre à quelques questions. #./install.sh -i Do you accept GPL license? [y/n], default to [n]: > y Do you want to install : Centreon Web Front [y/n], default to [n]: > y Do you want to install : Centreon Nagios Plugins [y/n], default to [n]: > y Do you want to install : Centreon Snmp Traps process [y/n], default to [n]: > y Do you want me to create this directory? [/usr/local/centreon] [y/n], default to [n]: > y Path /usr/local/centreon OK Do you want me to create this directory? [/usr/local/centreon/log]... Do you want me to create this directory? [/var/lib/centreon/centplugins] [y/n], default to [n]: >y Path /var/lib/centreon/centplugins OK A la fin de l installation il nous suffit d ouvrir un navigateur et de taper l url suivante : http://192.168.62.123/centreon/ À l ouverture de cet Url nous serons invités à terminer l installation de Centreon. Donc nous suivrons les étapes de 1 jusqu à 12. Elaboré par Mohamed DAOUES 30

31 Figure 8 : Installation Centreon via l'interface Web Elaboré par Mohamed DAOUES 31

32 A la fin de l installation nous voilà face à la page d authentification de Centreon, il ne nous reste plus qu à s identifier avec le login «admin» et le mot de passe : tsgeri. Figure 9 : interface de connexion Centreon Une fois connecté nous pouvons visualiser tous les volets présents sur l interface web de Centreon que nous allons détailler dans ce qui suit, car nous allons utiliser cette dernière pour configurer notre serveur de supervision «Nagios». Mais avant de passer à la configuration de notre serveur via Centreon nous allons consacrer un volet pour les fichiers de configuration de Nagios, ainsi qu aux types de données à définir dans ce dernier. 3. Configuration Nagios/Centreon Cette partie est consacrée à l explication des éléments de configuration de Nagios ainsi que Centreon. 3.1 Fichiers de configuration Nagios Dans cette partie nous exposons les différents fichiers de configuration respectifs à Nagios, sans forcément les définir sur notre serveur de supervision. Comme nous l avons précisé au préalable, nous allons utiliser l interface web de Centreon pour la configuration de notre Nagios. 3.1.1 Fichiers de configuration Nagios L arborescence des fichiers de configuration de nagios se présente comme suit : Figure 10 : architecture des fichiers de configuration de Nagios Elaboré par Mohamed DAOUES 32

33 Nagios.cfg : C est le fichier de configuration principal de Nagios. Il contient la liste des autres fichiers de configuration et comprend l'ensemble des directives globales de fonctionnement. Cgi.cfg : Il contient un certain nombre de directives qui affectent le mode de fonctionnement des CGI. Il peut être intéressant pour définir des préférences concernant l'interface web de Nagios. Resource.cfg : Il permet de définir des variables globales réutilisables dans les autres fichiers. Etant inaccessible depuis les CGI qui génèrent l'interface, ce fichier peut être utilisé pour stocker des informations sensibles de configuration. Commands.cfg Il contient les définitions des commandes externes, telles que celles qui seront utiles pour la remontée d'alerte. Checkcommands.cfg : Il contient les définitions des commandes de vérification prédéfinies et celles définies par l'utilisateur. Hosts.cfg : Il définit les différents hôtes du réseau à superviser. A chaque hôte est associé son nom, son adresse IP, le test à effectuer par défaut pour caractériser l'état de l'hôte, etc. Services.cfg : Il associe à chaque hôte ou à chaque groupe d'hôtes l'ensemble des services qui doivent être vérifiés. 3.1.2 Données à définir dans Nagios Ici nous allons parler des éléments les plus importants à définir dont Nagios a besoin afin d accomplir son travail. Ces éléments devront être définis dans les fichiers de configuration, ces derniers sont situés généralement dans le répertoire par défaut /usr/local/nagios et ils se présentent sous la forme suivante : define type { Parametre1=valeur1 Parametre2=valeur2 } ; commentaire Ici nous nous voyons la déclaration d un objet type comme valeur «valeur1» pour paramètre1. Parmi ces paramètres, il existe ceux qui sont indispensables et ceux qui sont facultatifs. Les commentaires commencent par le signe «;». Parmi ces données à définir nous retrouvons les commandes de vérification, les périodes de temps, les commandes de notification, les hôtes les services et les contacts. Elaboré par Mohamed DAOUES 33

34 3.1.2.1 Commandes de vérification Afin qu il puisse fonctionner Nagios a besoin qu on lui fournisse les commandes responsables des vérifications des éléments distants. Ces dernières ont la responsabilité de déterminer les éléments distants et de fournir les informations d états et de performance. Pour les définir, nous devons instancier l objet «command». Ces instances figurent dans le fichier «command.cfg». Les objets sont simples et ne comportent que deux propriétés : - Command_name : c est le nom de la commande tel que nous allons l utiliser dans le reste de la configuration Nagios. - Command_line : c est la commande que doit lancer Nagios. Exemple de commande : define command { command_namecheck_tcp command_line /usr/local/nagios/libexec/check_tcp H $HOSTADDRESS$ -p $ARG1$ } Dans l exemple ci-dessus nous essayons de vérifier juste si nous pouvons nous connecter à l'hôte mentionné dont sa valeur est définie au niveau de $HOSTADDRESS$, sur le port dont le numéro est précisé dans $ARG1$. En effet, le $HOSTADDRESS$ est une macro qui est positionnée lors du lancement de la commande par Nagios. Sa valeur peut changer en fonction du contexte, ici elle est égale à l adresse réseau de l élément qu on veut surveiller. Les commandes peuvent prendre des arguments, comme c est le cas dans notre exemple. Ces derniers peuvent prendre la forme $ARGn$, «n» pouvant aller de 1 à 32. Ils peuvent être donnés lors de l appel de la commande, par un hôte ou par un service. Ceci, permet entre autres, d avoir une seule définition de commande pour vérifier un port TCP et de spécifier, par exemple dans le service, le numéro de port que nous souhaitons surveiller. 3.1.2.2 Période de temps Pour pouvoir exécuter ses commandes Nagios a besoin de savoir quand superviser les éléments et quand avertir les utilisateurs. Ces périodes de temps peuvent varier suivant le contexte, il faut que l utilisateur puisse les définir librement. L objet qui se charge de cela est timeperiod. Ses instances se trouvent dans le fichier timeperiods.cfg. Cet objet a comme propriétés : - Timeperiod_name : c est le nom qui sera utilisé dans le reste de la configuration, - Alias : c est un nom d affichage dans les interfaces, - Sunday,Monday,etc : pour chaque jour, on peut préciser un intervalle de temps qui sera pris en considération. Exemple de configuration simple : define timeperiod{ timeperiod_name workhours alias Work Hours Monday 09:00,17:00 ;Lundi Tuesday 09:00,17:00 ;Mardi...,. ;. Friday 09:00,17:00 ;Vendredi } Elaboré par Mohamed DAOUES 34

35 3.1.2.3 Les commandes de notification : Ces commandes servent à avertir les administrateurs d un dysfonctionnement au sein des éléments à superviser. Elles sont des commandes comme les autres, elles utilisent des macros relatives aux éléments supervisés, à leur état et aux contacts à prévenir. Ces commandes sont placées dans le fichier commands.cfg aux côtés des commandes de vérifications. Par exemple pour envoyer un e-mail relatif à un évènement sur un hôte, nous avons la définition suivante : define command { command_namehost-notify-by-email command_line /bin/echo "Host $HOSTNAME$ is $HOSTSTATE$" /bin/mail $CONTACTEMAIL$ } 3.1.2.4 Les hôtes Les hôtes sont nommés aussi nœuds ou ressources, ce sont les éléments que nous supervisons. Un nœud (Host) possède des propriétés particulières comme son adresse réseau ou bien les personnes à contacter en cas de besoin (problème). Au sens de Nagios c est un objet host et il figure dans le fichier hosts.cfg. Un hôte peut avoir plusieurs états : UP : il est en état de répondre ; DOWN : il est indisponible ; UNREACHABLE : l état n est pas connu car il est situé, en termes de réseau, derrière un élément qui est tombé. Les propriétés indispensables à la définition d un hôte sont les suivantes : - Host_name : c est le nom de l hôte tel qu il sera utilisé dans le reste de la configuration, - Alias : c est le nom qui sera affiché aux utilisateurs, - Address : c est l adresse réseau de l hôte, - Max_check_attempts : c est le nombre de vérifications que nagios doit tenter avant de le déclarer réellement down, - Check_period : c est la période de temps pendant laquelle le nœud est supervisé, - Contacts : c est la liste des contacts à prévenir en cas de souci, - Contact_groups : c est le groupe de contacts à prévenir en cas de problème, - Notification_interval : intervalle de temps, en minutes, entre les notifications d erreur, - Notification_period : c est la période de temps appliquée aux notifications des contacts. - Check_command : c est la commande à travers laquelle nagios vérifie l état de l hôte. Elle est optionnelle car dans certains cas particuliers comme la supervision passive, elle n est pas nécessaire. - Notifications_options : ce sont les états des hôtes qui doivent faire l objet d une notification. Si l option n est pas spécifiée, Nagios considère que tous les états doivent être remontés. Les états possibles sont : -d : lorsqu un hôte passe en état Down, -u : lorsqu un hôte passe en état Unreachable, -r : lorsqu un hôte revient en état up, -f : lorsqu un hôte est en mode flapping, -s : lorsqu un hôte arrive dans une période de maintenance définie par un administrateur, -n : elle est utilisée lorsqu un contact ne veut pas recevoir de notification. Elaboré par Mohamed DAOUES 35

36 Exemple de définition d un hôte : define host{ host_name srv-web1 alias Serveur Web 1 address 192.168.0.1 check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 3 check_period 24x7 contact_groups web-admins notification_interval 30 notification_period 24x7 notification_optionsd,u,r } 3.1.2.5 Les services Les services sont les points supervisés sur les hôtes. Dans le cas d un serveur, il s agira, par exemple, de s assurer du bon fonctionnement d une application ou bien de vérifier si la charge du serveur est acceptable. Les hôtes et les contacts à alerter sont indispensables dans la définition des services. Un service peut avoir plusieurs états : OK : tout va bien pour l élément surveillé. WARNING : quelque chose commence à aller mal comme, par exemple, un disque qui est presque rempli. CRITICAL : la situation est très grave et demande une intervention immédiate. C est le cas, par exemple, d un disque plein. UNKNOWN : la commande de vérification n a pas pu obtenir les informations souhaitées. Tout comme pour les autres objets, les services ont des propriétés indispensables - service_description : nom du service, - host_name : c est le nom de l hôte où se trouve le point à surveiller, - check_command : c est une commande de vérification pour obtenir l information souhaitée, - max_check_attempts : c est le nombre de tentative au bout desquelles la situation est considérée comme sûre, - check_interval : c est la période entre deux tests en temps normal, - retry_interval : c est la période entre deux tests lorsqu il y a un souci, - check_period : c est la période de temps durant laquelle le service est supervisé, - notification_interval : c est l intervalle de temps entre deux notifications, - notification_period : c est la période de temps durant laquelle les notifications sont envoyées, - contacts : c est les contacts à prévenir, - contact_groups : c est les groupes de contacts à informer, - notification_options : ce sont les états qui, pour un service, doivent faire l objet d une notification. Comme pour les hôtes, si ce paramètre n est pas positionné, tous les états sont pris en compte. Ces états sont les suivants : -w : lorsqu un service passe en état WARNING, -u : lorsqu un service passe en état UNKNOWN, -c : lorsqu un service passe en état CRITICAL, Elaboré par Mohamed DAOUES 36

37 -r,f,s,n : mêmes options que pour les hôtes, mais appliquées aux services. Exemple de définition d un service define host{ host_name srv-web1 service_description Http check_command check_tcp!80 max_check_attempts 2 check_interval 5 retry_interval 3 check_period 24x7 contact_groups web-admins notification_interval 30 notification_period 24x7 notification_options w,c,r } 3.1.2.6 Les contacts Ce sont les personnes qui reçoivent les notifications d alertes. En effet, nous attribuons les hôtes et les services à des contacts pour les prévenir que des incidents qui les concernent. Nous allons avoir un contact par utilisateur de Nagios. Chaque contact aura de ce fait sa période de notification. Les objets contenant les contacts sont définis dans le fichier contact.cfg et possèdent les propriétés suivantes : - contact_name : c est le nom du contact tel qu il sera utilisé dans le reste de la configuration, - host_notifications_enabled : accepte ou non les notifications concernant les hôtes, - service_notifications_enabled : accepte ou non les notifications concernant les services, - host_notification_period : période de temps où les notifications d erreurs sur les hôtes sont acceptées, - service_notification_period : période de temps où les notifications d erreurs sur les services sont acceptées, - host_notification_options: états qui, sur les hôtes, doivent faire l objet d une notification. Les valeurs possibles sont les mêmes que pour le paramètre notification_options des hôtes, - service_notification_options : états qui, sur les services, doivent faire l objet d une notification. Les valeurs possibles sont les mêmes que pour le paramètre notification_options des services, - host_notification_commands : commande de notification qui est utilisée pour avertir d un évènement sur un hôte. - service_notification_commands : commande de notification qui est utilisée pour avertir d un évènement sur un service. - email : l adresse e-mail du contact. Elaboré par Mohamed DAOUES 37

38 Exemple de configuration de l objet contacts : define contact{ contact_namemdaoues aliasmohameddaoues host_notifications_enabled 1 service_notifications_enabled 1 service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-by-email host_notification_commands host-notify-by-email email dbrossart@masociete.com } 3.1.2.7 Les groupes de contacts De la même manière que les contacts nous pouvons configurer les notifications pour un groupe de contacts. La définition est très simple, le fichier à modifier est contacts.cfg : - contactgroup_name : nom du groupe tel qu il sera utilisé dans le reste de la configuration ; - alias : nom d affichage pour ce groupe ; - members : liste des contacts du groupe, séparés par des virgules ; - contactgroup_members : liste des groupes de contacts faisant parti du groupe. Exemple de configuration de l objet groupes de contacts : definecontactgroup{ contactgroup_name admins-web alias Administrateurs web members dmartin,dbrossart contactgroup_members admins-linux } Elaboré par Mohamed DAOUES 38

39 3.2 Configuration de Centreon Dans cette partie nous allons exposer toutes les vues de la configuration de Centreon, d une manière simple et compréhensible pour tous, pour obtenir au final une configuration adaptée à nos besoins. 3.2.1 Configuration de la communauté SNMP Une fois que nous sommes connectés sur Centreon via l interface web, nous cliquons sur l onglet Configuration Nagios Ressources puis su la ligne $USER2$. Figure 11 : Configuration de la communauté SNMP Dans le champ MACRO Expression, nous indiquons le nom de la communauté SNMP dont nous appartenons, c est celle-là qu il faudra configurer sur chaque machine que nous voulons superviser. Pour valider les changements nous cliquons sur «Save». 3.2.2 Configuration du fichier Ndo2db.cfg Dans cette partie nous allons configurer Centreon pour qu il puisse se connecter avec la base de données NDO. Pour cela, il faut aller dans le menu Configuration/Centreon, puis cliquer sur le lien ndo2db.cfg dans le menu de gauche et cliquer sur le lien Principal. Par la suite, il faut saisir la configuration suivante dans l onglet General : Socket type: unix Socket name: /usr/local/nagios/var/ndo.sock Figure 12 : Configuration du fichier ndo2db.cfg Elaboré par Mohamed DAOUES 39

40 Ensuite nous allons modifier le login et le mot de passe pour l accès à la base de données NDO, nous restons sur la même page de tout à l heure, nous cliquons sur database, et nous saisissons «ndouser» pour l utilisateur, «ndopassword» pour le mot de passe. Figure 13 : Configuration de la base de données NDO 3.2.3 Configuration du fichier Ndomod.cfg Il faut ensuite aller dans le menu Configuration Centreon, puis cliquer sur le lien ndomod.cfg dans le menu de gauche, cliquer sur le lien Principal, et saisir la configuration suivante : Socket type: unixsocket Output: /usr/local/nagios/var/ndo.sock Buffer File: /usr/local/nagios/var/ndomod.tmp Figure 14 : Configuration du fichier ndomod.cfg Elaboré par Mohamed DAOUES 40

41 3.2.4 Configuration du broker module Maintenant nous assurerons que Nagios et NDoutils sont bien configurés, pour cela nous devons remplir le champ «Broker Module» avec cette ligne-là : /usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg. Pour cela il faut cliquer sur Configuration Nagios nagios.cfg Data, par la suite il faut mettre la valeur «-1» dans le champ «Broker Module Options», et cliquer sur «Save». Figure 15 : Modification du Broker module 3.2.5 Génération de la configuration de Nagios par Centreon En effet pour que toute ses modifications soient prisent en compte par nagios, il faut exporter toute la configuration générée par Centreon. Pour cela, il faut se rendre dans le menu Configuration / Nagios et cocher les trois cases suivantes : Move Export Files, Include Comments, Restart Nagios. Figure 16 : Exportation de la configuration vers Nagios Figure 17 : Processus de génération de la configuration de Nagios par Centreon Elaboré par Mohamed DAOUES 41

42 VIII. Administration 1. Interface graphique nagios Dans cette partie nous allons décrire brièvement l interface graphique de Nagios car cette dernière sert uniquement à visualiser l'état du réseau supervisé. En effet, cette interface ne pourra pas nous servir pour la configuration de notre serveur de supervision. L'interface se compose d'une partie "menu" à gauche, et une partie centrale, beaucoup plus grande sur le reste de l'écran, qui servira à afficher les informations souhaitées, des captures d'écran sont disponibles en «Annexe2». Dans le menu, nous retrouvons en premier des liens vers le site de Nagios, et vers la documentation de ce logiciel. Ces liens sont dans la partie 'General'. Puis une partie 'Current status' dans laquelle il est possible de sélectionner les informations que l'on souhaite visualiser. Il y a de nombreux sousmenus dans cette partie ce qui permet d'afficher vraiment les informations précises qui nous intéressent. Il y a également la possibilité de visualiser des statistiques que Nagios a construit, ce qui est très intéressant pour l'administrateur. Dans la partie "Reports" il y a la possibilité de créer des rapports et des historiques des évènements qui se sont produits sur le réseau. Et enfin dans la dernière partie "System", il est possible de visualiser toute les configurations grâce à laquelle Nagios sait qui et quoi supervisé. Maintenant nous allons passer à la partie d administration qui concerne Centreon, c est sur celle-ci que nous essayerons de développer d avantage. 2. Interface graphique Centreon Cette partie sera consacrée dans un premier temps pour présenter l interface graphique de Centreon, qui servira pour configurer notre serveur Nagios. Et dans un deuxième temps, à expliquer la prise en main de cette interface. 2.1 Présentation de l interface de Centreon L interface graphique de Centreon se compose de six menus principaux que nous allons énoncer dans ce qui suit. 2.1.1 Menu Accueil : Il s agit de la première vue juste après la connexion à Centreon, dans ce menu nous retrouvons à gauche de l écran deux sous menus qui nous permettent de voir l état de santé globale sous forme de camembert, ainsi qu un aperçu tactique de tous les hôtes, services, et les problèmes non encore traités. Figure 18 : Sous menu Global Health Figure 19 : Sous menu tactical Overview Elaboré par Mohamed DAOUES 42

43 Nous retrouvons aussi un autre onglet qui concerne les statistiques de nagios où nous pouvons visualiser les performances de notre serveur de supervision, les informations par rapport aux processus nagios, et les graphes afférents. Figure 21 : Statistique Nagios_Infos performance Figure 20 : Statistique Nagios_Graphiques de performances 2.1.2 Menu Supervision : Dans cette vue nous pourrons accéder à l ensemble des hôtes et services supervisés. Nous pouvons sélectionner différentes vues selon le filtre choisi à gauche de l écran. Figure 22 : Statut des services par Hôtes Elaboré par Mohamed DAOUES 43

44 2.1.3 Menu Vues : Cette vue nous permet de voir, créer, paramétrer des Templates de graphiques pour pouvoir les exploiter ensuite pour l ensemble de nos hôtes et services. Figure 23 : Menu Vues 2.1.4 Menu Rapport : Cette vue nous permet d avoir des statistiques de fiabilité des hôtes, des groupes d hôtes, ou de groupes de services sur une période de temps données. Figure 24 : Menu reporting Elaboré par Mohamed DAOUES 44

45 2.1.5 Menu Configuration : Ce menu concerne la configuration de notre serveur de supervision, et se compose de plusieurs autres vues que nous allons énoncer dans ce qui suit. Ce menu remplace la configuration en ligne de commande qu avaient les administrateurs à effectuer, de ce fait ce menu est primordial. Sous Menu Hôtes : dans ce sous menu, nous allons pouvoir créer et paramétrer les hôtes pour qu ils soient ensuite injectés dans nagios. Concernant la création d un nouveau hôte, nous allons la voir un plus bas. Figure 25 : Vue configuration Hôtes Sous Menu Services : dans cette vue nous allons pouvoir créer et paramétrer les services que nous voulons superviser. Figure 26 : vue configuration Services Elaboré par Mohamed DAOUES 45

46 Sous Menu Utilisateurs : Au niveau de cette vue nous allons pouvoir créer et paramétrer l ensemble des utilisateurs qui pourront se connecter à l interface de Centreon. Via ce menu nous pouvons paramétrer plusieurs types de comptes ainsi que le fichier «timeperiod» de notification qu utilise nagios pour indiquer les plages horaires de notification. Figure 27 : Vue configuration des utilisateurs Sous Menu commandes : Dans cette vue, nous pourrons créer et paramétrer l ensemble des commandes de check que Nagios effectue lors de sa collecte d informations. Nous avons une liste de commandes prêtes à utiliser comme nous pouvons le voir sur la figure 28, celles qui nous sera utiles pour aller chercher les informations. Figure 28 : Vue configurations des commandes Elaboré par Mohamed DAOUES 46

47 Sous Menu notifications : Dans ce menu nous retrouvons toutes la gestion des escalades d hôtes, de services ainsi que les groupes respectifs à ses derniers. Nous pouvons aussi paramétrer les dépendances entre les hôtes, groupes d hôtes, les services et les groupes de services. (voir Annexe 3 pour la réception des Alertes) Figure 29 : Vue notification - Escalades/Dépendances Sous Menu Nagios : cette vue-là nous permet de gérer la configuration générale, les ressources de Nagios et d exporter la configuration de Centreon dans le répertoire «etc» de Nagios pour qu il prenne en compte les modifications. Figure 30 : Vue configuration Nagios Elaboré par Mohamed DAOUES 47

48 Sous Menu Centreon : la vue suivante est plus orientée vers la gestion de NDO et la supervision en mode distribuée. Nous pouvons ajouter tant de collecteurs que nous voulons. Figure 31 : vue configuration Centreon 2.1.6 Menu Administration : Ce menu concerne comme son nom l indique l administration de notre serveur de supervision et il se compose de 8 sous menus que nous allons les énoncer dans ce qui suit. Sous Menu options : dans cette vue nous retrouvons les points de configurations fondamentaux de Centreon, tel que le répertoire d installation, les options d affichage, les options de configuration de la base de données, etc. Figure 32 : Vue administration Options Elaboré par Mohamed DAOUES 48

49 Sous Menu Modules : cette vue sert à créer des modules pour pouvoir les greffer à Centreon. Sous Menu ACL : ce sous menu nous permet de gérer les rôles et les droits d accès à l interface pour les différents utilisateurs. Figure 33 : Menu Administration ACL Sous Menu Base de données : cette vue nous permet de garder un œil sur la taille de notre base NDO, et donc de réagir au plus vite dès que la taille de la base devient trop importante. Figure 34 : Menu Administration databases Sous Menu Sessions : comme son nom l indique ce menu nous permet de voir les utilisateurs qui se connectent sur le portail de supervision. Figure 35 : Menu Administration Sessions Elaboré par Mohamed DAOUES 49

50 Sous Menu Etat du serveur : cette vue nous permet d avoir un état de santé globale de notre serveur Centreon sans avoir à aller dans un terminal et taper des commandes linux. Figure 36 : Menu Server Status Sous Menu A propos de : dans cette section nous pouvons trouver des informations utiles concernant le projet Centreon. Figure 37 : Menu Administration About Elaboré par Mohamed DAOUES 50

51 2.2 Prise en main de l interface Dans cette partie nous allons exposer quelques exemples de configuration tel que l ajout ou la suppression d un hôte, d un groupe de hôtes, d un service ou même l ajout d une commande. Nous pourrons voir aussi le paramétrage d un compte utilisateur en lecture seule ainsi que la gestion des ACL. 2.2.1 Ajout d un hôte La configuration d un hôte peut être assez fastidieuse car elle comporte un grand nombre de paramètres à fixer. Cependant, il est fortement recommandé d utiliser les modèles pour les hôtes afin de faciliter le travail. Ces modèles permettent de définir les paramètres par défaut. De base, Centreon définit tout un ensemble de Templates, dans le cadre du projet, nous utilisons, pour le moment le Template «generic-host». Dans ce qui suit, nous précisons les paramètres essentiels pour configurer un hôte. Nom de l hôte : C est le nom qui va l identifier pour Nagios et Centreon Alias : Le «surnom» de l hôte. On peut aussi mettre des informations supplémentaires. Adresse IP/DNS : l adresse IP Surveillé depuis : Le collecteur qui va le superviser Modèle multiple de l hôte : Le Template attaché pour cet hôte. Une fois ces paramètres renseignés, il est possible d attacher, si nécessaire cet hôte à un ou des groupes. Il est aussi possible de définir une «généalogie» pour les hôtes : On définit des hôtes parents et /ou enfants. Cette notion permet de définir une cartographie des hôtes. Figure 38 : Ajout d'un hôte Elaboré par Mohamed DAOUES 51

52 2.2.2 Ajout d un groupe d hôtes Il est recommandé de regrouper les hôtes pour améliorer l affichage et la gestion des services dans Centreon. Par exemple, nous pouvons souhaiter regrouper les hôtes par type d OS, par environnements applicatifs, par type de matériels. Pour ajouter ou modifier un groupe d hôtes, il faut se rendre dans l onglet Configuration Hôtes Groupe d hôtes. Il suffit ensuite de compléter la page, en spécifiant le nom du groupe, son alias («surnom») et les membres de ce groupe. 2.2.3 Ajout d un service Une fois l hôte et la commande renseignés, nous allons pouvoir définir un service attaché au serveur supervisé. Pour ajouter ou modifier un service, il faut se rendre dans l onglet Configuration Services. Sur la page s affiche tous les services par hôte. Pour ajouter un service, il suffit donc de sélectionner Ajouter et de commencer la configuration. Comme pour les hôtes, il y a un grand nombre de paramètres à définir. Il est donc conseillé d utiliser les Templates pour faciliter la configuration du service. Par défaut nous utilisons le Template generic-service. Sur la page Configuration du service, nous allons renseigner les paramètres suivants : Description : C est le nom du service qui sera affiché dans la page de supervision Modèle de service : Le Template utilisé, par défaut nous prenons generic-service. Commande de vérification : c est ici que l on précise la commande à utiliser. Arguments : les arguments de la commande. Le format est!arg1!arg2!arg3! Contacts liés : les contacts à notifier Groupe de contacts liés : les groupes de contacts à notifier Figure 39 : Ajout d'un Service Elaboré par Mohamed DAOUES 52

53 2.2.4 Ajout d un groupe de services De la même manière que les hôtes nous pouvons aussi regrouper les services par groupes. Pour ajouter ou modifier un groupe de service il faut se rendre à l onglet Configuration Services Service groupes. Il suffit ensuite de compléter la page, en spécifiant le nom du groupe de service, son alias (surnom) et les hôtes de ce groupe. 2.2.5 Ajout d une commande Un service, dans Centreon (ou Nagios) définit une tâche «logique» à effectuer sur un hôte (contrôle d un serveur web, contrôle des données systèmes ). Le travail réel est effectué par le plugin (programme, script sur le collecteur ou en local sur l hôte, par exemple «check_http» pour le contrôle d un service web). Pour faire le lien entre le service et le plugin qui doit être lancé, il faut définir des commandes. Une commande correspond à l exécution du plugin en ligne de commande, avec les paramètres nécessaires. Pour ajouter ou modifier une commande, il faut se rendre dans l onglet Configuration Commands Checks. Sur la page s affiche toutes les commandes déjà connues et qu il est possible de modifier. Figure 40 : Vue Configuration/Commande Donc si nous souhaitons ajouter une commande, il suffit de cliquer sur ajouter. Et en ce qui concerne les paramètres pour la définition d une commande, ce sont les suivantes : Nom de la commande : c est le nom qui va être sélectionnable quand nous allons définir un service. Ligne de commande : c est ici que l on construit la commande qui va être lancée par Nagios. Centreon propose des menus déroulants afin de faciliter cette construction. o Le premier menu donne accès aux macros utilisateurs (par défaut la macro $USER1$ contient le chemin des plugins). o Le deuxième menu permet de sélectionner le plugin qui doit être utilisé. o Le troisième menu permet de sélectionner les macros disponibles dans Nagios (ex $HOSTADDRESS$). Elaboré par Mohamed DAOUES 53

54 Exemple d arguments : Ces deux cases permettent de tester une commande et de définir les valeurs par défaut lors de la définition d un service. Type de commande : nous laissons la valeur par défaut «vérification». Modèle de graphique : nous pouvons laisser ce champ vide ou utiliser un des modèles proposés. Figure 41 : Ajout d'une commande 2.2.6 Suppression d une commande, d un service, ou d un hôte : Dans cette partie nous allons voir comment supprimer un service, et ce qu il faut retenir, c est que nous pouvons le réitérer pour la suppression d un hôte ou bien d une commande. En effet pour supprimer un service, il suffira de le sélectionner et de choisir supprimer dans l onglet «plus d action». Figure 42 : Processus de suppression Elaboré par Mohamed DAOUES 54

55 2.2.7 Paramétrage d un compte utilisateur en lecture seule Au niveau de Centreon, nous avons la possibilité de créer plusieurs utilisateurs de consultation, et pour se faire nous devons paramétrer les comptes en mode lecture seule. Pour commencer nous devons créer un utilisateur, et pour cela il faut aller dans l onglet configuration utilisateurs Ajouter. Figure 43 : Ajout d'un utilisateur Ensuite, nous allons renseigner notre utilisateur comme ci-dessous : Nom complet : Mohamed Daoues Alias/login : M_DOS Email : M.daoues@hotmail.fr Autorisé à se connecter à l interface Web : Oui Mot de passe : Mdos Administrateur : Non Options de notifications d hôte : None Période de notifications d hôte : none Commande de notification d hôte : host-notify-by-email Options de notifications de service : None Période de notifications de service : none Commande de notification de service : service-notify-by-email Elaboré par Mohamed DAOUES 55

56 Une fois que notre compte a été crée, nous allons nous intéresser à ces droits. Pour cela, nous devons nous rendre à l onglet Administration ACL Gestion des groupes d accès Ajouter et créer un groupe d accès pour rattacher le nouveau compte que nous venons de créer. Figure 44 : Ajout d'un groupe d'accès 2.2.8 Gestion des ACL Il faut aller dans l onglet Administration >ACL > Gestion des accès aux menus > Ajouter Figure 45 : Ajout d'un accès aux menus Elaboré par Mohamed DAOUES 56

57 Il faut paramétrer l accès aux différentes vues comme ci-dessous : Figure 46 : Ajout d'une liste de contrôle Elaboré par Mohamed DAOUES 57

58 Conclusion : Le domaine de la supervision est un domaine important de l administration systèmes et réseaux. En constante évolution, les solutions libres de supervision ont prouvé qu elles avaient leur place dans la sphère professionnelle. Et comme nous l avons déjà explicité dans notre étude, la supervision est un des moyens indispensables pour favoriser la croissance de rendement d une entreprise. Le propos de ce projet de synthèse était de choisir une solution qui répandait aux besoins organisationnels et financiers de n importe quel l entreprise et il n y avait pas mieux pour combler ce besoin que Nagios. Nagios est un outil qui répond largement aux besoins de supervision des grandes comme des petites entreprises. Sa prise en main est complexe, mais une fois que les principes fondamentaux sont compris, nous découvrons un vaste potentiel de développement. En effet, L'association de Nagios et de Centreon a permis la constitution d'une solution de monitoring à la fois puissante et efficace. Centreon agit comme un intermédiaire entre l'administrateur et les fichiers de configuration de Nagios. Il enregistre dans une base de données les configurations effectuées par l'administrateur, puis il modifie les fichiers de configuration de Nagios en fonction du contenu de la base de données. Ce qui a permis de simplifier grandement le travail de l'administrateur, contrairement à l'utilisation de Nagios seul. A titre personnel, je tire un bilan positif de ce travail. Cela m'a permis de me familiariser avec l'administration système et réseau sous Linux, de découvrir un logiciel de supervision riche, et par chance mon stage d application vient s inscrire dans la continuité de cette étude, me permettant d approfondir ces points. Elaboré par Mohamed DAOUES 58

59 Annexes Annexe 1 : Script init ndo2db #!/bin/sh # # # chkconfig: 345 99 01 # description: Nagios to mysql # # Author : Gaëtan Lucas # Realase : 07/02/08 # Version : 0.1 b # File : ndo2db # Description: Starts and stops the Ndo2db daemon # used to provide network services status in a database. # status_ndo () { if ps -p $NdoPID > /dev/null 2>&1; then return 0 else return 1 fi } return 1 printstatus_ndo() { if status_ndo $1 $2; then echo "ndo (pid $NdoPID) is running..." else echo "ndo is not running" fi } killproc_ndo () { echo "kill $2 $NdoPID" kill $2 $NdoPID } pid_ndo () { if test! -f $NdoRunFile; then echo "No lock file found in $NdoRunFile" echo -n " checking runing process..." NdoPID=`ps h -C ndo2db -o pid` if [ -z "$NdoPID" ]; then echo " No ndo2db process found" exit 1 else echo " found process pid: $NdoPID" fi fi echo -n " reinit $NdoRunFile..." touch $NdoRunFile chown $NdoUser:$NdoGroup $NdoRunFile echo "$NdoPID" > $NdoRunFile echo " done" } NdoPID=`head $NdoRunFile` Elaboré par Mohamed DAOUES 59

60 # Source function library # Solaris doesn't have an rc.d directory, so do a test first if [ -f /etc/rc.d/init.d/functions ]; then. /etc/rc.d/init.d/functions elif [ -f /etc/init.d/functions ]; then. /etc/init.d/functions fi prefix=/usr/local/nagios exec_prefix=${prefix} NdoBin=${exec_prefix}/bin/ndo2db NdoCfgFile=${prefix}/etc/ndo2db.cfg NdoRunFile=${prefix}/var/ndo2db.run NdoLockDir=/var/lock/subsys NdoLockFile=ndo2db.lock NdoUser=nagios NdoGroup=nagcmd # Check that ndo exists. if [! -f $NdoBin ]; then echo "Executable file $NdoBin not found. Exiting." exit 1 fi # Check that ndo.cfg exists. if [! -f $NdoCfgFile ]; then echo "Configuration file $NdoCfgFile not found. Exiting." exit 1 fi # See how we were called. case "$1" in start) echo -n "Starting ndo:" touch $NdoRunFile chown $NdoUser:$NdoGroup $NdoRunFile $NdoBin -c $NdoCfgFile if [ -d $NdoLockDir ]; then touch $NdoLockDir/$NdoLockFile; fi ps h -C ndo2db -o pid > $NdoRunFile if [ $? -eq 0 ]; then echo " done." exit 0 else echo " failed." $0 stop exit 1 fi ;; stop) echo -n "Stopping ndo: " pid_ndo killproc_ndo Elaboré par Mohamed DAOUES 60

61 # now we have to wait for ndo to exit and remove its # own NdoRunFile, otherwise a following "start" could # happen, and then the exiting ndo will remove the # new NdoRunFile, allowing multiple ndo daemons # to (sooner or later) run #echo -n 'Waiting for ndo to exit.' for i in 1 2 3 4 5 6 7 8 9 10 ; do if status_ndo > /dev/null; then echo -n '.' sleep 1 else break fi done if status_ndo > /dev/null; then echo echo 'Warning - ndo did not exit in a timely manner' else echo 'done.' fi rm -f $NdoRunFile $NdoLockDir/$NdoLockFile ;; status) pid_ndo printstatus_ndo ndo ;; restart) $0 stop $0 start ;; *) echo "Usage: ndo {start stop restart status}" exit 1 ;; esac # End of this script Elaboré par Mohamed DAOUES 61

62 Annexe 2 : capture d écrans de l interface graphique de nagios Elaboré par Mohamed DAOUES 62

63 Elaboré par Mohamed DAOUES 63

64 Elaboré par Mohamed DAOUES 64

65 Elaboré par Mohamed DAOUES 65

66 Elaboré par Mohamed DAOUES 66

67 Elaboré par Mohamed DAOUES 67

68 Elaboré par Mohamed DAOUES 68

69 Elaboré par Mohamed DAOUES 69

70 Elaboré par Mohamed DAOUES 70

71 Elaboré par Mohamed DAOUES 71

72 Annexe 3 : Aperçu des notifications reçus lors des simulations d arrêt de quelques Hôtes Elaboré par Mohamed DAOUES 72