Article a12
-
Upload
66394mh2011 -
Category
Documents
-
view
286 -
download
0
Transcript of Article a12
Nagios : Outil de supervision
Extrait du Technicien reseau - e-cv
http://tec-rt.net/spip.php?article12
Licence Pro Réseaux et Télécommunications
Nagios : Outil de supervision- Articles - Projets dans le cadre de ma formation initiale -
Date de mise en ligne : mardi 17 février 2009
Technicien reseau - e-cv
Copyright © Technicien reseau - e-cv Page 1/97
Nagios : Outil de supervision
Introduction
Introduction à la supervision d'un réseauQu'est-ce que la supervision réseaux ?
La supervision réseaux consiste à surveiller ces derniers, c'est-à-dire regarder les éléments constituant un réseau(routeurs, switches, ordinateurs, etc.), ainsi que divers services réseaux (SMTP, HTTP, ping, etc.). La surveillance deséléments est le fait de connaitre les états des différents éléments qui composent un réseau informatique selonplusieurs critères (charge CPU, mémoire disponible, etc.). Ces logiciels surveillent le réseau en utilisant plusieursprotocoles (SNMP, ping, etc.), et affichent les états des éléments de plusieurs façons possibles. Ces outils permettentaux administrateurs réseaux de mieux gérer ces derniers et être plus réactifs lorsque des problèmes surviennent. Lasupervision s'effectue à l'aide d'un outil de supervision que l'on installe sur un (ou plusieurs) poste(s) relié(s) auréseau que l'on souhaite superviser.
ProblématiqueLa supervision de réseau nécessite des outils adaptés aux différents composants du réseau. Le parc est souvent dotéde machines sous Linux et Windows. Nous devons donc trouver, comme tout bon produit de supervision, un produitcapable de superviser l'ensemble des équipements provenant de différents constructeurs et ayant des modes degestion hétérogènes. Il s'agit alors de trouver un produit reposant sur un protocole ou un environnement normalisé afinde pouvoir servir de point d'entrée unique pour regrouper toutes les informations du réseau.
Introduction à NagiosNagios est un logiciel libre de supervision, compatible avec des machines Linux et Windows. Nagios possède denombreuses fonctionnalités, qui seront développées plus tard dans cette étude. Ces principales fonctionnalités sont :
Surveillance des services réseaux (SMTP, POP3, http, PING, etc.) ;
Surveillances des ressources des stations du réseau (serveurs, routeurs, PC, ...) comme, par exemple, la chargedu processeur, des informations sur l'utilisation des disques durs et les processus en cours ;
Surveillance des données environnementales (la température..) ;
Possibilité de définir des groupes de contacts à joindre en cas d'apparition de problèmes via différents médiums (lecourrier électronique, les messages instantanés) ;
Modifications à la volée du comportement de la surveillance et du retour d'informations à travers l'utilisation degestionnaires d'événements, d'une interface web et d'applications tierces ;
Conservation de l'historique de l'état du réseau même après un redémarrage à froid.
Copyright © Technicien reseau - e-cv Page 2/97
Nagios : Outil de supervision
SNMP
HistoriqueLe prédécesseur de ce protocole était le SGMP (Simple Gateway Monitoring Protocol) qui fonctionnait sur le port UDPn°153, défini dans la RFC 1028. Le lancement du SNMP s'est fait en 1988 par l'Internet Engineering Task Force,défini dans la RFC 1157. Trois versions sont sorties depuis.
Version 1 (1990) : Les messages sont transmis en clair, c'est la version basique du protocole ;
Version 2 (1996) : Quelques améliorations ont été apportés au protocole, c'est une extension ;
Version 3 (2002) : La couche Sécurité a été implémentée sur cette version avec du cryptage notamment.
Modèle OSILe protocole SNMP se situe au niveau des couches applicatives. Il utilise le protocole de transport UDP. Les ports quisont utilisés :
161 coté server ;
162 coté client.
Copyright © Technicien reseau - e-cv Page 3/97
Nagios : Outil de supervision
Quels sont les usages ? Administrer les équipements du réseau, en modifiant les paramètres.
Surveiller leurs comportements, en récupérant des informations.
Remonter des alertes ;
Cartographie du réseau ;
Composantes
Copyright © Technicien reseau - e-cv Page 4/97
Nagios : Outil de supervision
Client d'administration : C'est la station qui interroge le serveur SNMP.
Serveur SNMP : Il sert à la collecte les informations et les alertes et fourni les services SNMP.
Il dispose d'une base de données appelée Management Information Base.
Agent : Il est présent sur la plupart des interfaces réseau (Serveur, Routeur, Commutateur, ...).
Sécurité Version 1 : Les messages SNMP sont diffusés en clair sur le réseau, il n'y pas de sécurité.
Version 2 : Introduction des ACL (Listes de Contrôles d'Accès), la sécurité a été pensée mais pas très efficace.
Version 3 : Les messages SNMP sont désormais cryptés, la sécurité est accrue.
Copyright © Technicien reseau - e-cv Page 5/97
Nagios : Outil de supervision
Authentification (DES et clé secrète) Confidentialité des données Contrôle d'accès par la MIB
Format des trames SNMP
CiscoPour activer l'agent SNMP sur les routeurs Cisco, il faut se mettre en "Mode de configuration globale", voici lescommandes :
Routeur(config)#snmp enable //active le protocole SNMP
Routeur(config)#snmp enable traps //active la capture des requêtes SNMP
Routeur(config)#snmp-server //active une MIB
Linux DebianPour ajouter un agent sur la distribution Debian de Linux, il faut installer le paquet net-snmp. Les fichiers deconfiguration installés par ce paquet sont :
snmpd.conf // Fichier de configuration principal
Copyright © Technicien reseau - e-cv Page 6/97
Nagios : Outil de supervision
snmptrapd.conf // Fichier de configuration de la capture des données SNMP Choix de la distribution
Choix du système d'exploitationPour pourvoir installer Nagios sur un ordinateur, il faut au préalable installer un système d'exploitation sur cettemachine.
Pour le choix de l'OS, on prend Linux. En effet, Nagios est seulement compatible avec ce système d'exploitation.
Parmi les différentes distributions Linux, on ne retient que les principales : Debian, Ubuntu, Mandriva, Fedora,Red-Hat et SuSE. On sélectionne ces distributions car ce sont les distributions qui ont une documentation disponibleassez importante.
Comparatif des différentes distributions Nom Avantages Inconvénients
Debian Stable, gratuit
Ubuntu Gratuit, simple d'utilisation Instable
Mandriva Gratuit, simple d'utilisation Instable
Fedora Gratuit, stable Gestion des paquets
Red-Hat Payant
SuSE Payant
On souhaite prendre une distribution gratuite et stable. Pour cela, on restreint notre choix à 2 distributions : Debian etFedora. Entre les 2 distributions, on choisit Debian. En effet, cette distribution permet une meilleure gestion despaquets.
Choix du type de sauvegarde des donnéesPour pouvoir analyser les résultats de Nagios, nous devons sauvegarder les données récoltés par Nagios. Nousavons la possibilité entre 2 types de sauvegarde : par fichier texte ou par base de données.
Voici un comparatif entre les 2 types de sauvegardes Fichiers texte Base de données
Sauvegarde Dans des fichiers texte Dans une/des base(s) de données
Restauration Possible Possible
Copyright © Technicien reseau - e-cv Page 7/97
Nagios : Outil de supervision
Exportation Pas possible Possible
Lecture Seulement avec Nagios Possible avec tous les logiciels de base de données externe
Installation A installer (nagios-text) A installer (nagios-mysql)
Recherche Par lecture des logs Par requête
Avantages Simplicité d'utilisation Exportation possible Lecture possible avec tous les logiciels de base de données Recherche rapide (via
requêtes)
Inconvénient
s
Recherche lente Exportation impossible Lecture uniquement avec
Nagios
Necessite la connaissance d'un langage de base de données
D'après la comparaison précédente, nous pouvons voir que les bases de données permettent une meilleure gestiondes données que par les fichiers texte, mais demande une connaissance d'un language de base de données (comme,par exemple, ls SQL).
Pour le type de base de données à utiliser, nous avons retenu les 2 systèmes de gestion de base de données lesplus couramment utilisés, à savoir MySQL et PostgreSQL. Le système MySQL est plus performent que PostgreSQLpour gérer les petites bases de données, alors que PostgreSQL est plus performant que MySQL concernant lesgrandes bases de données. Comparatif des différentes solutions
Introduction : panorama des solutionsexistantesDe nombreuses plateformes de supervision existent aujourd'hui. Certaines se contentent de connaître à tout instantl'état des noeuds du réseau, d'autres permettent également de connaître l'état des services sur ces noeuds, lesderniers offrent la possibilité de ressortir de nombreuses statistiques du réseau permettant une analyse assez fine.
Les offres éditeurs
Depuis quelques années, conscient que la supervision est un marché porteur, les sociétés n'hésitent plus à investirdans un produit leur permettant de surveiller et mieux gérer leurs réseaux. Les éditeurs se sont alors lancés dans lacourse aux produits de supervision ; deux familles apparaissent, celle proposant des solutions généralistessupervisant le réseau, les serveurs, les applications, les sites web, etc. C'est le cas de Patrol ou Mainview (BMC),d'Unicenter (Computer Associate), de la gamme openview (HP), de Tivoli (IBM), de BigBrother ? pour ne citer que lesplus connus. L'autre famille supervise des domaines plus spécifiques comme Panorama (Altaworks) qui gèreuniquement l'aspect sécurité ou PathWAI (Candle) qui se penche principalement sur la supervision des applications.Toutes ces solutions ont en plus de spécificités les distinguant les unes des autres, un point commun : un prix élevé. Ilfaut compter près de 30 Keuros pour superviser un système d'information pour une entreprise de taille moyenne. Cechiffre ne tient pas compte des formations du personnel travaillant avec ces solutions souvent complexes d'utilisation !
Les offres libres
Copyright © Technicien reseau - e-cv Page 8/97
Nagios : Outil de supervision
Il existe des solutions de supervision libres qui sont professionnelles. Parmi les plus répandus, reconnus du momentnous pouvons citer Nagios (le successeur de Netsaint), Zabbix, Munin, openNMS. De ceux cités, Nagios est sanscontexte le plus répandu et le plus suivi par la communauté des développeurs.
Comparatif des offres
Comparatif
NAGIOS Surveillance des services réseau (SMTP, POP, http, Ping, SNMP, ...)
Surveillance des ressources des serveurs (mémoire, disques, I/O, CPU, ...)
Surveillance des files d'attente d'impression
Système simple de plugins permettant de développer facilement les vérifications et
les analyses propres à vos matériels, services et applications
Notification des administrateurs quand un seuil d'alerte a été franchi (paramétrable)
Possibilité de répartir la supervision entre plusieurs administrateurs
Possibilité de définir des gestionnaires d'évènements qui s'exécutent pour une résolution proactive des problèmes
Journal avec rotation automatique des fichiers pour un historique des évènements
Surveillance à partir d'un poste de travail avec un navigateur Web.
Par un accès sécurisé l'administrateur peut assurer le pilotage à distance via un VPN
Définition des tranches horaires pour la surveillance
Définition des procédures d'alerte et d'escalade
Edition de rapports pour analyse
Logiciel libre
Copyright © Technicien reseau - e-cv Page 9/97
Nagios : Outil de supervision
Maturité et pérennité
Richesse des plugins
Souplesse
Prix Faible coût en ressources matérielles
CACTICacti est un outil de création de graphiques reposant sur une interface web basée sur PHP et MySQL et qui utilise lemoteur RRDTool pour collecter les statistiques.
La force de Cacti provient du fait qu'il peut être aisément installé et utilisé. Sur le forum de Cacti, il est possible departager ses modèles (templates) avec d'autres utilisateurs et ainsi de vous faire gagner du temps. Il est égalementpossible d'ajouter des "plugins" à Cacti pour pouvoir intégrer d'autres outils gratuits comme ntop.
L'énorme avantage de Cacti est de fonctionner à base de modèles (de données, de graphes, de façons de récupérerdes données) ce qui permet de grapher très vite pas mal de serveurs. Il gère nativement le SNMP, mais rienn'empêche d'utiliser des scripts shell, perl, vbs, etc.
Cacti stocke les informations nécessaires à la création de graphiques basés sur des spécifications définies parl'utilisateur et alimente ces graphiques de données depuis une base de données MySQL. Cacti est entièrement dirigépar un préprocesseur d'hypertexte PHP. Etant donné qu'il possède plusieurs méthodes d'acquisition de données,Cacti peut contrôler presque n'importe quel dispositif en réseau et fournir un aperçu des charges réseau/serveur surn'importe quelle période de temps. Cacti utilise le protocole SNMP pour collecter des données et permet aussi lacréation de scripts personnalisés pour recueillir les données indisponibles via SNMP. Un grand nombre de scripts estdisponible pour toutes sortes de systèmes.
A première vue, Cacti semble être le logiciel de monitoring réseau parfait, le rendu graphique est vendeur, l'installationet la prise en main est simple. Les principaux reproches concernent la configuration des graphiques personnaliséstrop complexes. Effectivement,après avoir configuré les graphiques basiques ( utilisation processeur, mémoire, disqueetc... ), il est très difficile d'ajouter ses propres graphiques. Cette partie du logiciel est bien trop complexe, les nombresd'extensions disponibles sont trop faibles et il faut par conséquent passer beaucoup de temps sur la personnalisationdes graphiques.
Tout comme Cacti, Munin est une application de monitoring. Cependant, Munin est extrémement simple à configureret facilement personnalisable.
MUNINMunin est un outil de surveillance basé sur le célèbre RRDTool, permettant de connaître toutes les données systèmesdes autres ordinateurs du réseau. Il les présente automatiquement sous forme de graphiques consultables depuis une
Copyright © Technicien reseau - e-cv Page 10/97
Nagios : Outil de supervision
page web. Par ailleurs, il dispose d'un système de plugins qui le rend simple d'utilisation et très modulaire. Il estdisponible sous debian.
Il m'a semblé être le plus simple d'utilisation tout en conservant de fortes possibilités d'adaptation.
Un système Munin est composé de :
un serveur principal, récupérant les informations
un noeud par équipement à surveiller
Pour développer un nouveau plugin, on doit faire un programme
Fonctionnalités :
Simplicité
Interface web de consutation
Architecture client/serveur
Support de RRDTool, pour la génération de graphique
Très nombreux plugins disponible
Envoi d'alertes vers Nagios
Support du protocole SNM
Détection automatique des services présents sur la machine
Munin est un outil de monitorage qui vous permettra de suivre l'état de vos serveurs simplement depuis une pageHTML.
Munin fonctionne avec de nombreux plugins, il vous permettra de suivre la charge réseau, disque, processeur, basede données, ... Le système de plugin permet un nombre phénoménal d'extensions à Munin. Un plugin est un petitscript écrit dans le language que l'on veut (bash, perl, etc) qui renvoie juste les valeurs que l'on souhaite tracer.
Munin fonctionne sur le modèle client-serveur. Un petit démon tourne sur chacune des machines devant êtresurveillée (munin-node). Ce démon fournit les informations brutes concernant la machine dès que le grapheur (munin)lui les demande. Il a un fonctionnement client/serveur, le serveur s'occupe de tracer les graphiques et de les mettre àdisposition à travers une interface web, et les clients s'occupent de collecter les données sur la machine hôte. On peutdonc avoir plusieurs machines dans la même interface web.
Copyright © Technicien reseau - e-cv Page 11/97
Nagios : Outil de supervision
Il permet de générer une série de graphes à partir des informations reçues par les autres machines : utilisation de lamémoire vive, load average, usage CPU, réseau,...
ZABBIX
récupération des données
disponible sur de nombreuses plateformes,
informations plus facilement accessibles que par SNMP
(occupation des disques, occupation mémoire, présence d'un service),
extensible à l'aide de scripts disponible en mode pull ou en mode
Zabbix peut effectuer des connexions TCP ou pinguer des hôtes,
possibilité d'envoyer des trap vers Zabbix à l'aide de scripts
Une solution complète
Zabbix dispose de nombreuses autres fonctionnalités :
ajout d'hôtes par lot,
utilisation de templates,
gestion des utilisateurs,
paramétrage fin de la fréquence des vérifications,
personnalisation des alertes,
création de groupes d'utilisateurs et de groupes d'hôtes,
Architecture
Copyright © Technicien reseau - e-cv Page 12/97
Nagios : Outil de supervision
Zabbix est découpé en plusieurs composants :
Un moteur en C se chargeant de collecter les données et de générer les alertes
Une base de données permet le stockage des données et des réglages
L'interface Web est écrite en PHP et permet l'administration
(ajout d'un hôte, création d'un graphique, définition des alertes) et la consultation des données
Chaque composant peut être placé sur une machine séparée et placé en cluster ou en redondance
Zabbix est un nouveau venu dans le monde de la supervision qui se démarque d'abord par son administrationeffectuée entièrement à travers l'interface Web.
Zabbix est capable de gérer le monitoring et d'envoyer des alertes, mais il permet aussi de générer des graphiquestrès sympathiques, en croisant toutes les valeurs qui nous intéressent. Son véritable plus est la génération de graphsà la demande.
Zabbix est un logiciel libre concurrent direct de Nagios, de conception plus moderne, plus facile à paramétrer et avecdes fonctionnalités avancée. Zbx-multicheck a été développé pour simplifier l'écriture et l'intégration de scripts et outilsde check personnalisés dans Zabbix. zbx-multicheck est une extension logiciel de supervision Zabbix, qui simplifiel'intégration d'outils de vérification externes.
Toute la configuration des services, hôtes à suivre se fait par l'intermédiaire d'une interface graphique et de manièretrès simple (sans obligation de redémarrer le service lorsque l'on ajoute une machine). Il est possible de lui ajouter desplugins très facilement.
La principale différence aec nagios est que Zabbix intégre RRDtool pour le rendu graphique.
Nagios étant plutôt destiné à un état "temps réel" des services, il faut le coupler à Cacti, Munin ou oreon pour obtenirun résultat équivalent.
Zabbix est donc une solution "tout-en-un".
Solution sélectionnée : Nagios
Pourquoi Nagios ?
C'est une solution libre
Copyright © Technicien reseau - e-cv Page 13/97
Nagios : Outil de supervision
Des solutions citées ci-dessus, HPopenview, BigBrother ? et Nagios sont les plus connues. BigBrother ? est unsuperviseur de service fonctionnant sous windows NT. C'est une solution efficace mais qui ne permet de superviserqu'un nombre restreint de services. De plus, il n'est pas possible de rajouter des fonctionnalités ou de générer desalarmes par mail. HPopenview est une solution modulaire très complète qui permet de cartographier automatiquementet dynamiquement le réseau, de collecter des informations de supervision, de les mettre en correspondance,d'envoyer des alarmes, de générer des comptes rendus graphiques...mais c'est également une solution payante, doncécartée de nos choix.
C'est une solution stable qui a fait ses preuves
Parmi les solutions libres, Zabbix et le projet Oréon ont été mis en concurrence pour notre choix avec le « célèbre »Nagios. Ce dernier est en effet réputé pour sa configuration fastidieuse mais également pour le fait qu'il soit tout aussicomplet que la solution HPopenview. Le projet Oréon3 est une couche au dessus de Nagios regroupant une interfacede configuration web, une détection automatique du réseau et quelques fonctionnalités supplémentaires devantsimplifier Nagios. Nous n'avons pas jugé le projet assez avancé pour la sélectionner comme solution stable. De plus,nous avons pensé que mettre en oeuvre Nagios nous permettrait de mieux comprendre ce qui ce passe derrièreOréon. Enfin, Zabbix, désigné comme un potentiel concurrent à Nagios a été écarté pour l'orientation douteuse queprend le projet : l'auteur, bien que présentant son projet comme libre, ne veut pas que des développeurs touchent àson code, ce qui risque d'engendrer assez vite des clones de l'application rendant un support plus difficile. Nagios eststable, dispose d'une grande communauté de développeurs derrière elle et est utilisée par un grand nombre defournisseurs d'accès ou de grands noms comme Air France, le CNRS4 (taille de l'organisation : 26000 machines),l'IFSIC5 (2500 machines) ou encore le modeste Ministère de l'Education Nationale (130 000 machines).
Nagios est l'outil de monitoring le mieux documenté !
Tableau récapitulatif des avantages etinconvénients des solutions existantes
Sous licence GNU GPL
Nagios ; Big Brother ; OpenNMS ; Zabbix ; Cacti Leurs avantages Leurs inconvenients
Faible coût d'acquisition Support difficile
Développements additionnels peu coûteux et riches Périmètres techniques et fonctionnels encore limités
Respect des standards
Indépendance des fournisseurs
Sous licence commerciale
Copyright © Technicien reseau - e-cv Page 14/97
Nagios : Outil de supervision
HP OpenView ; Unicenter ; Tivoli d'IBM ; Patrol de BMS Software ; Nessus ; IBM NetView ; Sun Net Manager ; BigBrother ; Mercury Leurs avantages Leurs inconvenients
Solutions globales et éprouvés Coût d'acquisition et de support
Périmètres techniques et fonctionnels étendus Incompatibilités entre fournisseur à choix d'un fournisseur unique
Support Développement additionnel restreint et coûteux
Indépendance des fournisseurs
Indépendance des fournisseurs
Alertes
EtatsNagios génère des alertes en fonction de l'état des matériels et services supervisés. Pour cela, il existe 4 types d'étatsdes matériels. Voici les 4 types d'états possibles sur Nagios :
OK : tout va bien.
WARNING : le seuil d'alerte est dépassé.
CRITICAL : le service a un problème.
UNKNOWN : impossible de connaître l'état du service.
Les types d'alertes sont définis par des seuils (comme, par exemple, le pourcentage de disque utilisés ou le taux decharge d'un équipement). Les différents types de seuil sont définis dans les fichiers de configurations des plugins.Lorsqu'un équipement ou un service change d'état, une alerte est générée.
Différentes alertesLes alertes (ou notification) Nagios peuvent être envoyés de différentes façons.
Voici les différents types d'alertes possibles Types d'alertes Définition
Visuelle Un message apparaît sur la machine équipée de Nagios. Chaque message apparaît avec un fond en couleur, qui change en fonction du type d'alerte.
Sonore Un son est émis sur la machine où est installé Nagios. Il existe divers son, un son par types d'alertes.
Par e-mail Un e-mail contenant le type de l'alerte est envoyé. Il est envoyé à chaque alerte et/ou à un intervalle de temps définis.
Copyright © Technicien reseau - e-cv Page 15/97
Nagios : Outil de supervision
Par SMS Un SMS contenant le type de notification est envoyé à un/des téléphone(s) portables.
Par messagerie instantanée Un message est envoyé à un/des poste(s) équipé par une messagerie instantanée (Jabber, MSN Messenger, ...).
Exemples de configuration d'alertes
Alerte par e-mail
Pour que Nagios puisse envoyer des alertes mail par SMTP, il faut installer un serveur mail sur la machine où estinstallé Nagios. Nous avons choisi d'utiliser Postfix comme serveur mail. Pour recevoir les mails d'alertes, il fautinstaller sur un ordinateur un client de messagerie standard (par exemple Thunderbird) et le paquet qpopper quipermet de recevoir les mails par pop.
Installation de Postfix :
apt-get install postfix qpopper courier-base courier-authdaemon courier-imap
La configuration de postfix se fait dans le fichier /etc/postfix/main.cg :
gedit /etc/postfix/main.cf
Configuration de Postfix :
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
Copyright © Technicien reseau - e-cv Page 16/97
Nagios : Outil de supervision
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
#Répertoire postfix
queue_directory = /var/spool/postfix
program_directory = /usr/bin
daemon_directory = /usr/lib/postfix
#Paramètres SMTP
myhostname = localhost
mydomain = iut.gtr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost, $mydomain, localhost.$mydomain
#Si l'on souhaite mettre un relais smtp
#relayhost =
mynetworks = 10.26.0.0/16, 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
mail_owner = postfix
myorigin = $mydomain
Alerte par SMS
Il existe 3 types de manières pour envoyer une alerte par SMS. Dans les 3 méthodes, il faut avoir un téléphoneportable qui peut lire les SMS avec un abonnement téléphonique
Copyright © Technicien reseau - e-cv Page 17/97
Nagios : Outil de supervision
Première méthode
Pour la première méthode, il faut envoyer l'alerte par mail à cette adresse : 06XXXXXXXX@opérateur-téléphonique.fr,où 06XXXXXXXX est le numéro du téléphone portable qu'il faut joindre. Un fois le mail reçus, l'opérateur envoi l'alerteau téléphone portable par SMS. La configuration de cette méthode est la même pour l'envoie d'alerte par mail. Cetteméthode n'est pas rapide (plusieurs minutes pour que l'alerte soit reçus par le téléphone portable).
Deuxième méthode
La deuxième méthode consiste à relier sur l'ordinateur qui surveille le réseau un modem gsm ou un téléphoneportable équipé d'un modem par port série ou infrarouge. Le modem gsm ou le téléphone portable envoie directementles alertes par SMS. Pour que l'ordinateur communique avec l'élément qui envoie le SMS, il faut installer un utilitaire(comme, par exemple, gnokii). Cette méthode coûte cher (achat du modem, et nécessité d'avoir deux abonnements(celui du modem et celui du téléphone portable qui recevra le SMS).
Troisième méthode
La troisième méthode consiste à passer par une passerelle GSM. On envoie les données que l'on souhaitetransmettre à une passerelle GSM qui les renvoie à un mobile (que l'on a préalablement défini) par SMS. Il existedifférents moyens pour transmettre de données à une passerelle GMS :
Par email : même principe que la première méthode.
Par requête http: idéal pour les applications en ligne, site Web, et parfait pour les systèmes de monitoring.
Par fichier CSV : les données sont enregistrées dans des fichiers au format CSV. Les fichiers CSC sont envoyés àune adresse email puis transmissent par SMS au mobile souhaité.
Cette méthode à 2 inconvénients :
il faut payer pour chaque SMS effectué
cette méthode est assez longue.
Copyright © Technicien reseau - e-cv Page 18/97
Nagios : Outil de supervision
Installation SOFT VERSION
Linux Debian 4.0_R1 Etch Noyau : 2.6.18-5-686
Apache 2.2.3.4
Php 5.2.0.8
Nagios 2.10
Nagios Plugins Essentiels 1.4.10
MIB Plugin 1.0.0
NRPE Plugin 2.10
NSCA Plugin 2.7.2
Munin 1.2.5-1
Oreon 1.4
SNMP 5.2.3-7
Installation de debianInstaller Debian avec l'option serveur Web ce qui installera automatiquement apache2 et php5.
Installation de NagiosPré-requis
Passer en root
sudo root
Installation des compilateurs
apt-get install make gcc g++
Ajout de l'utilisateur nagios
Copyright © Technicien reseau - e-cv Page 19/97
Nagios : Outil de supervision
adduser nagios
Copyright © Technicien reseau - e-cv Page 20/97
Nagios : Outil de supervision
mot de passe choisi : nagios
Copyright © Technicien reseau - e-cv Page 21/97
Nagios : Outil de supervision
Identifier l'utilisateur Apache
grep "^User" /etc/apache2/apache2.conf
Ajout de l'utilisateur "nagios" dans Apache
usermod -G nagios nagios
usermod -G www-data,nagios www-data
Création du répertoire d'installation
mkdir /usr/local/nagios
Changer le propriétaire du répertoire d'installation par l'utilisateur nagios
chown -R nagios:nagios /usr/local/nagios
Installation des libraries indispensables
apt-get install libjpeg62-dev libgd-tools
Installation de GD-utils
Télécharger gd-2.0.33.tar.tar
tar -zxvf gd-2.0.33.tar.tar
cd gd-2.0.33
./configure
make && make install
Installation de Nagios
Copyright © Technicien reseau - e-cv Page 22/97
Nagios : Outil de supervision
Télécharger le package nagios 2.10
tar xzf nagios-2.10.tar.gz
cd nagios-2.10/
Lancer le script de configuration
./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/
--with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagios
Compilation et installation
make all
make install
Installation du service (démon)
make install-init
Installation des scripts et des droits pour l'éxécution de commandes externes
make install-commandmode
Installation des fichiers de configuration (fichiers par défaut)
make install-config
Aller dans le répertoire Nagios
cd /usr/local/nagios
Copyright © Technicien reseau - e-cv Page 23/97
Nagios : Outil de supervision
Création des fichiers de config principaux (rempli ici par des exemples)
cd /usr/local/nagios/etc/
mv cgi.cfg-sample cgi.cfg
mv localhost.cfg-sample localhost.cfg
mv resource.cfg-sample resource.cfg
mv commands.cfg-sample commands.cfg
mv nagios.cfg-sample nagios.cfg
Installation du package NagiosPlugin, pack de plugin officiels et essentiels
télécharger nagios-plugins-1.4.10.tar.tar tar -zxvf nagios-plugins-1.4.10.tar.tar cd nagios-plugins-1.4.10/ ./configuremake && make install
Automatiser le démarrage du sevice nagios
update-rc.d nagios defaults
Configurer le serveur Web
gedit /etc/apache2/sites-enabled/nagios
copier coller le texte suivant
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user Alias /nagios /usr/local/nagios/share Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Copyright © Technicien reseau - e-cv Page 24/97
Nagios : Outil de supervision
Redémarrage du service apache
/etc/init.d/apache2 restart
Création du mot de passe pour l'accès au site
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Forcer les CGI a utiliser l'authentification
gedit /usr/local/nagios/etc/cgi.cfg
et vérifier la ligne : use_authentication=1 . Il faut qu'elle soit à 1 et donner les droits d'administration à l'utilisateurnagiosadmin en déconnectant les lignes souhaitées. Donner les droits maximum.
Accéder au site
http://localhost/nagios
Lancer le service Nagios manuellement
/etc/init.d/nagios start
Finitions
Vérifier la configuration de nagios après chaque modification des fichiers de configuration
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si Absence fichier statusmap.cgi (MAP 2D ne fonctionne pas)
Copyright © Technicien reseau - e-cv Page 25/97
Nagios : Outil de supervision
apt-get install libgd-dev
Copyright © Technicien reseau - e-cv Page 26/97
Nagios : Outil de supervision
Dans un dossier où nagios est décompressé, faire
cd /tmp/nagios-2.10
make devclean
./configure --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
make cgis
cd cgi
cp *.cgi /usr/local/nagios/sbin
Installation du plugin VRML (Map 3D)
télécharger et installer le paquet : openvrml-lookat puis
apt-get install lesstif2
télécharger : freewrl_1.18.2-1_i386.deb puis
sudo dpkg -i freewrl_1.18.2-1_i386.deb
Installation de SNMP Pour faire fonctionner le check-SNMP pour nagios
apt-get install snmp snmpd
SNMP pour Debian
apt-get install nmap librrds-perl libgd-gd2-perl libnet-snmp-perl
tar xvf nagios-snmp-plugins.1.1.tgz
cd nagios_plugins
./install.sh
Configuration SNMP
Copyright © Technicien reseau - e-cv Page 27/97
Nagios : Outil de supervision
nano /etc/snmp/snmpd.conf
Copyright © Technicien reseau - e-cv Page 28/97
Nagios : Outil de supervision
commenter la ligne « com2sec paranoid default public » en rajoutant un « # » supprimer le « # » de la ligne « com2secreadonly default public ».
Installation SNMP sous Windows
Le CD de Windows vous sera peut-être demandé.
Panneau de config
Ajout de composant
Outil de gestion et d'analyse
Cocher SNMP
Configuration dans Services -> SNMP
Installation de NRPE pré-requis
apt-get install libwww-ssl0 libwww-ssl-dev
Télécharger le package NRPE
tar -zxvf nrpe-2.10.tar.gz
Installation
cd nrpe-2.10
./configure
make all
cp ./src/nrpe /usr/local/nagios/bin
cp ./src/check_nrpe /usr/local/nagios/bin
cp ./sample-config/nrpe.cfg /usr/local/nagios/etc
Ajouter NRPE comme un service
gedit /etc/services
Copyright © Technicien reseau - e-cv Page 29/97
Nagios : Outil de supervision
et ajouter la ligne suivante
nrpe 5666/tcp # nrpe, nagios monitoring service
redémarrer nagios
/etc/init.d/nagios reload
Installation de NSCA
Télécharger le package nsca-2.7.2.tar.tar
tar xzf nsca-2.7.2.tar.tar
cd nsca-2.7.2
./configure
make all
cp $DOWNLOADPATH$/src/nsca /usr/local/nagios/bin
cp $DOWNLOADPATH$/sample-config/nsca.cfg /usr/local/nagios/etc
chown nagios:nagios /usr/local/nagios/etc/nsca.cfg
chmod g+r /usr/local/nagios/etc/nsca.cfg
Configurer le service par le fichier de configuration nsca.cfg
Exécuter NSCA
/usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg
Ajouter NSCA comme un service
gedit /etc/services
et ajouter la ligne suivante
nsca 5667/tcp # NSCA
Copyright © Technicien reseau - e-cv Page 30/97
Nagios : Outil de supervision
Installation & configuration de POSTFIXAfin de permettre à Nagios d'envoyer les alertes mail par SMTP, nous avons choisis d'installer Postfix. Pour laréception des mails sur un client de messagerie standard, nous avons besoin du paquet qpopper qui permet derecevoir les mail par pop.
Installation
apt-get install postfix qpopper courier-base courier-authdaemon courier-imap
Configuration SMTP postfix
gedit /etc/postfix/main.cf
/etc/postfix/main.cf :
Copyright © Technicien reseau - e-cv Page 31/97
Nagios : Outil de supervision
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
#Répertoire postfix
queue_directory = /var/spool/postfix
program_directory = /usr/bin
daemon_directory = /usr/lib/postfix
#Paramètres SMTP
myhostname = localhost
mydomain = iut.gtr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost, $mydomain, localhost.$mydomain
#Si l'on souhaite mettre un relais smtp
#relayhost =
mynetworks = 10.26.0.0/16, 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only<
mail_owner = postfix
myorigin = $mydomain
Copyright © Technicien reseau - e-cv Page 32/97
Nagios : Outil de supervision
Configuration du client mail (exemple ici de Thunderbird)
Copyright © Technicien reseau - e-cv Page 33/97
Nagios : Outil de supervision
Configuration
La configuration de Nagios s'effectue essentiellement dans des fichiers de configuration. Également certaines tâchespeuvent s'effectuer sur l'interface Web.
Nagios et ses composants
Copyright © Technicien reseau - e-cv Page 34/97
Nagios : Outil de supervision
Composition de nagios /usr/local/nagios/etc/ Les fichiers de configurations Principal, des ressources, des objets, et des CGI doivent être mis là
/usr/local/nagios/libexec/ Contient les plugins
/usr/local/nagios/share/ Fichiers HTML (pour la doc et l'interface web)
/usr/local/nagios/bin/ Ensemble des programmes Nagios
/usr/local/nagios/sbin/ Contient les scripts CGI utilisées par Nagios
/usr/local/nagios/var/ Répertoire vide pour le fichier de "journalisation"
/usr/local/nagios/share/images/logos/ Ensembles des logos pour constituer la map2D
Les options de notification sont d down
u unreachable
r recovered
c critical
w warning
u unknown stats
n none (pas de notification)
Ces options seront à saisir dans les différents fichiers de configuration.
Les fichiers de configurationnagios.cfg
Ce fichier est l'un des 1er fichiers de configuration à éditer. Il contient le chemin des fichiers de configuration quidoivent être lu par Nagios
cfg_file=/usr/local/nagios/etc/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/contacts.cfg
#cfg_file=/usr/local/nagios/etc/dependencies.cfg
#cfg_file=/usr/local/nagios/etc/escalations.cfg
cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/timeperiods.cfg
Copyright © Technicien reseau - e-cv Page 35/97
Nagios : Outil de supervision
Il propose aussi de modifier des options additionnelles, par exemple le format de la date
# DATE FORMAT OPTION
# This option determines how short dates are displayed. Valid options
# include:
# us (MM-DD-YYYY HH:MM:SS)
# euro (DD-MM-YYYY HH:MM:SS)
# iso8601 (YYYY-MM-DD HH:MM:SS)
# strict-iso8601 (YYYY-MM-DDTHH:MM:SS)
#
date_format=euro
cgi.cfg
Ce fichier définit les options d'affichage et les paramètres de sécurité pour l'interface web de nagios. Deux optionsnous intéresse particulièrement
L' activation de l'authentification afin de limiter l'accès à l'interface web
use_authentification=1
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
La définition des options d'alertes sonores en définissant un son .wav pour chaque type d'alertes
host_unreachable_sound=hostdown.wav
host_down_sound=hostdown.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=warning.wav
normal_sound=noproblem.wav
timeperiod.cfg
Ce fichier comporte les périodes pour laquelle l'on voudra faire des notifications.
Copyright © Technicien reseau - e-cv Page 36/97
Nagios : Outil de supervision
Ici sont définit 3 périodes :
24x7 = tous les jours
workhours = durant les heures de travail (9h-17h)
nonworkhours = temps en dehors du temps de travail
Exemple de configuration pour la période 24x7
# '24h sur 24'
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
contact.cfg
Ce fichier permet de gérer les utilisateurs qui seront alertés en cas de problème.
Copyright © Technicien reseau - e-cv Page 37/97
Nagios : Outil de supervision
contact_name : Nom du contact
alias : Surnom du contact ou commentaire
service_notification_period : La période durant laquelle Nagios enverra des alertes concernant les
services. Par défaut 24x7
host_notification_period : La période durant laquelle Nagios enverra des alertes concernant les
hôtes. Par défaut 24x7
service_notification_options : Définit le type d'alerte que Nagios enverra à l'utilisateur
concernant les services
host_notification_options : Définit le type d'alerte que Nagios enverra à l'utilisateur
concernant les hôtes
service_notification_commands : Définit la technologie utilisée pour envoyer les messages d'alerte
des services. Par email ou par SMS
host_notification_commands : Définit la technologie utilisée pour envoyer les messages d'alerte
des hôtes. Par email ou par SMS
email : Adresse email du contact
pager : Numéro de téléphone du contact
Copyright © Technicien reseau - e-cv Page 38/97
Nagios : Outil de supervision
Exemple pour l'utilisateur Nagios
# utilisateur Nagios
define contact{
contact_name nagios
alias Administrateur Nagios
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email [email protected]
}
contactsgroups.cfg
Ce fichier permet d'avertir plusieurs personnes à la fois.
contactgroup_name:nom du groupe de contacts
alias :surnom du groupe de contacts ou commentaire
members :liste de contacts appartenant au groupe. A noter que ces contacts
doivent être crées dans le fichier contacts.cfg
Exemple pour le groupe Nagios
# Groupe d'administrateur Nagios
define contactgroup{
contactgroup_name nagios
alias Administrateur nagios
members nagios
}
hosts.cfg
Sert à renseigner Nagios sur les machines du réseau qui seront monitorées. Il est possible de créer un ou plusieurs
Copyright © Technicien reseau - e-cv Page 39/97
Nagios : Outil de supervision
patrons (hôte générique) sur lesquels les autres hôtes vont se calquer. Un patron propage par héritage sesparamètres. Le but est de factoriser du code pour éviter de se répéter. C'est essentiellement ce que possède uneadresse IP.
Pour le patron
name : nom du patron
check_command : la fonction utilisée afin de déterminer dit l'hôte est en état
de fonctionnement
max_check_attempts : nombre maximum de fois que la commande check_command sera
exécutée en cas d'échec
notification_interval : l'intervalle entre 2 messages d'alerte
notification_period : période durant laquelle Nagios enverra des messages d'alerte
notification_options : définit le type d'alerte qui sera notifié par Nagios
notification_enabled : définit si les notifications sont activées pour cet hôte
event_handler_enabled : définit si le gestionnaire d'évènements est activé pour cet
hôte
flap_detection_enabled : définit si la détection d'oscillation est activée pour cet
hôte. L'oscillation intervient quand un service ou un
hôte change d'état trop fréquemment
process_perf_data : définit si le traitement des données liées à la performance du
contrôle est activée pour cet hôte
retain_status_information : définit si les informations liées au statut de l'hôte sont
mémorisées, entre les (re)démarrages de Nagios, pour cet hôte
retain_nonstatus_information : définit si les informations non liées au statut de l'hôte sont
mémorisées, entre les (re)démarrages de Nagios pour cet hôte
contact_groups : groupe de contacts responsables du groupe d'hôtes
register 0 : ne pas enregistrer l'objet. Est indispensable dans la création
de patron
Une fois la configuration du patron, on configure les hôtes
host_name:nom de l'hôte
alias :surnom de la machine ou un commentaire
use :a la même valeur que celle de name dans le patron créé. C'est ainsi qu'est
pris en compte un patron pour un hôte
address :adresse IP de la machine
Exemple de configuration d'un patron et d'un hôte
Copyright © Technicien reseau - e-cv Page 40/97
Nagios : Outil de supervision
# configuration du patron
define host{
name profil_hote
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0
}
# Hôte 'localhost'
défine host{
use profil_hote
host_name localhost
alias local machine
address 127.0.0.1
check_command check-host-alive
max_check_attempts 10
check_period 24x7
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups nagios
}
Copyright © Technicien reseau - e-cv Page 41/97
Nagios : Outil de supervision
hostgroups.cfg
Comme pour les contacts, il est possible de créer des groupes d'hôtes. Cela permet de simplifier les actions demonitoring.
hostgroup_name:nom du groupe d'hôte
alias :surnom du groupe ou commentaire
members :nom des hôtes appartenant au groupe
Exemple pour le groupe d'hôtes serveur
# Groupe d'hôtes
define hostgroup{
hostgroup_name serveur
alias serveur du domaine X
members localhost
}
services.cfg
Ce fichier permet de configurer les services (POP, IMAP, FTP, http,..) que l'on veut monitorer. Comme pour les hôtes,il est possible de définir un ou plusieurs patrons qui simplifieront la configuration du fichier.
Pour le patron
Copyright © Technicien reseau - e-cv Page 42/97
Nagios : Outil de supervision
name : nom du patron
check_period : période durant laquelle Nafios va effectuer des tests
max_check_period : nombre maximum de fois que sera exécuté le test en cas d'échec
normal_check_interval : l'intervalle entre 2 vérifications lorsque le statut est normal.
Une unité de temps vaut 60 secondes
retry_check_interval : l'intervalle entre 2 vérifications lorsque Nagios a découvert un
problème avec le service
notification_period : période durant laquelle Nagios enverra des messages d'alerte
notification_options : les options qui définiront si oui ou non Nagios doit envoyer des
messages d'erreur
is_volatile : définit si le service est « volatil ». Un service ne l'est
normalement pas. Les services volatils sont utiles pour
superviser des choses qui se remettent automatiquement en état «
OK » chaque fois qu'ils sont contrôlés, et des évènements comme
les alertes de sécurité qui réclament de l'attention à chaque
problème
retain_status_information : même explication que pour les hôtes mais pour les services
retain_nonstatus_information : même explication que pour les hôtes mais pour les services
Register 0 : même explication que pour les hôtes
Copyright © Technicien reseau - e-cv Page 43/97
Nagios : Outil de supervision
Une fois la configuration du patron, on configure les services
use :même valeur que le name utilisé pour le patron
host_name :nom de l'hôte sur lequel Nagios va monitorer le service
service_description:description du service monitoré
contact_groups :le groupe de contact que Nagios va joindre en cas de problèmes
check_command :il s'agit de la commande à exécuter. Définie dans commande.cfg (voir
2.10)
Exemple de configuration d'un patron, configuration des services et d'un service ici PING
# Patron des services
define service{
name general-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
register 0
}
# Service local
define service{
namelocal-service
usegeneral-service
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups nagios
notification_optionsw,u,c,r
notification_interval 60
notification_period 24x7
Copyright © Technicien reseau - e-cv Page 44/97
Nagios : Outil de supervision
register 0
}
# défini le ping sur localhost
define service{
use local-service
host_name localhost
service_description PING
is_volatile 0
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
notification_options w,u,c,r
notification_interval 960
check_command check_ping!100.0,20%!500.0,60%
}
servicegroups.cfg
Contient les groupes de services.
hostextinfo.cfg
Informations étendues sur les hôtes. Pour la touche finale, facultative mais bien pratique pour y voir clair. Il s'agit delogos graphiques et d'URL de pages web maisons.
Comme pour les hôtes et les services, on peut créer un ou plusieurs patrons.
Par exemple : un pour les routeurs, un autre pour les poste windows....
commands.cfg
Ce fichier contient les commandes des plugins par défaut de Nagios. Si l'on souhaite automatiser les nouveauxplugins installées, il faudra ajouter les commandes dans ce fichier.
resource.cfg
Permet de définir des variables globales réutilisables dans les autres fichiers. N'est pas accessible via les CGI quigénèrent l'interface graphique de Nagios. Peut contenir des données sensibles telles que les informations deconnexion à la base de données.
Copyright © Technicien reseau - e-cv Page 45/97
Nagios : Outil de supervision
serviceextinfo.cfg
Logos graphiques à appliquer pour les services.
escalations.cfg
Permet de définir des variables globales réutilisables dans les autres fichiers. N'est pas accessible via les CGI quigénèrent l'interface graphique de Nagios. Peut contenir des données sensibles telles que les informations deconnexion à la base de données.
escalations.cfg
Ce fichier est optionnel et est utilisé pour escalader les notifications liées à un service particulier.
dependancies.cfg
Ce fichier permet de supprimer des notifications et des contrôles actifs, à partir de l'état d'un ou plusieurs services ouhôtes. Ce fichier est optionnel et est principalement destiné aux utilisateurs avertis qui ont des configurations desupervision complexe.
Vérification de l'intégrité des fichiers de configurations
On doit procéder à la vérification des fichiers de configuration après chaque modification. Si une erreur est présentedans un des fichiers, le processus sera stoppé immédiatement après son lancement.
Pour vérifier les fichiers de configurations, taper la commande
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si tout est ok, il faut redémarrer le service Nagios pour appliquer les modifications
/etc/init.d/nagios restart
Copyright © Technicien reseau - e-cv Page 46/97
Nagios : Outil de supervision
Fichiers de configuration - interdépendance
CGIsToutes les actions menées à travers l'interface sont interprétées par les CGIs (/usr/local/nagios/sbin), et ce sont euxqui vont lancer les actions à mener en fonction de ce qui est spécifié et, réciproquement, ils interprètent les réponsesdes plugins pour les présenter dans l'interface.
Liste des CGIs et leurs fonctionnalités, cela donnant déjà une idée de ce qu'il est possible de faire via l'interface web status.cgi Le plus important des CGIs dans Nagios, permet de consulter le statut courant de toutes les stations et de tous les services supervisés
statusmap.cgi Crée une carte de toutes les stations définies sur le réseau
statuswml.cgi Ce cgi agit comme une interface WAP pour le la livraison d'information sur le réseau
statuswrl.cgi Crée une vue 3D de toutes les stations
tac.cgi Présente une vue globale de toutes les informations de Nagios
outages.cgi Produit une liste des stations à problèmes sur le réseau
config.cgi Permet de visualiser les fichiers de configuration
cmd.cgi Permet d'envoyer des commandes au processus Nagios
extinfo.cgi Donne des informations sur le processus Nagios, les statistiques des stations et services, permet l'affichage des commentaires, ... Il sert aussi de point de départ aux requêtes
pour cmd.cgi
showlog.cgi Permet une consultation graphique des logs
Copyright © Technicien reseau - e-cv Page 47/97
Nagios : Outil de supervision
history.cgi Permet la visualisation de l'historique des pannes
notifications.cgi En charge de la remontée d'alarmes
trends.cgi Permet de créer dynamiquement des graphes des différents statuts des différentes stations et des services au cours du temps
avail.cgi Permet de connaître le pourcentage de disponibilité d'une station
histogram.cgi Permet de créer dynamiquement des graphes concernant la disponibilité d'une station
summary.cgi Offre le compte-rendu des alarmes par période de temps
Les commandes externesPour des raisons de sécurité, Nagios ne permet par défaut que très peu d'interactions dynamiques avec les stations etles services via l'interface web.
Par exemple, il est impossible de rajouter un commentaire à un serveur, de programmer des périodes d'inactivité, dedemander un contrôle de service immédiat ou d'effectuer toute autre action qui sort du domaine de la consultation etrentre dans la redéfinition des contrôles et des commandes (accès à cmd.cgi).
Pourtant, tout ceci est offert via l'interface, il doit donc être possible de bénéficier de toutes ces fonctionnalités sanspour autant négliger la sécurité, car si Nagios, à priori, ne le permet pas, c'est pour éviter la prise de possession dusystème par le biais de ces commandes externes.
Les commandes externes sont gérées par le fichier /usr/local/nagios/var/rw/nagios.cmd.
La seule chose nécessaire pour que celui-ci soit exploitable par l'interface web est de permettre au propriétaire duprocessus du serveur web et du processus de nagios d'accéder à ce fichier.
Nous considèrerons, dans la définition des droits, que nous allons fixer la station où est installé Nagios, est une stationdédiée et non une station publique auquel cas, il faudrait encore affiner la gestion de ces droits.
Rappelons que les droits d'accès à l'interface web et les droits d'accès au processus ou aux fichiers de configurationde Nagios sont deux choses différentes et qui sont gérées séparément.
Nous allons tout d'abord, commencer par créer un groupe dont les futurs membres seront les personnes qui ont ledroit d'effectuer des requêtes sur ce fichier, ainsi toutes les personnes du groupe nagios n'auront pas forcément dedroits sur « nagios.cmd ».
L'exécution des commandes suivantes nécessite les privilèges root
Créons le groupe nagiocmd
Copyright © Technicien reseau - e-cv Page 48/97
Nagios : Outil de supervision
groupadd nagioscmd
Copyright © Technicien reseau - e-cv Page 49/97
Nagios : Outil de supervision
Le propriétaire du processus du serveur apache, généralement, l'utilisateur « apache » ou « nobody » selon lesdistributions linux.
Il devrait être facile d'identifier facilement le propriétaire, dans notre cas, il s'agit de l'utilisateur « www-data ».
Il nous faut donc, rajouter « www-data » et « nagios » (ndr : le propriétaire du processus nagios car nous avons utilisél'option -with-nagios-user=nagios) au groupe « nagiocmd ». Pour ce faire
usermod -G nagioscmd nagios
usermod -G nagioscmd www-data
Il faut maintenant donner les droits appropriés au répertoire « rw » contenant le fichier, pour cela, il faut exécuter lescommandes suivantes
chown nagios.nagioscmd /usr/local/nagios/var/rw
chmod u+rwx /usr/local/nagios/var/rw
chmod g+rwx /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
ls -al /usr/local/nagios/var
Alors nous pouvons donner les droits appropriés au fichier même
chown nagios.nagioscmd /usr/local/nagios/var/rw/nagios.cmd
chmod u+rwx /usr/local/nagios/var/rw/nagios.cmd
chmod g+rwx /usr/local/nagios/var/rw/nagios.cmd
Il faut également modifier le fichier nagios.cfg pour autoriser les commandes externes
gedit /usr/local/nagios/etc/nagios.cfg
=>mettre à 1 la ligne : check_external_commands=0
Pour que cela fonctionne, il faut impérativement redémarrer le serveur web
/etc/init.d/apache2 restart
Copyright © Technicien reseau - e-cv Page 50/97
Nagios : Outil de supervision
Les commandes externes sont maintenant actives, nous y gagnons grandement en interactivité, mais perdons ensécurité. Pour renforcer la sécurité, il faut maintenant travailler sur le serveur web lui-même en le rendant inaccessiblede l'extérieur par exemple.
Les principales fonctionnalités des commandes externes sont :
Ajouter un commentaire à l'une de nos stations de façon permanente ou non.
Ajouter un commentaire aux services d'une station de façon permanente ou non.
Effacer un commentaire.
Effacer tous les commentaires liés à une station d'un coup.
Retarder l'horaire de la prochaine remontée d'alarme pour la surveillance d'un service.
Retarder l'horaire de la prochaine remontée d'alarme pour la surveillance d'un service sans affecter les remontéesd'alarmes pour la station associée.
Reprogrammer l'horaire d'un contrôle d'un service.
Reprogrammer l'horaire de contrôle de tous les services d'une station spécifique.
Demander le contrôle immédiat de tous les services d'une station spécifique.
Permet d'activer/désactiver le contrôle d'un ou de tous les services pour une station spécifique ou d'un sousensemble de stations
Permet d'activer/désactiver la remontée d'alarme d'un ou de tous les services pour une station spécifique ou d'unsous ensemble de stations.
Fermer / redémarrer Nagios
Permet d'activer/désactiver, démarrer/arrêter le contrôle passif de services.
Sauvegarder/consulter des informations d'états sur les services et stations
Maintenant que nous avons vu les possibilités offertes par de telles commandes via l'interface web, il faut savoir qu'ilest en fait possible de réaliser des scripts afin de programmer des actions à mener à des horaires spécifiques, demanière ponctuelle ou régulière. Pour ce faire, il faut rentrer les commandes dans le fichier/usr/local/nagios/var/rw/nagios.cmd, ainsi de façon régulière nagios va vérifier les commandes externes à réaliser.
La périodicité où cela est réalisé est à préciser dans /usr/local/nagios/etc/nagios.cfg grâce à la ligne
Copyright © Technicien reseau - e-cv Page 51/97
Nagios : Outil de supervision
command_check_interval=-1
Les pluginsUn plugin utilise en fait les outils présents sur la machine où celui-ci est installé, et plus la station contiendra depaquetages et de librairies orientées réseaux et plus nagios deviendra fonctionnel.
On peut se demander alors comment nagios est capable d'utiliser ces outils puisque ceux-ci sont extérieurs auprogramme, et bien voilà où rentrent en jeu les plugins ! En fait, lorsque nous lançons la configuration de l'installationdes plugins, ce qui se passe c'est que Nagios recherche sur le système tous les logiciels qu'il connaît, alors enfonction de la configuration de la station, il va créer les plugins adéquats ; plugins qui vont en fait faire le lien entre leprogramme nagios et les outils réseaux de la machine.
Il est donc possible, en regardant la configuration de l'installation des plugins de Nagios, de voir quels outils celui-cirecherche et d'installer les paquetages adéquats.
Voilà en fait pourquoi sans plugins, Nagios est totalement inutile.
C'est un des grand plus de Nagios, qui n'incorpore pas directement de libraires et d'exécutables, mais va se servir desoutils présents sur le système, ce qui fait de Nagios un logiciel léger et évolutif.
Cependant, c'est aussi une des restrictions de nagios puisque si nous n'avons pas l'outil adéquat, alors, il n'est pascapable seul de superviser un service, et le nombre d'outils que celui-ci connaît est limité et à fortiori le nombre deplugins aussi.
Néanmoins, il est possible de développer ses propres plugins pour un outil que l'on aimerait utiliser, mais celaimplique des coûts de développement.
Ces plugins se trouvent dans le répertoire /usr/local/nagios/libexec/
Création de la status map Placer les images dans
/usr/share/nagios/images/logos/
Création du fichier dans /usr/local/nagios/etc/
hostextinfo.cfg
Copyright © Technicien reseau - e-cv Page 52/97
Nagios : Outil de supervision
Exemple de contenu
define hostextinfo{
host_name hp1
icon_image base/ng-switch40.png
statusmap_image base/ng-switch40.gd2
vrml_image base/ng-switch40.gd2
}
Ajouter la ligne suivante dans le fichier cgi.cfg
xedtemplate_config_file=/etc/nagios/hostextinfo.cfg
Puis dé-commenter la ligne suivante dans nagios.cfg
cfg_file=/usr/local/nagios/etc/hostextinfo.cfg
Redémarrer le service Nagios après chaque modification.
Conclusion
Cette configuration basée sur des templates (modèles) facilite grandement la découverte de ces fichiers et présentesouvent une idée très précise des fonctionnalités prises en charge par les différentes lignes. Ainsi, il est assez rapidede découvrir l'interdépendance des fichiers et la localisation des modifications à faire pour adapter (et non créer) laconfiguration à son réseau. Présentation de l'interface web
L'interface Web propose à l'utilisateur un tableau de bord efficace pour superviser son réseau. Elle permet deconnaitre l'état de ses stations, consulter les historiques (pannes et actions) ainsi que de générer des graphes. Uneaide à la configuration est aussi proposée.
On peut découper l'interface Nagios en six grandes parties :
services et hôtes
pannes et problèmes
actions
processus Nagios
Copyright © Technicien reseau - e-cv Page 53/97
Nagios : Outil de supervision
reporting
configuration
Service et hôtesTactical overview
C'est la vue synthétique, où l'on trouve l'essentiel des informations importantes sur le bon fonctionnement du systèmed'informations supervisé.
Cette vue rassemble les informations quantitatives essentielles au 1er abord : nombre d'équipements supervisés,services fonctionnels, non fonctionnels, alarmes en cours... Elle permet de naviguer facilement, il suffit de cliquer surun lien sur fond rouge pour aller directement à la liste des problèmes.
Service detail
La liste exhaustive, par équipement, des services supervisés. Cette vue peut être lourde si il y a un parc importantavec un grand nombre de services supervisés.
Host Detail
La liste des machines, si elles sont vues sur le réseau (soit par le biais d'une vérification par plugins, soit par un ping siaucun service n'est défini).
Hostgroup overview
La même liste que précédemment, mais avec les regroupements par hostgroup. Cela permet une vue rapide sur un
Copyright © Technicien reseau - e-cv Page 54/97
Nagios : Outil de supervision
sous-ensemble de votre parc (par serveurs, par client,etc).
Hostgroup summary
Une vue encore plus synthétique par hostgroup, avec indication du nombre d'équipements et de services dans lesdifférents états possibles.
Hostgroup grid
Toujours par groupe d'équipements, une vue des machines, avec en regard les services (par leur nom) et leur état(par la couleur).
Status Map
Cette carte des états, en 2D, permet de voir les relations de dépendances entre objets telles qu'elles ont étéconfigurées. Elle n'a cependant que peu d'intérêts hormis le côté dépendances.
Pannes et problèmesService problems
Affiche sous forme de tabulations les services qui sont WARNING ou CRITICAL.
Host problems
Affiche sous forme de tabulations les hôtes qui sont WARNING ou CRITICAL.
ActionsComments
Cette page permet d'ajouter un commentaire particulier sur un hôte ou un service.
Downtime
Permet de prévoir à l'avance l'arrêt de la supervision d'un hôte ou d'un service pour une période donnée.
Processus Nagios
Copyright © Technicien reseau - e-cv Page 55/97
Nagios : Outil de supervision
Process info
Donne des informations sur le processus Nagios qui tourne sur la machine.
Performance info
Indique les performances du système Nagios, telles que le nombre de requêtes sur les hôtes ou sur les servicesréalisés depuis 5 minutes, ou bien le temps de réponse des requêtes.
Scheduling Queue
Liste la file d'attente des requêtes à faire.
ReportingTrends
Les grandes tendances sur le parc supervisé. Affichage sous forme de graphique.
Availability
La disponibilité par machine, groupe de machines, services, groupe de services. Cette disponibilité est fonction nonseulement du temps de bon fonctionnement d'un serveur, mais aussi de tous ces services.
Alert histogram
C'est le rapport des alertes sous forme d'histogrammes.
Alert history
C'est une vue synthétique des dernières alertes remontées (que ce soit un problème ou un retour à la normale).
Alert summary
Quasiment la même information que le point précédent, mais sous forme tabulaire, avec en plus les informationsremontées par les plugins.
Notifications
Donne l'historique de tous les échanges entre Nagios et ses utilisateurs (alertes,escalades,acquittements).
Copyright © Technicien reseau - e-cv Page 56/97
Nagios : Outil de supervision
Event log
Le journal des évènements, qui donne un peu la même information que le point précédent, mais sous une formedifférente. Le journal contient aussi les arrêts et redémarrages de Nagios.
ConfigurationView config
Cette page est en sorte une vue web des fichiers de configuration en mode texte.
Conclusion
Nagios a réussi à créer une interface vraiment très intuitive puisqu'elle conserve les propriétés inhérentes à lanavigation d'un site web classique en présentant un menu sur la gauche et un cadre principal où les informationsapparaissent. Surveillance & plugins
Serveurs Windows Nsclient++Introduction
Nsclient++ est un démon installé sur un client de nagios Windows. Son but est de renvoyer les informations desupervision aux serveurs nagios.
Installation et configuration
Coté Nagios
Configurer le fichier /usr/local/nagios/etc/commands.cfg C'est le fichier où les définitions de la commande check_nrpesont définies.
Copyright © Technicien reseau - e-cv Page 57/97
Nagios : Outil de supervision
# 'check_nrpe'
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe $ARG1$ -H $HOSTADDRESS$ -c $ARG2$
}
Copyright © Technicien reseau - e-cv Page 58/97
Nagios : Outil de supervision
Configurer le fichier /usr/local/nagios/etc/services.cfg C'est pour configuer les services à monitor. Dans cet example,nous avons check_disk_c qui analysera la taille utilisée sur le disque dur Windows
# NRPE Windows Surveillance HDD
define service{
use local-service
host_name solnic
service_description NSCLIENT++ Windows HDD C
is_volatile ows 0
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
notification_options w,u,c,r
notification_interval 1
check_command check_nrpe!!check_disk_c
}
Coté serveur Windows
Dans le bon répertoire et en ligne de commande, tape : NSClient++ /install Cela installera le démon sur windows quise mettra alors en service.
Ensuite, il faut configurer le fichier NSC.ini :
ALLOWED HOST ADDRESSES
; This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
; If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
; The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
# On met ladresse du réseau
allowed_hosts=10.48.105.0/16
Le répertoire que check_disk va analyser est c :\ATI\*.*
check_disk_c=inject CheckFileSize ShowAll MaxWarn=100M MaxCrit=110M File:WIN=c:\ATI\*.*
Serveurs Linux NRPEIntroduction
Copyright © Technicien reseau - e-cv Page 59/97
Nagios : Outil de supervision
But
Permet d'exécuter des plugins sur des machines distantes de manière transparente et relativement aisée.
check_nrpe - Plugin utilisé pour envoyer des requêtes sur l'agent nrpe de la machine distante
nrpe - Agent qui tourne sur la machine distante et exécute les requêtes du plugin
nrpe.cfg - Fichier de configuration pour les agents des machines distantes
Cet ajout est conçu pour permettre l'exécution de plugins sur une machine distante. Le plugin check_nrpe tourne surla machine Nagios et est utilisé pour envoyer les requêtes d'exécution du plugin à l'agent nrpe de la machine distante.L'agent nrpe exécutera le plugin approprié sur la machine distante, et retournera les données de sortie et le code deretour au plugin check_nrpe de la machine Nagios. Le plugin check_nrpe envoie la sortie du plugin distant et le codede retour à Nagios comme si c'était le sien. Cela permet d'exécuter les plugins de manière transparente sur lesmachines distantes. L'agent nrpe peut soit fonctionner en mode démon standalone, soit comme un service inetd.
L'addon de NRPE est conçu pour permettre d'exécuter des connexions de Nagios sur les machines à distance. Laraison principale de ce programme est de permettre à Nagios de surveiller les ressources « locales » (CPU, utilisationde mémoire, etc.) sur les machines à distance. Puisque ces ressources publiques ne sont pas habituellementexposées aux machines externes, un agent comme NRPE doit être installé sur les machines à distance.
Notes :
Quand il tourne en mode démon, l'agent nrpe identifie les requêtes d'exécution des plugins en effectuant unecomparaison rudimentaire de l'adresse IP de la machine appelante avec une liste d'adresses IP présentes dans lefichier de configuration
Quand il tourne sous inetd, des encapsuleurs TCP [TCP wrappers] peuvent être utilisés pour restreindre l'accès àl'agent nrpe.
Note : Il est possible d'exécuter des plugins de Nagios sur les machines à distance par SSH. Il y a un check_by_sshplugin qui permet de le faire. Employer SSH est plus sécurisé que l'addon de NRPE, mais il impose également desprocessus de traitement coûteux(unité centrale de traitement) sur le serveur de surveillance et sur les machineséloignées à surveiller. Une réflexion est à mener quand on commence à surveiller des centaines ou des milliers demachines. Nous avons ainsi opté pour l'addon de NRPE en raison de la charge inférieure qu'il impose.
Vue d'ensemble
L'addon de NRPE se compose de deux morceaux :
Le check_nrpe plugin, qui réside sur la machine de surveilance locale
le démon NRPE, qui démarre sur la machine à distance
Copyright © Technicien reseau - e-cv Page 60/97
Nagios : Outil de supervision
Quand Nagios doit surveiller une ressource de service d'une machine à distance :
Nagios exécutera le check_nrpe plugin et lui indiquera quel service doit être vérifié
Le plugin de check_nrpe contacte le démon de NRPE sur le centre serveur à distance (option) via un raccordementSSL protégé
le démon de NRPE démarre le plugin Nagios approprié pour vérifier le service ou la ressource
les résultats du contrôle de service sont passés du démon de NRPE au check_nrpe plugin, qui renvoie alors lesrésultats de contrôle au processus de Nagios.
Note : Le démon de NRPE exige que les connexions de Nagios soient installées sur le centre serveur à distanceLinux/Unix. Sans ces dernières, le démon nrpe ne pourrait rien surveiller.
Exemples d'utilisation
Contôles directs
L'utilisation pertinente de l'addon de NRPE est de surveiller les ressources locales ou « privées » sur une machine àdistance Linux. Ceci inclut des contrôles comme la charge d'unité centrale de traitement, l'utilisation de mémoire,l'utilisation d'échange, les utilisateurs courants, l'utilisation de disque, les états de processus, etc.
Contrôles indirects
On peut également employer l'addon de NRPE pour vérifier indirectement des services et des ressources « publiques
Copyright © Technicien reseau - e-cv Page 61/97
Nagios : Outil de supervision
» des serveurs à distance qui ne pourraient pas être accessibles directement du centre serveur de surveillance.
Par exemple, si l'hôte à distance ou le démon et les plugins de NRPE sont installés cherche à communiquer avec unweb server à distance (sans pouvoir communiquer avec le centre serveur de surveillance), on peut configurer ledémon de NRPE pour surveiller le server web à distance indirectement. Le démon de NRPE agira essentiellement entant que proxy dans ce cas.
Installation
Pré recquis
Pour la suite des opérations, des pré-requis sont nécessaires :
Disposer des droits d'administration (accès root sur la machine à distance à surveiller et accès au compte del'utilisateur nagios sur le seveur de surveillance)
Disposer d'une connexion à Internet configurée et activée
Avoir activé l'accès au dépôt APT 'universe'
Un serveur web Apache fonctionnel
Suppositions
Ces instructions supposent que vous installez le NRPE addon sur un système qui soutient des TCP wrappers* et a lesuperserveur xinetd installé.
Note : TCP Wrappers et xinetd
Le contrôle d'accès aux réseaux peut se révéler une opération complexe. Les pare-feu servent à contrôler les accèsdepuis et vers un réseau donné, mais leur configuration est parfois difficile. TCP Wrappers et xinetd contrôlent lesaccès à l'aide du nom d'hôte et de l'adresse IP. De plus, ces outils comprennent des fonctions de journalisation et degestion simple à configurer.
But de TCP Wrappers
Un nombre important de services réseau modernes font usage de TCP wrappers ; SSH, Telnet et FTP, par exemple,utilisent cette application qui vient s'interfacer entre les demandes d'accès à un service et le service même. TCPWrappers est installé par défaut lors des installations de classe Serveur de Red Hat Linux offrant toute une gammed'avantages lors de l'utilisation de différents types de service, chacun disposant de ses propres méthodes de contrôled'accès.
Le concept à la base de TCP wrappers est de "regrouper" la cible de la demande à un autre programme plutôt que delaisser une connexion client entrante communiquer directement avec un démon de service réseau exécuté en tant queprocessus séparé sur un système serveur, ce qui offre un degré de contrôle d'accès et de journalisation du client
Copyright © Technicien reseau - e-cv Page 62/97
Nagios : Outil de supervision
essayant d'effectuer la connexion beaucoup plus élevé.
Les fonctions de TCP wrappers sont fournies par le fichier libwrap.a, une bibliothèque utilisée par les services réseau,tels que xinetd, sshd et portmap, compilés à cet effet. D'autres services réseau, même des programmes réseau quevous écrivez, peuvent être compilés avec libwrap.a pour en utiliser les fonctions. Red Hat Linux regroupe lesapplications TCP wrappers et les bibliothèques dans le fichier RPM tcp_wrappers-<numéro-version>.
Avantages de TCP wrappers
Lorsque quelqu'un cherche à se connecter à un serveur où est installé TCP wrappers, le "wrapper" établit un rapportdétaillant le nom du service demandé et les informations concernant l'hôte client. Le programme wrapper ne renvoiepas directement ces informations au client ; une fois les conditions de contrôle d'accès satisfaites, il se retire sansultérieur signe d'activité pour la poursuite de la communication entre serveur et client.
Les avantages de TCP Wrappers par rapport aux méthodes traditionnelles de contrôle sont doubles :
Le client qui se connecte n'est pas au courant de sa présence . Les utilisateurs habilités ne perçoivent aucunedifférence et les malintentionnés ne reçoivent aucune information quant au pourquoi du refus d'accès.
TCP Wrappers est indépendant des applications en cours qu'il a pour but de protéger. Cela permet auxapplications d'utiliser un même ensemble de fichiers de configuration, simplifiant ainsi leur gestion
Installation du serveur à distance (Hôte)
Ces instructions devraient être complétées(achevées) sur l'hôte à distance sur lequel le démon NRPE sera installé.Nous installerons les plugins Nagios et le démon NRPE.
définir un compte
Passer en mode root et créer un utilisateur
adduser nagios
passwd nagios
paramétrer les connexions vers Nagios
Extraire le code source des plugins de nagios :
apt-get install nagios-plugins-1.4.10.tar.tar
tar -zxvf nagios-plugins-1.4.10.tar.tar
Copyright © Technicien reseau - e-cv Page 63/97
Nagios : Outil de supervision
Compiler et installer les plugins :
cd nagios-plugins-1.4.10
./configure
make
make install
installer xinetd
apt-get install xinetd
make install xinetd
installer le démon nrpe
Télécharger le tarball de NRPE sur le lien suivant :
http://sourceforge.net/project/showfiles.php?group_id=26589&package_id=40241
pré-requis
apt-get install libwww-ssl0 libwww-ssl-dev
Extraire le code source du demon :
tar -zxvf nrpe-2.10.tar.gz
Compiler et installer le demon :
cd nrpe-2.10
./configure --disable-ssl (option ssl désactivée lors de la compilation et changement du port par defaut)
make
make install-plugin
make install-daemon
make install-daemon-config
Copyright © Technicien reseau - e-cv Page 64/97
Nagios : Outil de supervision
installer le demon NRPE comme un service sous xinetd
make install-xinetd
accorder les permissions
chown nagios:nagios /usr/local/nagios
chown -R nagios:nagios /usr/local/nagios/libexec
éditer le fichier /etc/xinetd.d/nrpe et ajouter l'adresse Ip du serveur de surveillance dans l'attribut only_from
only_from = 127.0.0.1 <nagios_ip_address>
et ajouter la ligne suivante pour le demon nrpe dans le fichier /etc/services file
nrpe 5666/tcp # NRPE
redémarrer le service xinetd
/etc/init.d/xinetd start
examiner le démon nrpe
vérifions que le demon nrpe est démarré sous xinetd
netstat -at | grep nrpe
la commande doit afficher :
tcp 0 0 *:nrpe *:* LISTEN
Copyright © Technicien reseau - e-cv Page 65/97
Nagios : Outil de supervision
Puisqu'on a installer le fameux chek_nrpe (issue de la ligne de commande make install-plugin) pour tester laconfiguration en local, on va lancer :
/usr/local/nagios/libexec/check_nrpe -H localhost
qui doit nous retourner :
NRPE v2.10
règles du firewall
Assurons-vous que le pare-feu local sur la machine permettra au démon NRPE d'avoir accès aux serveurs à distanceen introduisant une nouvelle règle d'iptables
iptables -A INPUT -p tcp --dport 5666 -j ACCEPT
iptables-save -c
Installation du serveur de surveillance (Nagios)
Sur la machine qui exécute Nagios, nous devons :
Installer le plugin check_nrpe
Créer une définition de commande de Nagios pour utiliser le plugin check_nrpe
Créer l'hôte de Nagios et les définitions de service pour contrôler l'hôte à distance
installation check_nrpe
Installer le plugin check_nrpe :
apt-get install nagios-nrpe-plugin
vérifier la communication avec le demon nrpe
On s'assure que le plugin check_nrpe peut parlet au démon NRPE sur l'hôte distance.
Copyright © Technicien reseau - e-cv Page 66/97
Nagios : Outil de supervision
/usr/local/nagios/libexec/check_nrpe -H localhost
Copyright © Technicien reseau - e-cv Page 67/97
Nagios : Outil de supervision
qui doit nous retourner :
NRPE v2X
si cela ne marche pas, les point suivants sont à vérifier :
s'assurer qu'il n'y a pas de pare-feu entre l'hôte éloigné(à distance) et le serveur nagios qui bloque lacommunication
s'assurer que le démon NRPE est installé correctement sous xinetd
s'assurer que l'hôte à distance n'a pas de pare-feu local(iptables)empêchant le serveur nagios de parler au démonNRPE
définir un compte
On va créer une définition de commande dans un de nos fichiers de configuration de Nagios pour utiliser le plugincheck_nrpe. Ouvrez le fichier commands.cfg pour rédiger...
/usr/local/nagios/etc/commands.cfg
# 'check_nrpe'
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -n -H $HOSTADDRESS$ -c $ARG1$
}
Nous sommes prêts à commencer à ajouter les services qui devraient être contrôlés sur la machine à distance via laconfiguration de Nagios...
créer des définitions de service pour l'hôte à surveiller
On doit créer quelques définitions d'objet pour contrôler la machine à distance. Ces définitions peuvent être placéesdans leur propre fichier ou ajoutées à un fichier de configuration déjà existant.
/usr/local/nagios/etc/services.cfg
Copyright © Technicien reseau - e-cv Page 68/97
Nagios : Outil de supervision
Un exemple pour le check-disk :
# NRPE Linux Surveillance HDD
define service{
use local-service
host_name jollud
service_description NRPE Linux HDD1
is_volatile 0
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
notification_options w,c
notification_interval 60
check_command check_nrpe!check_disk1
}
remettre en marche nagios
Vérifiez les fichiers de configuration de Nagios
/etc/nagios/nagios.cfg -v
redémarrer le serveur nagios
/etc/init.d/nagios restart
Serveurs Linux & Windows NSCA]Définition
Le client NSCA, installé directement sur la machine supervisée, exécute régulièrement des vérifications selon laplanification qui a été décidée en local. Il envoie ensuite les résultats au serveur Nagios qui les traitera lorsqu'il lesouhaitera.
Fonctionnement
Un deamon est installé sur le server NAGIOS : NSCA Nsca.cfg - fichier de configuration pour la nsca démon. Ceprogramme fonctionne comme demon sur l'hôte Nagios. Il écoute et attend les résultats de contrôle d'hôtes et de
Copyright © Technicien reseau - e-cv Page 69/97
Nagios : Outil de supervision
services. Linstallation se fait donc sur le serveur nagios. Il faut s'assurer de spécifier le même mot de passe dans lesdeux fichiers nsca.cfg et send_nsca.cfg ! Si ce n'est pas fait, le daemon nsca rejettera toutes les données qui serontenvoyées.
Une installation est aussi nécéssaire sur les serveurs distants (windows ou linux) : Send_ncsa Send_nsca.cfg - fichierde configuration pour la send_nsca clients. Cet add-on permet d'envoyer les résultats des vérifications passivesdepuis des serveurs distants vers un centre de surveillance de l'hôte qui tourne Nagios. Mais il faut le compiler sur lesmachines distantes, si elles n'ont pas la meme acrchitecture ou S.E que ceux du serveur NSCA.
Avantages et inconveniants
l'utilisation du module NSCA présente l'avantage de ne pas avoir à ouvrir de ports sur le firewall du réseau du clientNSCA. En effet, comme les informations sont envoyées par le client NSCA, il suffit de permettre le passage desinformations dans le sens sortant du firewall. En revanche il faudra ouvrir les ports du firewall du réseau local duserveur Nagios. Bien sur ce problème ne se pose pas si on exécute le client NSCA sur le réseau local ou se trouve leserveur Nagios
Les communications sont aussi chiffrées avec SSL
De la même manière que pour NRPE, NSCA ne peut pas être installé sur un commutateur, un router ou uneimprimante mais seulement les serveurs ou les ordinateurs classiques.
Le daemon nsca doit avoir les droits suffisants pour ouvrir ce fichier en écriture (nsca.cfg). De même, Nagios netraite les contrôles passifs trouvés dans les fichiers de commande externe que si un service a été défini dans le fichierde configuration des hôtes (hosts.cfg) et qu'il est surveillé.
Surveillance des services
Copyright © Technicien reseau - e-cv Page 70/97
Nagios : Outil de supervision
Présentation
Avec Nagios, on peut vérifier des services ou des protocoles. Pour cela, il faut installer et configurer sur la machineNagios des plugins. Voici une liste non exhaustive des plugins disponibles :
Un exemple de tableau Nom du plugins Utilisation
check_oracle Vérifie les bases de données Oracle
check_snmp Vérifie le protocole snmp
check_by_ssh Vérifie un service via le protocole SSH
check_log Vérifie les fichiers de log
check_dhcp Vérifie le service DHCP
check_http Vérifie le protocole http
check_pgsql Vérifie les bases de données PostgreeSQL
check_ssh Vérifie le protocole ssh
check_icmp Vérifie le protocole icmp
check_ping Détermine le statiques de la connexion d'un hôte
check_disk Vérifie le pourcentage des disques utilisés
check_pop Vérifie le protocole POP
check_tcp Vérifie le protocole tcp
check_mysql Vérifie les bases de données MySQL
check_time Vérifie le temps
check_udp Vérifie le protocole UDP
check_nntp Vérifie le protocole nntp
check_nntps Vérifie le protocole nntps
check_ntp Vérifie le protocole ntp
check_ftp Vérifie le protocole ftp
check_smtp Vérifie le protocole smtp
Exemples : check_disk et check_dns
check_disk
Copyright © Technicien reseau - e-cv Page 71/97
Nagios : Outil de supervision
Le plugin check_disk permet de connaître le pourcentage d'espace disque utilisé sur un système de fichiers, et génèreune alerte lorsque le pourcentage dépasse un seuil.
Utilisation :
check_disk _w limit -c limit [-p path] [-t timeout] [-m] [--verbose]
check_disk (-h|--help)
check_disk (-V|--version)
Options :
-w (--warning=INTEGER ou --warning=PERCENT%) : permet de configurer le seuil d'alerte d'espace disquedisponible en (Kilo-octets ou en pourcentage).
-c (—critical=INTEGER ou --warning=PERCENT%) : permet de configurer le seuil critique de l'espacedisque dismonible (en Kilo-octets ou en pourcentage).
-p (—path=PATH ou —partition=PARTTION) : vérifie les partitions précisés (toutes si non précisés).
-m (—mountpoint) : pour préciser le point de montage de la partition.
-v (—verbose) : affichage des détails de la ligne de commande (ne pas utiliser avec le serveur Nagios).
-h (—help) : montre l'aide de la commande.
-V (—version) : montre la version.
check_dns
Le plugin check_dns vérifie le protocole DNS pour un hôte.
Utilisation :
Copyright © Technicien reseau - e-cv Page 72/97
Nagios : Outil de supervision
check_dns -H host [-s server] [-a expected-address] [-t timeout]
check_dns -help
check_dns --version
Copyright © Technicien reseau - e-cv Page 73/97
Nagios : Outil de supervision
Options :
-H (—hostname=HOST) : nom ou adresse de l'hôte à vérifier.
-s (—server=HOST) : serveur DNS optionnel pour faire le test.
-a (—expected-address=IP-ADDRESS) : adresse IP optionnel où seront envoyer les retour du DNS.
-t (—timeout=INTEGER) : définir la valeur du timeout en seconde (par défaut : 10).
-h (—help) : pour avoir de l'aide sur la commande.
-V (—version) : pour avoir la version.
Voip
Différents plugins nagios existent et permettent de surveiller un serveur Asterisk. Les plugins check_SIP etcheck_asterisk vérifient le fonctionnement du service via le protocle SIP, il leur faut donc pour fonctionner unutilisateur sip. Le plugin check_asterisk_alive permet de connaitre le statut du serveur Asterisk, il utilise un comptemanager pour extraire des informations sur le serveur Asterisk.
Check SIP
Copyright © Technicien reseau - e-cv Page 74/97
Nagios : Outil de supervision
gedit /usr/local/nagios/etc/commands.cfg
define command{
command_name check_sip
command_line $USER1$/check_sip -u $ARG1$ -w 5
}
gedit /usr/local/nagios/etc/services.cfg
define service{
use local-service
host_name ServeurAsterisk
service_description test SIP
check_command check_sip!sip:[email protected]
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
notification_interval 240
check_period 24x7
notification_period 24x7
notification_options c,r
}
Copyright © Technicien reseau - e-cv Page 75/97
Nagios : Outil de supervision
Check_asterisk
apt-get install sipsak
cp /usr/bin/sipsak /usr/local/bin
gedit /usr/local/nagios/etc/commands.cfg
define command{
command_name check_asterisk
command_line $USER1$/check_asterisk -U $ARG1$ -w 100 -c 500
}
gedit /usr/local/nagios/etc/services.cfg
define service{
use local-service
host_name ServeurAsterisk
service_description check asterisk
check_command check_asterisk!sip:[email protected]
}
check_asterisk_alive
gedit /usr/local/nagios/etc/commands.cfg
define command{
command_name check_asterisk_alive
command_line $USER1$/check_asterisk_alive -u $ARG1$ -p $ARG2$ -H $ARG3$
}
gedit /usr/local/nagios/etc/services.cfg
define service{
use local-service
host_name ServeurAsterisk
service_description check asterisk alive
check_commandcheck_asterisk_alive!nagios!nagiosadm!10.48.105.11
}
Copyright © Technicien reseau - e-cv Page 76/97
Nagios : Outil de supervision
Données environnementalesNagios permet de contrôler des données environnementales, comme, par exemple, la température. Ces donnéespeuvent être très utiles, car pour certaines salles, comme les salles serveurs ou les salles de brassages, il estimportant de connaître la température et certains autre données de ce genre.
Pour que Nagios puisse surveiller ces données, il faut installer des boîtiers qui les mesurent (comme lesthermomètres) dans les salles souhaités, et les brancher sur le réseau.
Nagios s'est associé avec la société Temptrax qui fournit deux thermomètres : l'un se branchant sur le réseau (ModelE) et l'autre se branchant sur un port série (Model F).
The TempTraxTM Model E
Sensatronics, LLC
La gestion des événementsPrésentation
Parmi les différents optionnalités qu'offre Nagios, il existe la gestion des événements (ou Event Handlers en anglais).Les gestionnaires d'événements sont des scripts shell qui essayent de résoudre automatiquement les problèmesavant de les notifiés. Par exemple, un gestionnaire d'événement peut être un script qui va tenter de relancer unserveur http qui vient de changer de statut.
Copyright © Technicien reseau - e-cv Page 77/97
Nagios : Outil de supervision
Les scripts doivent être placés dans ce répertoire :
/usr/local/nagios/libexec/eventhandlers/
Exemple
Voici un exemple de script shell pour redémarrer un serveur http.
Fichier de configuration services.cfg :
define service{
host_name japet
service_description HTTP
max_check_attempts 4
event_handler restart-httpd
}
Nous appelons une commande, celle-ci doit donc être définie dans le fichier checkcommands.cfg :
define command{
command_name restart-httpd
command_line /usr/local/nagios/libexec/eventhandlers/restart-httpd $SERVICESTATE$ $STATETYPE$
$SERVICEATTEMPT$
}
Il nous faut maintenant écrire notre script restart-httpd :
Copyright © Technicien reseau - e-cv Page 78/97
Nagios : Outil de supervision
#!/bin/sh
#
# Event handler script pour redémarrer le serveur httpd
#
# $1 correspond en fait à l'argument 1 de la fonction restart-httpd, à savoir ici
#$SERVICESTATE$, donc on regarde ici dans quel état est le service
case "$1" in
OK)
# Le service est revenu, on ne fait rien
;;
WARNING)
# Cette état n'engendre pas d'actions
;;
UNKNOWN)
# On ne connaît pas les raisons de l'erreur, donc on ne fait rien
;;
CRITICAL)
# Le serveur http semble avoir un problème, peut être faut-il le
# redémarrer
# On regarde si c'est un statut SOFT ou un statut hard
# ici $2 c'est $STATETYPE$
case "$2" in
# Sommes nous en SOFT ?
SOFT)
# Nous sommes en soft state mais nous attendons que nagios ait
# fini au moins 3 contrôles avant de lancer nos actions de
# redémarrage
#ici $3 c'est $SERVICEATTEMPT$
case "$3" in
# Au bout du 3ème contrôle nous redémarrons le serveur http,
# comme ça éventuellement le 4ème contrôle de nagios découvrira
# un retour à la normale après redémarrage ou sinon nous
# passerons en hard state
3)
echo -n "Restarting HTTP service (3rd soft critical state)..."
/etc/rc.d/init.d/httpd restart
;;
esac
;;
#sommes nous en hard state ?
HARD)
# Malgré nos efforts nous sommes en hard state, essayons une
# dernière fois de redémarrer le serveur http, peut être
# retournerons-nous à la normale, sinon il est encore temps pour
# les remontées d'alarmes.
echo -n "Restarting HTTP service..."
/etc/rc.d/init.d/httpd restart
;;
esac
Copyright © Technicien reseau - e-cv Page 79/97
Nagios : Outil de supervision
;;
esac
exit 0
Copyright © Technicien reseau - e-cv Page 80/97
Nagios : Outil de supervision
Base de données nagios NDOutils
L'addon NDOutils est créé pour sauvegarder dans une base de données toute la configuration et les événementsnagios.
Le fait de sauver les informations Nagios dans une base de données permet de les traiter de manière indépendante,avec un gain de performance. Ces données peuvent être traitées dans une application qui va générer des graphes etautres outils de visualisation.
La base de données peut être Mysql ou bien postgresSQL.
PrésentationNDOutils est une suite de composants
NDOMOD Event Broker Module Exporte les données du service Nagios
LOG2NDO Utility Importe l'historique Nagios et les fichiers log netsaint vers la base de données avec le service NDO2DB
FILE2SOCK Utility Il lit les données d'un fichier et les écrit au format Unix domain socket ou TCP socket
NDO2DB Daemon Transfère les données provenant des composants NDOMOD et LOG2NDO et les sauvegarde dans la base de données MySQL ou PostgreSQL
Méthode à un seul serveur Nagios, 1 seule instance :
Méthode à plusieurs serveurs Nagios, N instances :
Copyright © Technicien reseau - e-cv Page 81/97
Nagios : Outil de supervision
Installation Installation de mysql
apt-get install mysql-server mysql-client dbconfig-common libmysqlclient15-dev phpmyadmin
Extraction des fichiers sources
tar xzf ndoutils-1.4b7.tar.gz
cd ndoutils-1.4b7
Compilation
./configure
make
Copyright © Technicien reseau - e-cv Page 82/97
Nagios : Outil de supervision
Copie des binaires dans /nagios/bin
cd src/
cp ndomod-2x.o ndo2db-2x log2ndo file2sock /usr/local/nagios/bin
Création de la base donnée
Avec phpmyadmin créer l'utilisateur et sa base donnée associée
Ici la base de données s'appelle nagiosbd avec comme propriétaire l'utilisateur nagiosbd. On lui donne les droitsnécessaires.
Création des tables
On retourne dans le répertoire ndoutils-1.4b7
Copyright © Technicien reseau - e-cv Page 83/97
Nagios : Outil de supervision
cd db
./installdb -u nagiosdb -p nagiosadmin -h localhost -d nagiosdb
Copyright © Technicien reseau - e-cv Page 84/97
Nagios : Outil de supervision
Configuration
Rajouter au fichier nagios.cfg
# SAMPLE NAGIOS CONFIG SNIPPET FOR NDOMOD
#
# In order to have Nagios run the NDOMOD event broker module, you'll need
# to place a statement like the one found below in your main Nagios
# configuration file (nagios.cfg). Adjust the paths, etc. to suit your needs.
# Uncomment the line below if you're running Nagios 2.x
broker_module=/usr/local/nagios/bin/ndomod-2x.o config_file=/usr/local/nagios/etc/ndomod.cfg
# Uncomment the line below if you're running Nagios 3.x
#broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
On retourne dans le répertoire ndoutils-1.4b7
cd config
cp ndomod.cfg ndo2db.cfg /usr/local/nagios/etc
Editer les fichiers ndomod.cfg et ndo2db.cfg pour compléter la configuration. Il vous faut rentrer les paramètrescomme le nom de la base de données, le nom d'utilisateur, mot de passe etc.
Mise en place du service Cette commande démarre le service
/usr/local/nagios/bin/ndo2db-2x -c /usr/local/nagios/etc/ndo2db.cfg
Pour qu'elle soit exécutée au démarrage, il suffit de créer le script suivant dans /etc/init.d/
Copyright © Technicien reseau - e-cv Page 85/97
Nagios : Outil de supervision
#!/bin/sh
# Start/stop the nsca daemon.
#
# Contributed by Andrew Ryder 06-22-02
# Slight mods by Ethan Galstad 07-09-02
Ndo2dbBin=/usr/local/nagios/bin/ndo2db-2x
Ndo2dbCfg=/usr/local/nagios/etc/ndo2db.cfg
test -f $Ndo2dbBin || exit 0
case "$1" in
start) echo -n "Starting ndo2db daemon: ndo2db"
start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg
echo "."
;;
stop) echo -n "Stopping ndo2db daemon: ndo2db"
start-stop-daemon --stop --quiet --exec $Ndo2dbBin
echo "."
;;
restart) echo -n "Restarting ndo2db daemon: ndo2db"
start-stop-daemon --stop --quiet --exec $Ndo2dbBin
start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg --daemon
echo "."
;;
reload|force-reload) echo -n "Reloading configuration files for ndo2db daemon: ndo2db"
# ndo2db reloads automatically
echo "."
;;
*) echo "Usage: /etc/init.d/ndo2db start|stop|restart|reload|force-reload"
exit 1
;;
esac
exit 0
Copyright © Technicien reseau - e-cv Page 86/97
Nagios : Outil de supervision
Puis l'activer au démarrage de la machine
sudo update-rc.d ndo2db defaults
Contrôle de l'installation
il ne reste qu'à vérifier que les processus ont bien été démarré
ps aux | grep nagios
nagios 3679 0.0 0.3 20820 1848 ? Ssl Jul11 1:55 /usr/local/nagios/bin/nagios -d
/usr/local/nagios/etc/nagios.cfg
nagios 309 0.0 0.0 3604 320 ? Ss 13:39 0:00 /usr/local/nagios/bin/ndo2db -c
/usr/local/nagios/etc/ndo2db.cfg
Bug rencontré au bout de quelques jours d'utilisation, le service ne veux plus démarrer, solution :
rm /usr/local/nagios/var/ndo.sock
Exemple d'utilisation NagvisNagvis est un addon de cartographie pour Nagios. Il utilise NDoutils afin de récupérer les données de Nagios. CetAddon est un exmemple d'utilisation de la base donnée gérée par NDOutils.
Installation
tar xvzf nagvis-1.1.2.tar.gz
mv nagvis-1.1.2 nagvis
mv nagvis /usr/local/nagios/share
ls -l /usr/local/nagios/share/nagvis/
Vous devriez voir les répertoires nagvis et wui si tout est ok
Copyright © Technicien reseau - e-cv Page 87/97
Nagios : Outil de supervision
cd /usr/local/nagios/share/nagvis
Copyright © Technicien reseau - e-cv Page 88/97
Nagios : Outil de supervision
Faire une copie de sauvegarde du fichier de conf
cp nagvis/etc/config.ini.php.dist nagvis/etc/config.ini.php
Il faut configurer Nagvis pour qu'il puisse utiliser la base de donner NDOutils
vi nagvis/etc/config.ini.php
Donner les permissions suffisantes
chown www-data:www-data /usr/local/nagios/share/nagvis -R
chmod 664 /usr/local/nagios/share/nagvis/nagvis/etc/config.ini.php
chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps
chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/*
chmod 775 /usr/local/nagios/share/nagvis/nagvis/etc/maps
chmod 664 /usr/local/nagios/share/nagvis/nagvis/etc/maps/*
Utilisation de nagvis
http://127.0.0.1/nagios/nagvis/
Nagvis permet de construire des plans du réseau à partir des données de nagios.
Copyright © Technicien reseau - e-cv Page 89/97
Nagios : Outil de supervision
Munim
Munin est un logiciel écrit en Perl capable de collecter des données sur différentes machines (charges cpu, ram,réseau, espace disques ...), afin de les centraliser vers un seul et unique serveur et de générer des graphiquesconsultables via une simple page web.
L'application se divise en deux parties :
munin : serveur centralisant les données
munin-node : client à installer sur chaque machine
Installation Paquets Munin et apache 2 sur le PC de surveillance.
aptitude install munin apache2
Paquet munin-node sur les PC à surveiller.
aptitude install munin-node
Configuration Passons maintenant à la configuration de munin via le fichier /etc/munin/munin.conf
Copyright © Technicien reseau - e-cv Page 90/97
Nagios : Outil de supervision
# Dépôt des rapports (apache)
htmldir/var/www/munin
# Répertoire de la base de données
dbdir /var/lib/munin
# Répertoire des logs
logdir /var/log/munin
# Répertoire des exécutables
rundir /var/run/munin
# Emplacement des templates
tmpldir /etc/munin/templates
# Nous monitorons ce serveur [example.com]
address 10.48.105.11
use_node_name yes
Copyright © Technicien reseau - e-cv Page 91/97
Nagios : Outil de supervision
Maintenant passons à la configuration de munin-node en éditant /etc/munin/munin-node.conf
# logs
log_level 4
log_level /var/log/munin/minin-node.log
# port
port 4949
# Liste des adresses IP autorisées à se connecter
allow ^127\.0\.0\.1$
allow^10\.48\.105\.10$
Puis redémarrer munin-node
/etc/init.d/munin-node restart
Vous devriez avoir des stats disponibles à l'adresse ! http://ip.du.serveur/munin
Plugin AsteriskCopier les fichiers du plugin dans le répertoire /usr/share/munin/plugins directory
tar xvzf asterisk-munin.tar.gz
cd asterisk-munin
cp * /usr/share/munin/plugins
cd /usr/share/munin/plugins
Donner les bons droits aux exécutables du plugin
chmod 755 ./asterisk*
Création des liens pour tous les plugins
Copyright © Technicien reseau - e-cv Page 92/97
Nagios : Outil de supervision
ln -s /usr/share/munin/plugins/asterisk_name /etc/munin/plugins/asterisk_name
ln -s /usr/share/munin/plugins/asterisk_channels /etc/munin/plugins/asterisk_channels
ln -s /usr/share/munin/plugins/asterisk_channelstypes /etc/munin/plugins/asterisk_channelstypes
ln -s /usr/share/munin/plugins/asterisk_codecs /etc/munin/plugins/asterisk_codecs
ln -s /usr/share/munin/plugins/asterisk_console /etc/munin/plugins/asterisk_console
ln -s /usr/share/munin/plugins/asterisk_iaxchannels /etc/munin/plugins/asterisk_iaxchannels
ln -s /usr/share/munin/plugins/asterisk_iaxlag /etc/munin/plugins/asterisk_iaxlag
ln -s /usr/share/munin/plugins/asterisk_iaxpeers /etc/munin/plugins/asterisk_iaxpeers
ln -s /usr/share/munin/plugins/asterisk_meetme /etc/munin/plugins/asterisk_meetme
ln -s /usr/share/munin/plugins/asterisk_meetme_ /etc/munin/plugins/asterisk_meetme_
ln -s /usr/share/munin/plugins/asterisk_meetmeusers /etc/munin/plugins/asterisk_meetmeusers
ln -s /usr/share/munin/plugins/asterisk_sipchannels /etc/munin/plugins/asterisk_sipchannels
ln -s /usr/share/munin/plugins/asterisk_sippeers /etc/munin/plugins/asterisk_sippeers
ln -s /usr/share/munin/plugins/asterisk_voicemail /etc/munin/plugins/asterisk_voicemail
Copyright © Technicien reseau - e-cv Page 93/97
Nagios : Outil de supervision
Installation de "Perl Net ::Telnet module"
apt-get install libnet-telnet-perl
Création du manager sur le serveur Asterisk
/etc/asterisk/manager.conf
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
displayconnects = yes
[check_asterisk_user]
secret = your_password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
permit=10.48.0.0/255.255.255.0
read=system,call,log,verbose,command,agent,user
write=system,call,log,verbose,command,agent,user
Pour chaque plugin, nous devons changer le username et le mot de passe
* Remplacer:
my $username = $ENV{'username'};
my $secret = $ENV{'secret'};
* Par:
my $username = 'nagios';
my $secret = 'nagiosadm';
Amélioration du plugin "asterisk_sippeers"
nano /usr/share/munin/plugins/asterisk_sippeers
Modifier la ligne 95 :
Copyright © Technicien reseau - e-cv Page 94/97
Nagios : Outil de supervision
$result = $result + 1 if ((split ' ',$line)[4] > 0);
Copyright © Technicien reseau - e-cv Page 95/97
Nagios : Outil de supervision
par :
$result = $result + 1 if ((split ' ',$line)[4] =~ m/\([0-9]+/ ) or ((split ' ',$line)[5] =~ m/\([0-9]+/ );
Redémarage de munin-node
/etc/init.d/munin-node restart
Détail des plugins asterisk_channels nombre de canaux actifs
asterisk_codecs nombre de canaux actifs par codec utilisé
asterisk_channels nombre de canaux actifs
asterisk_iaxpeers nombre de peer IAX connectés
asterisk_iaxchannels nombre de canaux IAX actifs par codec utilisé
asterisk_sippeers nombre de peer SIP connectés
asterisk_sipchannels nombre de canaux SIP actifs par codec utilisé
asterisk_meetme nombre de conférences actives
asterisk_meetme nombre d'utilisateurs dans une salle spécifique
asterisk_meetmeusers nombre d'utilisateurs dans les conférences actives
asterisk_voicemail
Munin est un très bon complément à Nagios, il ne remonte pas d'alertes mais permet d'avoir une surveillancegraphique de la charge d'un serveur. Il permet aussi de faire des statistiques sur une année. Le plugin Asterisk nouspermet de visuliser graphiquement l'utilisation de la voip, en mesurant des variables tels que le nombre et le tempsd'utilisation des codecs, le temps d'utilisation du protocole SIP etc. Conclusion
Nagios permet de mettre en place une solution de supervision à moindre coût, mature et pérenne, avec un panel dePlugin large et toujours en augmentation.
Sa capacité à monitorer les services sur les différents serveurs d'un réseau s'avère efficace, en effet, les alertesvisuelles et mails nous ont paru satisfaisants.
Les outils libres tels que NSCLIENT++, NRPE, NSCA et SNMP permettent de toucher un grand nombred'équipements réseau à surveiller, ce qui fait donc de Nagios un produit assez large. Toutefois certains matérielsréseau nécessitent toujours une plateforme de surveillance propriétaire. Nagios seul est souvent insuffisant.
Copyright © Technicien reseau - e-cv Page 96/97
Nagios : Outil de supervision
Cependant, sa mise en place nécessite une prise en main assez longue mais au final, s'avère toutefois payante. Depart ses alarmes, logs et graphes, Nagios permet à l'administrateur de faire une analyse à long terme de son réseau.Pourtant, la fonctionnalité de graphes de Nagios nous a paru assez pauvre. L'utilisation de l'outil de supervision Muninqui génère des graphes très pointus nous semble très appropriée pour combler cette lacune. Sites Web
Fichiers d'installation & configuration
Nagios.org
Nagios Exchange
Munin
Copyright © Technicien reseau - e-cv Page 97/97