97
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

Article a12

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Article a12

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

Page 3: Article a12

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

Page 4: Article a12

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

Page 5: Article a12

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

Page 6: Article a12

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

Page 7: Article a12

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

Page 8: Article a12

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

Page 9: Article a12

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

Page 10: Article a12

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

Page 11: Article a12

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

Page 12: Article a12

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

Page 13: Article a12

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

Page 14: Article a12

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

Page 15: Article a12

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

Page 16: Article a12

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

Page 17: Article a12

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

Page 18: Article a12

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

Page 19: Article a12

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

Page 20: Article a12

Nagios : Outil de supervision

adduser nagios

Copyright © Technicien reseau - e-cv Page 20/97

Page 21: Article a12

Nagios : Outil de supervision

mot de passe choisi : nagios

Copyright © Technicien reseau - e-cv Page 21/97

Page 22: Article a12

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

Page 23: Article a12

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

Page 24: Article a12

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

Page 25: Article a12

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

Page 26: Article a12

Nagios : Outil de supervision

apt-get install libgd-dev

Copyright © Technicien reseau - e-cv Page 26/97

Page 27: Article a12

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

Page 28: Article a12

Nagios : Outil de supervision

nano /etc/snmp/snmpd.conf

Copyright © Technicien reseau - e-cv Page 28/97

Page 29: Article a12

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

Page 30: Article a12

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

Page 31: Article a12

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

Page 32: Article a12

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

Page 33: Article a12

Nagios : Outil de supervision

Configuration du client mail (exemple ici de Thunderbird)

Copyright © Technicien reseau - e-cv Page 33/97

Page 34: Article a12

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

Page 35: Article a12

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

Page 36: Article a12

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

Page 37: Article a12

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

Page 38: Article a12

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

Page 39: Article a12

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

Page 40: Article a12

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

Page 41: Article a12

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

Page 42: Article a12

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

Page 43: Article a12

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

Page 44: Article a12

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

Page 45: Article a12

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

Page 46: Article a12

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

Page 47: Article a12

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

Page 48: Article a12

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

Page 49: Article a12

Nagios : Outil de supervision

groupadd nagioscmd

Copyright © Technicien reseau - e-cv Page 49/97

Page 50: Article a12

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

Page 51: Article a12

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

Page 52: Article a12

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

Page 53: Article a12

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

Page 54: Article a12

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

Page 55: Article a12

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

Page 56: Article a12

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

Page 57: Article a12

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

Page 58: Article a12

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

Page 59: Article a12

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

Page 60: Article a12

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

Page 61: Article a12

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

Page 62: Article a12

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

Page 63: Article a12

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

Page 64: Article a12

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

Page 65: Article a12

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

Page 66: Article a12

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

Page 67: Article a12

Nagios : Outil de supervision

/usr/local/nagios/libexec/check_nrpe -H localhost

Copyright © Technicien reseau - e-cv Page 67/97

Page 68: Article a12

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

Page 69: Article a12

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

Page 70: Article a12

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

Page 71: Article a12

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

Page 72: Article a12

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 (&mdash;critical=INTEGER ou --warning=PERCENT%) : permet de configurer le seuil critique de l'espacedisque dismonible (en Kilo-octets ou en pourcentage).

-p (&mdash;path=PATH ou &mdash;partition=PARTTION) : vérifie les partitions précisés (toutes si non précisés).

-m (&mdash;mountpoint) : pour préciser le point de montage de la partition.

-v (&mdash;verbose) : affichage des détails de la ligne de commande (ne pas utiliser avec le serveur Nagios).

-h (&mdash;help) : montre l'aide de la commande.

-V (&mdash;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

Page 73: Article a12

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

Page 74: Article a12

Nagios : Outil de supervision

Options :

-H (&mdash;hostname=HOST) : nom ou adresse de l'hôte à vérifier.

-s (&mdash;server=HOST) : serveur DNS optionnel pour faire le test.

-a (&mdash;expected-address=IP-ADDRESS) : adresse IP optionnel où seront envoyer les retour du DNS.

-t (&mdash;timeout=INTEGER) : définir la valeur du timeout en seconde (par défaut : 10).

-h (&mdash;help) : pour avoir de l'aide sur la commande.

-V (&mdash;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

Page 75: Article a12

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

Page 76: Article a12

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

Page 77: Article a12

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

Page 78: Article a12

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

Page 79: Article a12

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

Page 80: Article a12

Nagios : Outil de supervision

;;

esac

exit 0

Copyright © Technicien reseau - e-cv Page 80/97

Page 81: Article a12

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

Page 82: Article a12

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

Page 83: Article a12

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

Page 84: Article a12

Nagios : Outil de supervision

cd db

./installdb -u nagiosdb -p nagiosadmin -h localhost -d nagiosdb

Copyright © Technicien reseau - e-cv Page 84/97

Page 85: Article a12

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

Page 86: Article a12

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

Page 87: Article a12

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

Page 88: Article a12

Nagios : Outil de supervision

cd /usr/local/nagios/share/nagvis

Copyright © Technicien reseau - e-cv Page 88/97

Page 89: Article a12

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

Page 90: Article a12

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

Page 91: Article a12

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

Page 92: Article a12

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

Page 93: Article a12

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

Page 94: Article a12

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

Page 95: Article a12

Nagios : Outil de supervision

$result = $result + 1 if ((split ' ',$line)[4] > 0);

Copyright © Technicien reseau - e-cv Page 95/97

Page 96: Article a12

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

Page 97: Article a12

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