This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 -
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.
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 :
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 :
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
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 !
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.
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
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.
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,
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.
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
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.
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.
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
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é.
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
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.
La configuration de Nagios s'effectue essentiellement dans des fichiers de configuration. Également certaines tâchespeuvent s'effectuer sur l'interface Web.
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
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.
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.
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
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
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
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
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
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/
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 :
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
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.
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).
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.
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\*.*
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
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
» 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
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.
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.
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...
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.
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
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é.
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
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.
-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.
-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.
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.
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 :
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
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
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
$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.
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