Vous êtes sur la page 1sur 170

Nagios

Pythagore F.D. CT/030425/1/061129

Supervision : dfinitions

Supervision
Dfiniton de supervision rseau
La supervision rseau (network monitoring) se traduit par l'utilisation d'un systme qui vrifie constament l'tat d'un rseau d'ordinateurs interconnects et qui notifie l'administrateur rseau concern en cas de problme, via email ou autre moyen. La supervision est donc une sous-partie de la gestion de rseau.

Supervision
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 3

Exemple pratique
Pour dterminer l'tat d'un serveur web, un systme de supervision pourra envoyer priodiquement une requte HTTP pour vrifier l'accs une page web. Pour un serveur mail, le systme peut envoyer une requte SMTP d'envoi de courriel une bote approprie et rcuprer ce mme courriel via les protocoles IMAP ou POP3.

Gestion des vennements


Les tests donnant lieu des erreurs (connexion perdue, message d'erreur du service...) conduisent le systme ragir avec une action approprie prdfinie par l'administrateur. Ce peut tre une notification ou encore une activation d'un service de secours (failover).

Extensions courantes
La mesure du traffic rseau ou des performances de resources distribues est une extension qui n'est pas toujours incluse dans les systmes de supervision. Dans ce cas, elle sera a dlgue des outils spcifiques et adapts.

Exemple pratique
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 4

Services rseau
Qu'est-ce qu'un service rseau
On attribue le terme service rseau toute fonction de haut niveau accessible par un protocole de communication rseau abstrait et qui est maintenue par une machine appele serveur. En gnral, un service rseau concerne la couche applicative du modle rseau ARPA.

L'internet
Il existe une multitude de services rseau ddis l'internet. Les plus populaires sont sans doute le service HTTP, utilis pour les changes de documents (le web ) et le service SMTP, utilis pour l'change de courrier lectronique (l' e-mail ).

Normalisations
Le site de l'IETF rassemble les documents qui proposent et dfinissent des protocoles rseaux standards. Voir le site : http://www.ietf.org/rfc.html.

Services rseau
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 5

II

Supervision

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 6

Objectifs
Connatre distance et de manire automatique l'tat des objets et ressources ncessaires au bon fonctionnement du systme. Etre notifi d'un problme ou d'une panne.

Mthode
On peut surveiller avec diffrents niveaux de granularit. Exemple : prsence d'une machine sur le rseau ou encore taux de remplissage d'un disque en particuler . Le premire tche consiste dfinir les objets superviser, par exemple : services (exemple : http, smtp...) ports de transport (exemple : TCP 80, TCP 25) priphriques (exemple : espace disque occup, tat de l'imprimante...) unit centrale (exemple : charge du processeur, temprature de l'UC...) Pour chaque objet surveill, on dfinira la manire d'obtenir l'information et les seuils qui doivent dclencher une alerte.

Objectifs
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 7

Techniques
Il existe diffrentes techniques de prlvement d'informations sur les ressources surveiller. On retiendra principalement trois mthodes valables pour la majorit des sytmes informatiques : prlvement par snmp (simple network management protocol). SNMP est un protocole standard de gestion des ressources distance. Il est dcrit dans une srie de RFC dont les premiers (historiques) sont les 1155 1157 pour la version 1. SNMP utilise le transport UDP sur les ports 161-162. commandes de vrification. Certaines commandes usuelles nous renseignent sur l'tat des ressources locales (ex: df, du, who...) et peuvent tre excutes distance via telnet ou ssh. On peut utiliser l'ordonnanceur du systme cron pour les lancer priodiquement puis analyser leur rsultat. De plus, cron envoie systmatiquement un email d'alerte si le code de retour des commandes est non nul. outils spcifiques de supervision. Des outils de supervision ergonomiques peuvent utiliser des mthodes de surveillance ad-hoc. Ils gnrent un historique de l'tat des ressources et peuvent proposer un service d'alerte labor.

Techniques
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 8

III

Prsentation Nagios

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 9

Gnralits
Historique
1999 2002 2005 NetSaint version 0.0.1 NetSaint version 0.0.7 devient Nagios 1.0 pour viter la confusion avec le produit Saint . Nagios version 2.0

Dveloppement
Nagios est dvelopp sous licence GPL (http://www.gnu.org/copyleft/gpl.html). Son dveloppement est supervis par l'initiateur du projet, Ethan Galstad.

Portages
Nagios a t port sur les plate-formes suivantes : plate-forme d'origine : Linux Unix propritaires : AIX, HP-UX, Solaris, Irix, Compaq Tru64 UNIX (Digital UNIX), SCO Unixware Unix open-source : FreeBSD, NetBSD, OpenBSD, FREESCO

Gnralits
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 10

Prsentation
Qu'est-ce que Nagios
Nagios est un superviseur de machines (les htes) et de services. Il fonctionne en tant que dmon Unix. A intervalles rguliers, il lance des sondes qui testent ltat des htes. Les remontes d'alertes se font d'une manire dfinie par l'utilisateur (e-mail, message, SMS ou autre). Nagios prsente une interface graphique accessible par un navigateur web. Elle permet de : visualiser l'tat du rseau de faon graphique travers un carte de statut (statusmap) soumettre des requtes (commandes externes ou passive checks) gnrer des rapports d'activit (par hte, par service...) visualiser les historiques modifier la file d'attente des vrifications

Ce que n'est pas Nagios


Dans son fonctionnement standard, Nagios ne propose pas danalyse quantitative des ressources car il ne sait traiter que leurs tats. Nagios n'est pas non-plus un analyseur de vulnrabilit.

Prsentation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 11

Fonctionnalits standards
Supervision
Nagios peut tre utilis pour superviser les lments suivants : services rseau (HTTP, SSH, POP3...) ressources systme (charge CPU, utilisateurs connects...) tat du matriel (temprature...) tat des priphriques (i2c...)

Quelques autres possibilits


dcrire un rseau de faon hirarchise (groupes d'htes, de services, dpendances ...) excuter des commandes externes (contrlable via une fifo) modification des files d'attentes des vrifications effectuer suspendre des vrifications persistance des statuts entre les redmarrages de Nagios authentification simple travers le serveur web, et dfinitions de rles selon les utilisateurs appliquer des mesures correctives grce un gestionnaire d'vnements (event handler) intgration aise dans d'autres outils de gestion de parc dvelopper ses propres plugins avec n'importe quel langage (script-shell, perl, C ...)

Fonctionnalits standards
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 12

Les plugins
Nagios est constitu de trois parties coopratives entre elles : un coeur, le serveur nagios : c'est un ordonnanceur performant lanc sous forme de daemon unix des "excutants", les plugins (stocks dans nagios/libexec/ ou nagios/plugins/) une interface de contrle (sous forme d'application CGI) Les plugins sont des programmes externes au serveur, qui font des requtes vers les htes, et transmettent au serveur un code retour et d'ventuels messages courts. Par dfaut, les plugins sont ordonnancs par le serveur nagios (active check) mais ils peuvent tre excuts la demande ou bien en rponse une alerte (passive check). Quelques plugins standards :
check_http check_load check_ping check_pop check_procs check_sensors check_smtp check_snmp check_ssh check_tcp check_users vrifie la prsence d'un serveur web vrifie la charge CPU locale envoie une requte ping un hte vrifie la prsence d'un serveur POP3 compte les processus locaux rcupre des informations sur des capteurs industriels vrifie la prsence d'un serveur SMTP envoie une requte SNMP (passe en argument) un hte vrifie la prsence d'un service SSH vrifie l'ouverture d'un port TCP (pass en argument) compte le nombre d'utilisateurs sur la machine locale

Les plugins
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 13

Les plugins
Nagios fait appel aux plugins, qui se chargent d'effectuer leur requte vers le poste local ou vers un poste distant. Les plugins renvoient ensuite la rponse et le code de retour au processus Nagios.

Plugin ProcessusNagios Plugin

Ressourceou servicelocal

Ressourceou servicedistant

Postelocal

Postedistant

Les plugins
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 14

Les gestionnaires d'vnements


Ce sont des scripts shell (par dfaut stocks dans nagios/libexec/eventhandlers/ ou nagios/plugins/eventhandlers/ selon l'installation) qui permettent de corriger automatiquement un problme survenu sur un service. Leur utilisation est facultative. Elle peut tre utile dans le cas de gestion de failover . Exemple :
code retour "warning" code retour "critical" code retour "ok" recharger le service lancer le service failover ne rien faire

En gnral, il faudra donner Nagios la possibilit d'excuter des commandes sur des htes distants. Les processus correspondant Nagios sont excuts en tant que UID nagios / GID nagios : il faut mettre en place sudo pour permettre l'utilisateur nagios de manipuler des scripts d'administration

Les plugins
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 15

Les extensions
De nombreux projets visant rajouter des fonctionnalits non standard Nagios ont vu le jour. Le site nagiosexchange regroupe ces projets :
http://www.nagiosexchange.org/

Les plus intressants sont : NRPE : Nagios Remote Plugin Execution, permet d'excuter des plugins Nagios sur une machine distante. Utile pour les plugins qui doivent obligatoirement tre placs sur la machine interroger. NSCA : Nagios Service Check Acceptor, permet Nagios d'intercepter des messages envoys par une machine. Ncessite d'excuter un dmon NSCA sur le serveur Nagios (check passif) Nagios-popups : envoie les alertes sous forme de popups sur n'importe quelle machine. Cette extension utilise le service de messages Windows et xmessage sur Unix Apan, Nagiosgraph : affichent des graphes quantitatifs des ressources surveilles grce rrdtool Fruity, nagedit-nagview, NaWui : outils de configuration de Nagios Oreon, openQRM : interfaces web avances de gestion rseau intgrant Nagios pour la supervision

Les extensions
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 16

IV

Installation de Nagios

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 17

Introduction
La mise en place d'un moniteur Nagios ncessite :

un serveur web (par exemple Apache) un serveur nagios des plugins nagios (qui peuvent tre dploys sur des clients) d'ventuelles extensions

Ces quatres types de produits sont livrs sparment. Enfin, pour des raisons de scurit, le processus Nagios s'excute en tant qu' utilisateur nagios et groupe nagios (par dfaut). Ceci ncessite la cration d'un utilisateur nagios et de son groupe sur les systmes :
[root@servnagios /root]# groupadd -g 5666 nagios [root@servnagios /root]# useradd -u 5666 -g nagios -d /usr/local/nagios nagios

Il est recommand d'utiliser les mmes UID/GID sur le serveur nagios et les clients nagios (en cas de mise en place des tcp-wrappers et identification avec identd).

Introduction
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 18

Installation et mise jour de Nagios


A partir de paquets
S'il existe des paquets pour votre distribution de Linux, l'installation et la mise jour se font partir de votre gestionnaire de paquets. Sur Debian1 installation : mise jour :

[root@servnagios /tmp]# apt-get install nagios [root@servnagios /tmp]# apt-get update && apt-get install nagios

Sur RedHat, Mandriva, SuSE et autres systmes utilisant les packages rpm installation : mise jour :
[root@servnagios /tmp]# rpm -i nagios-<version>.rpm [root@servnagios /tmp]# rpm -U nagios-<version>.rpm

attention lasatisfactiondedpendancesentrepaquets Tous les paquets RPM concernant Nagios pourront tre trouvs sur le site suivant :
http://dag.wieers.com/home-made/apt/packages.php

1 Debian propose trois variantes de nagios quivalentes; la version standard est nagios-text .

Installation et mise jour de Nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 19

Installation et mise jour de Nagios


A partir des sources
On rcuprera les sources sur le site officiel de Nagios (http://www.nagios.org) Pour l'affichage graphique (carte de statut ou statusmap), on aura besoin de la bibliothque gd (http://www.boutell.com). Pour installer cette bibliothque partir de ses sources, les bibliothques suivantes sont ncessaires : libpng-devel libjpeg-devel freetype-devel Xfree86-devel Les fichiers .so (bibliothques partages) de gd sont installes par dfaut dans /usr/local/lib. vrifierque/usr/local/libestprsentdanslefichierdeconfigurationdel'diteurdeliens/etc/ld.so.confet mettre jourlalistedesliensavecldconfigv On doit d'abord dcompresser l'archive tlcharge dans un rpertoire temporaire (par exemple /tmp) :
[root@servnagios /tmp]# tar xzf nagios-<version>.tar.gz

Installation et mise jour de Nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 20

Installation et mise jour de Nagios


Configuration des sources : optionsutilesdeconfigure(dfautentrecrochets): --help --prefix=PREFIX --exec-prefix=EPREFIX --bindir=DIR --sbindir=DIR --libexecdir=DIR --datadir=DIR --sysconfdir=DIR --localstatedir=DIR --libdir=DIR --with-nagios-user=<user> --with-nagios-grp=<grp> --with-init-dir=<path> --with-template-extinfo --with-template-objects --with-cgiurl=<dir> --with-htmurl=<dir> aide en ligne racine d'installation [/usr/local/nagios] racine d'installation pour les excutables [=PREFIX] excutables [EPREFIX/bin] excutables d'administation/sytme [EPREFIX/sbin] excutables du programme [EPREFIX/libexec] donnes en lecture seule [PREFIX/share] configuration [PREFIX/etc] fichiers journaux, de statut [PREFIX/var] bibliothques partages [EPREFIX/lib] propritaire du processus nagios [nagios] groupe du processus nagios [nagios] rpertoire pour le script d'init la configuration tendue utilise des modles la configuration des objets utilise des modles URL pour les cgi [/nagios/cgi-bin] URL pour html [/nagios]

Installation et mise jour de Nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 21

Installation et mise jour de Nagios


Configuration des sources (suite) :
[root@servnagios /tmp]# cd nagios-<version> [root@servnagios /tmp/nagios]# ./configure <options_eventuelles>

Compilation de nagios et des CGIs :


[root@servnagios /tmp/nagios]# make all

Installation dans le rpertoire dfini avec configure :


[root@servnagios /tmp/nagios]# make install

Installation du script d'init :


[root@servnagios /tmp/nagios]# make install-init

Installation et mise jour de Nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 22

Installation des plugins


Les plugins ncessitent l'installation d'openssl et d'un client SNMP (ucd-snmp par exemple).

A partir de packages
Les plugins doivent a priori tre prpars pour l'architecture sur laquelle ils s'excuteront, aussi on a tout intrt les installer partir de packages tlchargs sur nagios.org : Exemple :
[root@servnagios /tmp/]# rpm -i nagios-plugins-<version>.rpm

Si vous effectuez l'installation partir de packages attention aux dpendances, nagios-plugins ncessite, entre autres, plusieurs modules perl. Tous les packages peuvent tre trouvs sur le site http://dag.wieers.com/home-made/apt/packages.php

A partir des sources


La dmarche est la mme que pour la compilation/installation de nagios. Les plugins sont installs par dfaut dans PREFIX/libexec cespluginspourront treappels tredployssurdesclients,cepointseraaborddanslechapitre dploiement

Installation des plugins


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 23

Installation des plugins


Attention, en fonction de la distribution de Linux utilise et de la version des plugins un bogue peut apparatre, qui empche la bonne interprtation du rsultat des pings par le plugin check_ping. Ceci est d une erreur de localisation (il en est de mme pour le systme Solaris de Sun). Pour rsoudre le problme il faut modifier dans les sources (qui sont situes dans le rpertoire plugins du rpertoire d'installation) le fichier check_ping.c. Remplacer la ligne : par :
setlocale (LC_ALL, "");

setlocale (LC_ALL, "C");

puis compilez et finissez normalement l'installation.

Installation des plugins


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 24

Dmarrage de Nagios
Serveur Nagios
Le moniteur de surveillance se dmarre l'aide du script d'init /etc/rc.d/init.d/nagios. Ce script peut tre appel en plus des options standards (start|sop) avec restart reload ( appeler lorsque lon a modifi les fichiers de configuration) status Nagios peut tre lanc automatiquement au dmarrage, il suffit de le rajouter dans les services dmarrer pour le runlevel souhait : Exemple pour le runlevel 3 :
[root@servnagios /etc/rc3/d/]# ln -s ../init.d/nagios S99nagios

Dmarrage du serveur Web


Si vous utilisez Apache, il est lanc par le script d'init /etc/init.d/httpd.

Dmarrage de Nagios
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 25

Utilisation de nagios

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 26

Page d'accueil
La page d'accueil de Nagios est normalement accessible via l'url : http://<adresse_serveur_nagios>/nagios Le menu de gauche permet d'accder tous les scripts cgi de supervision du rseau et la documentation de Nagios. Pour revenir la page d'accueil depuis une autre page, cliquer sur Home .

Page d'accueil
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 27

Les CGI
Nagios fait appel des scripts CGI pour toutes ses oprations de supervision et de gnration de rapports. Les informations donnes par les CGI sur l'tat du rseau dpendent des droits que possde l'utilisateur connect. Selon la configuration de Nagios, les oprations faisant appel des commandes externes peuvent ne pas tre autorises.

Les CGI
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 28

Vue d'ensemble de l'tat du rseau


La CGI Tactical Overview permet d'avoir une vue globale de l'tat du rseau. Elle permet de dtecter rapidement des pannes de rseau et de surveiller l'tat des htes et services. L'tat gnral de tous les htes et services est indiqu par l'affichage Network Health .

Il est possible de cliquer directement dans la page sur les problmes (qui apparaissent sur fond rouge) pour obtenir plus de dtails.

Vue d'ensemble de l'tat du rseau


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 29

Dtail des htes et services


Les pages Service Detail et Host Detail affichent la liste de tous les htes et services surveills ainsi que leur tat. Si un hte ou un service rencontre un problme, regarder les informations donnes par la colonne Status Information pour dterminer la cause de la panne. Exemple de liste des services et de leur status :

Les pages Service Problems et Host Problems affichent les mmes informations mais en cachant les htes et services dont le status est OK . Les liens Hostgroup xxx et les liens Servicegroup xxx permettent d'accder aux informations de status des htes et services en les regroupant selon les groupes dfinis par les fichiers de configuration.

Dtail des htes et services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 30

Carte du rseau
Les liens Status Map et 3-D Status Map permettent d'afficher une reprsentation graphique du rseau, respectivement en 2D et en 3D. Ceci permet notamment de voir ltat des htes, les dpendances, et daccder directement aux dtails pour un hte donn en cliquant dessus.

Status Map
Ce CGI cre une carte de tous les htes du rseau surveills par Nagios, en utilisant la librairie gd. Pour changer de type de reprsentation, utiliser la liste droulante Layout Method . Les reprsentations suivante sont disponibles : User-supplied coords : coordonnes utilisateur Depth layers : reprsentation par couches Collapsed tree : arbre ferm Balanced tree : arbre quilibr Circular : reprsentation circulaire Circular (Marked Up) : circulaire avec zones colores Circular (Balloon) : autre reprsentation circulaire

3-D Status Map


Ce CGI cre la reprsentation des htes en 3D VRML. La visualisation n'est possible que si un navigateur VRML (Virtual Reality Modeling Language) est install sur le systme.

Carte du rseau
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 31

Carte du rseau
Exemple de rendu du CGI statusmap :

Carte du rseau
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 32

Dtection des pannes rseau


La page Network Outages rpertorie la liste des problmes sur les htes qui provoquent des pannes rseau. Ceci permet sur de grands rseaux de dtecter rapidement la source du problme, mais n'est pas d'une grande utilit pour les rseaux de petite taille. Les htes sont tris dans la liste an fonction de la gravit de la panne cause, les problmes les plus importants apparaissent en haut de liste.

Dtection des pannes rseau


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 33

Recherche d'un hte et commentaires


Recherche d'un hte
Le champ Show Host de la colonne de menu permet d'accder directement au dtail d'un hte en saisissant son nom ou son adresse.

Commentaires
Le lien Comments permet de lister les commentaires associs aux htes et aux services, d'en supprimer ou d'en ajouter de nouveaux.

Recherche d'un hte et commentaires


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 34

Arrt d'htes et de services


Si ncessaire, il est possible d'indiquer Nagios des priodes durant lesquelles un hte ou un service sera arrt. Nagios ne lancera alors aucune vrification sur un hte ou service dclar arrt. Pour programmer des arrts d'htes ou de services, cliquer sur Downtime dans le menu. Remplir les champs ncessaires et valider (bouton Commit ). Il y a deux types d'arrts programms : Fixed indique que Nagios ne doit plus effectuer de vrification pour cet hte ou service entre deux instants prcis, Flexible indique que Nagios doit attendre que l'hte ou service soit dans un autre tat que OK pour le considrer arrter. Dans ce cas, la priode d'arrt est indique dans le champ If Flexible, Duration: . Les dates sont au format :
mm/dd/yyyy hh:mm:ss

Arrt d'htes et de services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 35

Processus Nagios, performances


Le lien Process Info permet d'accder la page de gestion du processus Nagios. Diverses informations sont affiches dans la section Process Information , comme la dure depuis laquelle le processus est lanc, son PID, les paramtres activs, etc. La colonne de droite ( Process Commands ) permet d'arrter ou de redmarrer Nagios, et d'activer ou de dsactiver plusieurs paramtres. Le lien Performance Info permet d'accder aux informations de performance des vrifications effectues par Nagios.

Processus Nagios, performances


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 36

Liste des vrifications programmes


Pour accder la liste des vrifications programmes, cliquer sur Scheduling Queue . La liste de toutes les vrifications apparat, avec pour chacun l'hte et le service concern, l'heure de la dernire vrification effectue par Nagios ainsi que l'heure de celle venir. Pour supprimer un vnement programm, cliquer sur l'icne : Pour modifier l'horaire de la prochaine vrification, cliquer sur l'icne :

Liste des vrifications programmes


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 37

Rapports
La section Reporting du menu permet de gnrer automatiquement rapports sous diverses formes.

Trends
Permet de crer un graphique de l'tat d'un hte ou d'un service sur une priode dfinie (utilise la librairie gd).

Rapports
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 38

Rapports
Availability
Ce CGI est utilis pour obtenir un rapport sur la disponibilit des htes et services sur une priode dfinie.

Rapports
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 39

Rapports
Alert Histogram
Idem Availability , mais le rapport est sous la forme d'un histogramme.

Alert Summary
Ce CGI fournit des rapports concernant les alertes dclenches par les htes et services.

Notifications
Dresse la liste des notofications, c'est--dire des alertes envoyes aux personnes, le plus souvent par mail.

Rapports
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 40

Rapports
Event Log
Ce CGI affiche le fichier de log dans une page HTML. Les vnements sont regroups par heure et des icnes indiquent pour chacun quel type d'vnement il d'agit (warning, notification, information etc).

Alert History
Permet de filtrer le fichier de log pour n'afficher, par exemple, que les vnements concernant les services, ou uniquement les alertes de type Host unreachable (Hte indisponible). Les paramtres de filtrage se situent en haut droite de la fentre.

Rapports
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 41

Lecture de la configuration
View config
Ce CGI permet de voir le contenu des objets dfinis dans les fichiers de configuration. Les objets peuvent tre les htes, les groupes d'htes, les contacts, les groupes de contacts, les services etc. Il est, par contre, impossible d'diter la configuration via l'interface web. Il existe cependant un projet rcent de rcriture totale de linterface de Nagios en php qui prvoit cette fonctionnalit assez demande (voir le site web http://nagios-php.sf.net). Il existe aussi des systmes de gestion rseau qui intgrent le coeur de Nagios pour la fonction de supervision. Ils possdent leur propre interface web de contrle et permettent entre autres de dfinir les htes et services surveiller directement depuis leur interface. On pourra retenir les systmes de gestion suivants : Oreon : http://www.oreon-project.org/ OpenQRM : http://www.openqrm.org/

Lecture de la configuration
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 42

VI

Configuration de Nagios

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 43

Configuration de Nagios
La configuration d'un systme de supervision bas sur nagios s'articule autour de quatre grands axes :

Serveur de supervision
configuration du serveur nagios lui-mme (l'ordonnancement des tests) configuration du serveur web (l'accs au contrle depuis un navigateur)

Htes clients
configuration des extensions (nrpe, nsca) configuration des tcp wrappers

Dmarrage / Arrt
Typiquement, nagios sera lanc par les commandes d'init SYSV. Exemple de commandes SYSV:
# /etc/init.d/nagios help Usage: /etc/init.d/nagios {start|stop|status|reload} # /etc/init.d/nagios start Starting service nagios: [

OK

Configuration de Nagios
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 44

Configuration de Nagios
Remarque
Nagiosesttrssensible lasyntaxedesesfichiersdeconfigurationetnetolreaucuneerreur. Lesfichiersdedfinitiond'objetssonttousinterdpendants. Lors de l'laboration des fichiers de configuration, on peut vrifier la syntaxe avec :
/usr/bin/nagios -v /etc/nagios/nagios.cfg

Fichiers d'exemples
Sur le serveur, des fichiers d'exemples sont cres dans /etc/nagios. Il est recommand de les sauvegarder avant de travailler :
[root@servnagios /etc/nagios]# mkdir samples ; cp *.cfg samples

Configuration de Nagios
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 45

Les fichiers de configuration


Les fichiers de configuration se situent dans le rpertoire /etc/nagios. Ils doivent tre indiqus dans le fichier de configuration principal nagios.cfg pour tre pris en compte :
cfg_file=/etc/nagios/checkcommands.cfg cfg_file=/etc/nagios/hosts.cfg cfg_file=/etc/nagios/services.cfg ...

Il obissent tous la mme syntaxe et peuvent contenir les mmes paramtres. Il n'est pas obligatoire d'utiliser un grand nombre de fichiers pour la configuration, mais le dcoupage en plusieurs fichiers rend la lecture de la configuration plus aise.

configuration gnrale
cgi.cfg nagios.cfg resource.cfg le fichier de configuration pour les scripts CGI le fichier de configuration principal de nagios ressources diverses et variables d'environnement

Les fichiers de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 46

Les fichiers de configuration


configuration d'objets
Ceux-ci utilisent une configuration base sur modle. On entend par objet toutes les donnes telles que les services surveiller, les htes... dont la configuration peut tre extrmement souple : hosts.cfg hostgroups.cfg hostextinfo.cfg dependencies.cfg escalations.cfg contactgroups.cfg contacts.cfg checkcommands.cfg misccommands.cfg services.cfg servicegroups.cfg serviceextinfo.cfg timeperiods.cfg dfinition du rseau, machine par machine, avec les ascendants regroupement d'htes par fonctions (dmz, production...) dtails sur les htes (icnes, descriptions...) dpendances entre htes et services escalades de notification groupes de contact pour les alertes (admin, pupitreur...) personnes contacter pour les alertes commandes de supervision (check_ftp, check_pop...) commandes diverses (expdition de courrier...) services superviss par nagios (POP, FTP...) groupes de services (seulement Nagios v2) dtails sur les services (icnes...) priodes des supervision (24h/24, tous les jours...)

Les fichiers de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 47

Les fichiers de configuration


Serveur Nagios
nagios.cfg

Dfinition du rseau Remonte d'alertes


contactgroups.cfg contacts.cfg hosts.cfg hostgroups.cfg hostextinfo.cfg

misccommands.cfg timeperiods.cfg resource.cfg

Interface Web
cgi.cfg

Services et dpendances
dependencies.cfg services.cfg serviceextinfo.cfg checkcommands.cfg

escalations.cfg

Les fichiers de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 48

Principe des modles de configuration


Nagios utilise des fichiers de configuration bass sur des modles (template-based configuration). Ce type de configuration consiste dfinir des modles pour des objets gnriques, puis les surcharger, les complter, ou crer d'autres modles. Le squelette d'un modle est le suivant :
define type_objet{ name <paramtre1> <paramtre2> ... register } <nom_du_modle> <valeur1> <valeur2> 0 ; nom de l'objet

; on n'enregistre pas la dfinition ; car c'est un modle

Principe des modles de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 49

Principe des modles de configuration


Pour utiliser un modle, il suffit de l'invoquer avec le mot-cl use :
define type_objet{ name <nom_de_l_objet> ; on surcharge le nom de l'objet use <nom_du_modle> ; on utilise un modle dj dfini <paramtre1> <valeur1> <paramtre2> <valeur2> ... #pas de register, implicitement : register 1 }

Deuxtypesdecommentairessontpossibles,"#"enpremiercaractredeligne,sinon";" Des exemples concrets seront vus avec les fichiers de configuration.

Principe des modles de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 50

Outils graphiques de configuration


Il existe plusieurs projets bass sur Nagios qui permettent une configuration facilite, entirement via une interface web. La configuration s'effectue ainsi de faon plus aise et intuitive qu'en ditant tous les fichiers de configuration avec un diteur de texte. On pourra retenir les outils suivants : Nagedit-Nagview (Stable) : http://nagedit-nagview.sf.net/ Fruity (Beta) : http://fruity.sf.net/ NaWui (Alpha) : http://stigma.dyndns.org/NaWui

Outils graphiques de configuration


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 51

VII

Configuration d'Apache

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 52

Fichiers de configuration
Fichiers modifier (apache)
Vrifier que le fichier de configuration d'Apache (httpd.conf) inclut celui qui concerne nagios.

Excution des CGI


Le fichier nagios.conf devra contenir les instructions ncessaires pour accder aux scripts CGI. Exemple de configuration apache pour les CGI de l'interface de contrle Nagios:
ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi" <Directory "/usr/lib/nagios/cgi"> Options ExecCGI AllowOverride none Order deny, allow Deny from all Allow from 127.0.0.1 Auth Name "Accs Nagios" AuthType Basic AuthUserFile "/etc/nagios/htpasswd.users" Require valid-user </Directory>

Dans cet exemple, nous n'autorisons l'accs aux CGI que depuis la machine locale.

Fichiers de configuration
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 53

Fichiers de configuration
Accs aux pages html
Le fichier de configuration apache nagios.conf devra contenir une dclaration de type Directory pointant sur le chemin rel de des fichiers html de Nagios. Exemple de configuration apache pour les pages html de l'interface de contrle Nagios :
Alias /nagios "/usr/share/nagios" <Directory "/usr/share/nagios"> Options none AllowOverride none Order deny, allow Deny from all Allow from 127.0.0.1 AuthName "Accs Nagios" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user </Directory>

Dans cet exemple, nous n'autorisons l'accs que depuis la machine locale.

Fichiers de configuration
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 54

Authentification
Nous avons spcifi que les visiteurs doivent s'authentifier pour pouvoir accder l'interface de contrle. Il est ncessaire de crer le fichier htpasswd.users qui contiendra la liste des personnes autorises accder l'interface web de Nagios. On utilisera pour cela l'utilitaire htpasswd fourni avec apache. Exemple d'utilisation de htapsswd pour le compte nagiosadmin :
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

D'autres utilisateurs peuvent tre ajouts par la suite. Pour cela, on utilisera le mme utilitaire mais sans l'option '-c'. Attention, le fichier htpasswd.users doit tre accessible en lecture par l'utilisateur apache seulement, et ferm tout autre utilisateur.

Authentification
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 55

Test de l'interface
Une fois Apache configur, testez puis rechargez sa configuration :
# apachectl -t && /etc/init.d/httpd reload

Testez enfin l'accs l'interface web de Nagios avec un navigateur quelconque. Dans notre cas, l'adresse est http://127.0.0.1/nagios/ Le navigateur devra prsenter une invitation s'authentifier. Les identifiants sont ceux qui ont t gnrs prcdemment avec l'utilitaire htpasswd. Attention : Si l'on utilise les fonctionnalits SELinux, il faudra en plus paramtrer le contexte de scurit permettant au processus httpd d'apache d'accder correctement aux CGI de Nagios.

Test de l'interface
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 56

VIII

Fichier de configuration principal

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 57

Le fichier nagios.cfg
Voici un exemple de fichier nagios.cfg, le fichier de configuration principal de Nagios. Chaque paramtre est comment sur la partie gauche.
# emplacement du fichier journal # emplacement des fichiers de # configuration d'objets log_file=/var/log/nagios/nagios.log cfg_file=/etc/nagios/checkcommands.cfg cfg_file=/etc/nagios/misccommands.cfg cfg_file=/etc/nagios/contactgroups.cfg cfg_file=/etc/nagios/dependencies.cfg cfg_file=/etc/nagios/escalations.cfg cfg_file=/etc/nagios/hostgroups.cfg cfg_file=/etc/nagios/hosts.cfg cfg_file=/etc/nagios/services.cfg cfg_file=/etc/nagios/timeperiods.cfg resource_file=/etc/nagios/resource.cfg status_file=/var/log/nagios/status.dat nagios_user=nagios nagios_group=nagios

# emplacement du fichier de # configuration des ressources # journal des tats # utilisateur et groupe du # propritaire du processus

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 58

nagios.cfg
# # # # # # # # # # # # # # # # # # utilisation de commandes externes. Certaines oprations accessibles depuis l'interface web utilisent des commandes externes (ex: redmarrage du processus nagios, modification de la file d'attente des vrifications, etc) intervalle de vrification des commandes externes. Mettre cette valeur -1 pour que nagios vrifie le fichier des commandes externes aussi souvent que possible fifo de commandes externes (doit tre prsent et accessible en criture si les commandes externes sont actives!) check_external_commands=0

command_check_interval=-1

command_file=/var/log/nagios/rw/nagios.cmd

# journal de commentaires # suspension de monitoring # fichier verrou # fichier temporaire

comment_file=/var/log/nagios/comments.dat downtime_file=/var/log/nagios/downtime.dat lock_file=/var/run/nagios.pid temp_file=/var/log/nagios/nagios.tmp

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 59

nagios.cfg
# # # # # # # rotation des journaux (dcoupage) : n = aucune, h = horaire, d = quotidienne ( minuit) w = hebdomadaire (samedi minuit), m = mensuelle (minuit du dernier jour) log_rotation_method=d

# chemin d'archivage des logs # utilisation des journaux systme # options diverses des journaux

log_archive_path=/var/log/nagios/archives use_syslog=1 log_notifications=1 log_service_retries=1 log_host_retries=1 log_event_handlers=1 log_initial_states=0 log_external_commands=1 log_passive_service_checks=1 #global_host_event_handler=somecommand #global_service_event_handler=somecommand

# permet de dfinir une commande # appele chaque changement # d'tat d'un hte ou d'un service

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 60

nagios.cfg
# # # # # # # # # # # # # mthode de calcul du dlai entre deux vrifications d'htes ou de services : n = pas de dlai (dconseill!) d = "dumb", dlai de 1 seconde s = "smart", talement optimis des vrifications x.xx = dlai de x.xx secondes dlai en minutes entre le moment o le programme dmarre et le moment o tous les services doivent avoir t vrifis service_inter_check_delay_method=s

max_service_check_spread=30

# idem mais pour les htes # # # # # # # # # # # facteur d'imbrication des vrifications des services : s = "smart" (voir plus haut) x = facteur (1 = non entrelac) nombre de vrifications en parallle (0 = pas de limite) (1 = squenciel) frqence en seconde avec laquelle nagios traite les rsultats des services qui ont t vrifis

host_inter_check_delay_method=s max_host_check_spread=30 service_interleave_factor=s

max_concurrent_checks=0 service_reaper_frequency=10

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 61

nagios.cfg
# pause entre services mis en file # d'attente (en secondes) pendant # laquelle nagios sera en sommeil # timeout pour diffrentes # commandes (en secondes) sleep_time=0.25

service_check_timeout=60 host_check_timeout=30 event_handler_timeout=30 notification_timeout=30 ocsp_timeout=5 perfdata_timeout=5 retain_state_information=1

# conservation de l'information de # statut (entre deux relances du # service) # fichier de sauvegarde du statut # frqence (en minutes) laquelle # nagios sauvegarde le status des # htes et services # # # # # dtermine si nagios positionnera diverses variables d'tat du programme partir des valeurs enregistres dans le fichier de mmorisation

state_retention_file=/var/log/nagios/retention.dat retention_update_interval=60

use_retained_program_state=0

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 62

nagios.cfg
# # # # nombre de secondes de l'unit de temps de base, utilise dans toues les dfinitons de vrification / notification interval_length=60

# vrification "agressive" (plus # lente, mais plus fiable) # vrification des services au # (re)dmarrage # accepter les vrifications # passives # notifications au (re)dmarrage # activer le gestionnaire # d'venement # # # # dtermine si nagios doit traiter ou non les donnes de performances des htes et services

use_agressive_host_checking=0 execute_service_checks=1 accept_passive_service_checks=1 enable_notifications=1 enable_event_handlers=1 process_performance_data=0

# indique dans quels fichiers les # donnes de performances doivent # tre stockes

#host_perfdata_file=/tmp/host-perfdata #service_perfdata_file=/tmp/service-perfdata

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 63

nagios.cfg
# # # # # # dtermine si nagios remonte les rsultats de contrles de service et lance la commande dfinie avec le paramtre suivant. A activer seulement en cas de supervision rpartie obsess_over_services=0

# dfinit la commande lancer # aprs chaque contrle de # service. # dtermine si la dtection des # services qui ont perdu leurs # dpendances est active # si cette option est active # nagios vrifie que les checks # passifs sont biens reus # frquence en secondes avec # laquelle la vrification # prcdente est effectue # idem mais pour les htes

#ocsp_command=somecommand

check_for_orphaned_services=0

check_service_freshness=1

freshness_check_interval=60

check_host_freshness=0 host_freshness_check_interval=60

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 64

nagios.cfg
# autoriser une criture # asynchrone des changements de # statut (meilleures performances) # # # # permet d'activer la dtection du flapping, qui survient si un hte ou un service change d'tat trop souvent aggregate_status_updates=1 status_update_interval=15 enable_flap_detection=0

# seuils de dtection du flap pour # les htes et services

low_service_flap_threshold=5.0 high_service_flap_threshold=20.0 low_host_flap_threshold=5.0 high_host_flap_threshold=20.0 date_format=us illegal_object_name_chars=`~!$%^&*|'"<>?,()= illegal_macro_output_chars=`~$&|'"<> use_regexp_matching=0

# format de date # caractres interdits pour les # objets # caractres interdits pour les # macros # # # # active ou dsactive la prise en charge des expressions rgulires dans les fichiers de configuration d'objets

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 65

nagios.cfg (fin)
# # # # # # # # si cette option est dsactive, une chane de caractres est prise en compte comme une expression rgulire uniquement si elle contient le caractre '*' ou '?'. cette option n'a d'effet que si le paramtre prcdent est activ. use_true_regexp_matching=0

# adresse email et pager de # l'administrateur # # # # # dtermine si le dmon nagios est autoris ou pas crer un core dump (sauvegarde d'image mmoire). Dconseill, part pour un dbuggage.

admin_email=nagios admin_pager=pagenagios daemon_dumps_core=0

Le fichier nagios.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 66

IX

Configuration de l'interface web

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 67

Le fichier cgi.cfg
Ce fichier configure le comportement de l'interface web de Nagios.
# emplacement du fichier de # configuration gnrale # chemin vers les fichiers html # chemin de nagios sur le serveur # web # aide contextuelle pour les cgi # commande de vrification du # status du process nagios # # # # # indique si les cgi doivent utiliser un moyen d'authentification lorsqu'elles affichent des informations sur les htes et services main_config_file=/etc/nagios/nagios.cfg physical_html_path=/usr/share/nagios url_html_path=/nagios show_context_help=0 nagios_check_command=/usr/local/nagios/libexec/check_nagios /var/log/nagios/status.dat 5 '/usr/bin/nagios' use_authentication=0

# utilisateur par dfaut # accs sytme/processus (vue) # utilisateurs ayant accs aux # informations de configuration

#default_user_name=guest authorized_for_system_information=nagiosadmin,theboss,jdoe authorized_for_configuration_information=nagiosadmin,jdoe

Le fichier cgi.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 68

cgi.cfg
# accs au systme/processus # (commandes) # accs hte/service (vue) # accs hte/service (comandes) # image de fond de la statusmap # # # # # # # aspect par dfaut de la carte 0 = coordonnes utilisateur 1 = par couche 2 = arbre ferm 3 = arbre quilibr 4 = circulaire 5 = circulaire (zones colores) en authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin,guest authorized_for_all_hosts=nagiosadmin,guest authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin statusmap_background_image=smbackground.gd2 default_statusmap_layout=5

# aspect par dfaut de la carte # wrl. 0, 2, 3 ou 4 (voir # ci-dessus)

default_statuswrl_layout=4

Le fichier cgi.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 69

cgi.cfg
# dfinition de l'environnement wrl (pour les cartes VRML) # dfinition du ping # taux de rafrachissement des CGIs # (en secondes) # optionnel, permet d'indiquer des # fichiers sons utiliser lors de # problmes sur le rseau. #statuswrl_include=myworld.wrl ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$ refresh_rate=90 #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

Le fichier cgi.cfg
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 70

Configuration des htes et services

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 71

Htes
hosts.cfg
Ce fichier contient la description de base de tous les htes du rseau, avec les machines qui leur sont lies. Exemple de dfinition gnrique d'un hte :
define host{ name Register notifications_enabled event_handler_enabled flap_detection_enabled frquemment process_perf_data cas retain_nonstatus_information } generic-host 0 ; ce n'est qu'un modele 1 ; Notification actives 1 ; Un programme peut gerer l'evennement 1 ; Dtecter des changements trop 1 ; Sauvegarde des donnes detaillees de ; performances (utilisable par rrdtool) ; Conserve les informations de status en ; de redmarrage du programme 1 ; Conserve diverses informations ; en cas de redmarrage du programme

retain_status_information 1

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 72

Htes
Exemple dhtes connects au switch sw0.pfd :
define host{ use name parents check_command max_check_attempts notification_interval notification_period notification_options } generic-host commun sw0.pfd check-host-alive 10 480 24x7 d,u,r

La directive parents liste les htes parents, gnralement des switch, routeurs, passerelles, etc. Exemple dhtes utilisant le modle commun :
define host{ use host_name alias address define host{ use host_name alias address } commun postepfd.pfd Serveur administratif postepfd.pfd

commun calliope.delphes DNS formation calliope.delphes

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 73

Htes
Exemple dhte utilisant le modle gnrique
define host{ use host_name alias address parents check_command max_check_attempts notification_interval notification_period notification_options } generic-host sw0.pfd Switch pfd/delphes sw0.pfd iris.pfd check-host-alive 10 60 24x7 d,u,r

On peut utiliser pour address un nom d'hte logique (rsolvable) ou directement une adresse IP.

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 74

Htes
hostgroups.cfg
Ce fichier dfinit des familles dhtes.
define hostgroup{ hostgroup_name alias contact_groups members } define hostgroup{ hostgroup_name alias contact_groups members } define hostgroup{ hostgroup_name alias contact_groups members } exploitation serveurs DMZ exploitation-admins servwas1.dmz,servwas2.dmz,mail.pythagore-fd.dmz

pythagore Machines Pythagore pythagore-admins postepfd.pfd,servdeb.pfd,servtp5.pfd,iris.pfd

switches Switches switch-admins sw0.pfd,switch2

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 75

Htes
hostextinfo.cfg
Ce fichier dfinit des informations dtailles sur les htes. Les icnes des htes doivent tre prsentes dans le sous-rpertoire logos du chemin des pages HTML (par dfaut /usr/share/nagios/images/logos). Il est recommand d'utiliser des images au format GD2 non compress (on peut fabriquer ces images avec l'utilitaire pngtogd2). Les autres formats supports sont JPEG, PNG et GIF. Exemples :
define hostextinfo{ name redhat icon_image redhat.png icon_image_alt station RedHat Linux statusmap_image redhat.gd2 ; icne utilise pour la carte register 0 } define hostextinfo{ name servweb icon_image globe.png icon_image_alt serveur web statusmap_image globe.gd2 register 0 } define hostextinfo{ use redhat host_name poste102.delphes,poste105.delphes,poste205.delphes,poste102.delphes }

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 76

Htes
hostextinfo.cfg (suite)
#ici,onn'utilisepasdemodle
define hostextinfo{ icon_image icon_image_alt gd2_image host_name } router40.png routeur pythagore router40.gd2 iris.pfd

#utilisationsimpledemodle
define hostextinfo{ use host_name } servweb servwas1.dmz

#ici,onsurchargel'instruction"icon_image_alt"
define hostextinfo{ use icon_image_alt host_name } servweb server web backup servwas2.dmz

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 77

Htes
escalations.cfg
Les escalades permettent de notifier diffrents contacts si un service ou un hte surveill persiste ne pas fonctionner correctement. Une notification ne sera envoye qu' partir du moment o l'tat est certifi (mode hard). Exemple pour un service :
define serviceescalation{ host_name service_description first_notification last_notification contact_groups notification_interval } linux1 Current Users 5 ; notifier partir de la 5e erreur 0 ; jusqu' rtablissement du service linux-admins,novell-admins ; qui notifier 0

Exemple pour un groupe dhtes :

define hostgroupescalation{ hostgroup_name first_notification last_notification contact_groups notification_interval }

novell-servers 2 ; notifier partir de la 2e panne 5 ; jusqu' la 5e novell-admins,nt-admins ; qui notifier 10

Il est possible de faire se chevaucher les plages d'escalades de notification

Htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 78

Services
services.cfg
Ce fichier dfinit les services vrifier pour chaque hte, en accord avec les dfinitions de commandes du fichier checkcommands.cfg. On peut rpter plusieurs fois un test avant de certifier qu'un service a chang d'tat.

Dfinition des services (exemples)


define service{ name register active_checks_enabled passive_checks_enabled parallelize_check obsess_over_service check_freshness checks voulue. notifications_enabled event_handler_enabled generic 0 1 1 1 1 0 ; ; ; ; ; ; ; Nom du modle de service. Ce n'est qu'un modle. Vrifications actives. Vrifications passives acceptes; Parallliser les tests. Pour la supervision distribue (nsca). Dans ce cas, on ne vrifie pas si les

; passifs sont reus la frqence 1 1 ; ; ; ; ; 1 1 Notifications actives Excution de commandes lors d'un changement d'tat du service. Dtection d'oscillation de l'tat. Prise en compte des donnes de ; Conservation des informations de : Conservation des autres

flap_detection_enabled 1 process_perf_data 1 performance. retain_status_information status. retain_nonstatus_information informations. }

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 79

Services
define service{ name use is_volatile check_period max_check_attempts HARD normal_check_interval retry_check_interval tentatives. contact_groups notification_interval notification_period notification_options register } commun generic 0 24x7 ; Priode de travail. 6 ; Tentatives avant de 5 1

passer

; intervalle de temps du test. ; intervalle de temps des

exploitation-admins 120 24x7 c,r 0

Exemple pour le service PING (utilise les valeurs par dfaut du modle 'commun') :
define service{ name use service_description check_command register } ping commun PING check_ping!100.0,20%!500.0,60% 0

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 80

Services
Dfinition du service rusers :
define service{ name use service_description check_command register } rusers commun Current Remote Users check_remote_users!75!150 0

Dfinition du service DNS :


define service{ name use contact_groups register } dns commun pythagore-exploitation 0

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 81

Services
Dfinition du service LPR :
#NB : cette dfinition surcharge celle de "commun" #en cas d'arrt du service, on invoque la commande restart_lp define service{ name lpr use commun service_description Printer Status check_period workhours contact_groups imprimante-admins notification_interval 960 notification_period workhours notification_options c,r check_command check_lp event_handler restart_lp register 0 }

pour le check_command, le sparateur d'arguments est le point d'exclamation

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 82

Services
Utilisation des services (exemples)
Ici on complte la dfinition du service dns :
define service{ use name service_description host_name check_command } define service{ use name service_description host_name check_command } dns dns-internet verification DNS iris.pfd check_dnsi!10.21.1.254 dns dns-pfd verification DNS pfd iris.pfd check_dnsp!10.21.1.254

Exemple d'utilisation de service sans redfinition :


define service{ use ping host_name postepfd.pfd, calliope.delphes, poste102.delphes, poste105.delphes, poste205.delphes, servport05.pfd, servport06.pfd, servdeb.pfd, servtp5.pfd, iris.pfd, servsol2.pfd, servsol3.pfd, servaix.pfd, servhp.pfd, servwas1.dmz, mail.pythagore-fd.dmz, servext.dmz, sw0.pfd, switch2, laserps.delphes, laserps.pfd }

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 83

Services
Utilisation des services (suite)
Exemple de dfinition complte de service :
define service{ use host_name service_description is_volatile check_period max_check_attempts normal_check_interval retry_check_interval contact_groups notification_interval notification_period notification_options check_command } generic servsol2.pfd /dev/hdb2 Free Space 0 24x7 3 5 1 pythagore-admins 120 24x7 w,u,c,r check_local_disk!20%!10%!/dev/hdb2

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 84

Services
serviceextinfo.cfg
Ce fichier permet d'ajouter des informations supplmentaires sur les services (icnes, fichier de commentaires...) pour l'interface web de contrle et notamment pour la carte (statusmap). Exemples :
define serviceextinfo{ host_name service_description icon_image } define serviceextinfo{ name sei1 host_name service_description icon_image } define serviceextinfo{ use sei1 service_description icon_image } define serviceextinfo{ hostgroup service_description icon_image } host9 PING ping.gif

host1,host2,host3,host4 TCP Wrappers wrappers.gif

Security Alerts security.gif novell-servers LRU Sitting Time cache.gif

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 85

Services
timeperiods.cfg
Ce fichier contient les dfinitions des alias horaires pour la planification de tches. Exemples :
define timeperiod{ timeperiod_name alias sunday monday tuesday wednesday thursday friday saturday } define timeperiod{ timeperiod_name alias monday tuesday wednesday thursday friday } 24x7 24 Heures sur 24 et 7 jours sur 7 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00

workhours Heures de travail (normal) 09:00-17:00 09:00-17:00 09:00-17:00 09:00-17:00 09:00-17:00

Services
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 86

Dpendances entre htes/services


Il s'agit d'une fonctionnalit avance de Nagios qui permet de contrler le comportement d'htes et de services en fonction du status d'autres htes et services.

Dpendances entre services


Un service peut tre associ un ou plusieurs autres services, qui peuvent appartenir des htes diffrents. Les dpendances entre services sont utilises pour arrter l'excution et/ou les notifications d'un service si les services dont il dpend sont dans un tat particulier (ok, warning, unknown ou critical). Un exemple :
ServiceA (surl'hte1) ServiceB (surl'hte2)

Optionsd'checd'excution: WARNING,UNKNOWN Optionsd'checdenotification: CRITICAL

Optionsd'checd'excution: aucune Optionsd'checdenotification: WARNING,UNKNOWN,CRITICAL

ServiceC (surl'hte3)

Dpendances entre htes/services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 87

Dpendances entre htes/services


Dans l'exemple illustr par la figure prcdente, si le service A est dans l'tat Warning ou Critical alors l'excution de la vrification du service C est reporte plus tard. Si le service A est dans l'tat Warning ou que le service B est dans l'tat Warning , Unknown ou Critical alors les notifications pour le service C sont suspendues jusqu'au prochain test. Les dpendances d'un service sont testes lors de chaque vrification du service ou envoi de notifications pour ce service, et si une des dpendances n'est pas satisfaite (les tats des services concerns sont tests) la vrification ou notification ne s'effectue pas.

Dpendances entre htes


Les dpendances entre htes fonctionnent de la mme manire qu'entre services la diffrence prs qu'elles ne fonctionnent que pour la suppression de notifications et pas pour la suppression des vrifications.

Fichier de configuration
La configuration des dpendances s'effectue dans un fichier de configuration d'objets, par exemple dans les fichiers services.cfg et hosts.cfg, ou dans un fichier spar dependencies.cfg (le nom de ces fichiers de configuration doivent apparatrent dans nagios.cfg). Chaque dpendance de service doit tre dfinie par une section servicedependency et chaque dpendance d'hte par une section hostdependency.

Dpendances entre htes/services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 88

Dpendances entre htes/services


Exemple de configuration reprenant la figure prcdente :
define servicedependency{ host_name dont service_description dependent_host_name dependent_service_description execution_failure_criteria notification_failure_criteria notification } define servicedependency{ host_name service_description dependent_host_name dependent_service_description execution_failure_criteria notification_failure_criteria critical } Hote1 ServiceA Hote3 ServiceC w,u c ; Nom de l'hte et du service ; ; ; ; ; le service dpend. Nom du service dpendant et de son hte. Critres pour lesquels la vrification ou la

; seront annuls. Hote2 ServiceB Hote3 ServiceC n w,u,c

; n = aucun critre ; warning, unknown,

A noter que les dpendances entre services ne s'hritent pas, moins que la directive inherits_parent soit spcifie et mise 1. Les dpendances entre htes ne s'hritent jamais.

Dpendances entre htes/services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 89

Dpendances entre htes/services


Exemple de dpendances entre htes :
define hostdependency{ host_name dependent_host_name execution_failure_criteria Hote2 Hote3 d,u

; d = down, u = unreachable

Dans cet exemple les notifications s'arrteront pour l'hte 3 si l'hte 2 est arrt (d, pour down ) ou inaccessible (u, pour unreachable ). Critres d'chec d'excution ou de notification: servicedependency : o = ok, w = warning, c = critical, u = unknown, n = none hostdependency : d = down, u = unreachable, r = recover Par dfaut, Nagios attend que ces critres soient certifis en mode hard, c'est dire aprs le nombre de tentatives spcifies par max_check_attempts.

Dpendances entre htes/services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 90

Dpendances de groupes
Ce qui est applicable aux htes et aux services l'est aussi aux groupes d'htes et aux groupes de services. Un groupe de service se dfini par l'entit servicegroup. Un groupe d'hte se dfinit par l'entit hostgroup . Les dpendances entre groupes d'htes sont spcifies dans des entits de type hostgroupdependency tandis que les dpendances entre groupes de services le sont dans des entits de type servicegroupdependency. Attention, les groupes de services ne sont pas supports par les anciennes versions de Nagios (1.x).

Dpendances de groupes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 91

XI

Autres fichiers de configuration

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 92

Ressources
resource.cfg
Ce fichier contient principalement des variables utilisateur ($USER1$ $USER32$) et, en option pour Nagios version 1, la configuration de l'accs une base de donnes des tats des htes.
# $USER1$ : chemin des plugins # $USER2$ : chemin des event # handlers # # # # exemple d'utilisation des variables pour stocker des mots de passes (masqus pour les CGIs) $USER1$=/usr/lib/nagios/plugins #$USER2$=/usr/lib/nagios/plugins/eventhandlers #$USER3$=someuser #$USER4$=somepassword

Ressources
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 93

Ressources
Base de donne (Nagios 1.x)
DanslesanciennesversionsdeNagios(1.x)lestatsdeshtessurveillspouvaientoptionnellementtre grsdansunebasededonnerelationnelle(pgSQLouMysql).Cen'estpluslecasdepuislaversion2.
# DG EXTENDED DATA #xeddb_host=somehost #xeddb_port=someport #xeddb_database=somedatabase #xeddb_username=someuser #xeddb_password=somepassword #xsddb_host=somehost #xsddb_port=someport #xsddb_database=somedatabase #xsddb_username=someuser #xsddb_password=somepassword #xcddb_host=somehost #xcddb_port=someport #xcddb_database=somedatabase #xcddb_username=someuser #xcddb_password=somepassword #xdddb_host=somehost #xdddb_port=someport #xdddb_database=somedatabase #xdddb_username=someuser #xdddb_password=somepassword

# DB STATUS DATA (lecture seule # pour les CGIs)

# DB COMMENT DATA (lecture seule # pour les CGIs)

# DB DOWNTIME DATA (lecture # seule pour les CGIs)

Ressources
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 94

Contacts
contactgroups.cfg
Ce fichier configure les groupes d'administrateurs contacter pour les alertes (ces personnes sont dfinies dans le fichier contacts.cfg).
define contactgroup{ contactgroup_name alias members } define contactgroup{ contactgroup_name alias members } define contactgroup{ contactgroup_name alias members } define contactgroup{ contactgroup_name alias members } exploitation-admins Administrateurs d'exploitation nagios,jdoe pythagore-admins Administrateurs Pythagore nagios switch-admins Etherswitch Administrators nagios imprimante-admins Printer Administrators nagios

Contacts
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 95

Contacts
contacts.cfg
Personnes contacter ainsi que leurs coordonnes.
define contact{ contact_name alias service_notification_period host_notification_period service_notification_options host_notification_options service_notification_commands host_notification_commands epager email pager } nagios Nagios Admin 24x7 24x7 w,u,c,r d,u,r notify-by-email,notify-by-epager host-notify-by-email,host-notify-bynagios-admin@localhost.localdomain pagenagios-admin@localhost.localdomain

Dans cet exemple, l'administrateur de Nagios est dfini avec son adresse de couriel, quand il peut tre contact, et sur quels types d'vnements il devra tre contact.

Contacts
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 96

Contacts
define contact{ contact_name alias service_notification_period host_notification_period service_notification_options host_notification_options service_notification_commands host_notification_commands email } jdoe John Doe workhours workhours c,r d,r notify-by-email host-notify-by-email jdoe@localhost.localdomain

Dans cet exemple, la notification s'effectue par courriel, mais on peut utiliser tout autre type de notification pour peu que la machine possde les programmes adquats, par exemple par messagerie instantane IRC, par SMS, ou autre. Les options de notifications host_notification_options et service_notification_options dterminent quelles raisons devront engendrer une notification. Pour les htes, les options de notification sont : d (Down), r (Recover) et u (Unreachable). Pour les services, les options de notification sont c (Critical), w (Warning), u (Unknown), o (Ok) et a (All).

Contacts
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 97

Commandes
checkcommands.cfg
Ce fichier dfinit les commandes telles qu'elles seront utilises par Nagios. Elles seront invoques dans le fichiers services.cfg Exemples simples :
define command{ command_name command_line } define command{ command_name command_line 5000.0,100% -p 1 } check_local_users $USER1$/check_users -w $ARG1$ -c $ARG2$

check-host-alive $USER1$/check_ping

-H

$HOSTADDRESS$

-w

3000.0,80%

-c

command_name est le nom du test effectuer. command_line est la commande relle utilisant un greffon situ dans le rpertoire des plugins. Si command_line possde des arguments de type $ARG1$... alors les tests de services doivent appeler la commande avec des arguments de la sorte : command_name!arg1!arg2.

Commandes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 98

Commandes
Excution de greffons distance
Grce des greffons spciaux qui ont la proprit d'excuter d'autres greffons aprs s'tre connects sur une machine distante, il est possible de sonder l'tat interne de ces machines. On peut utiliser pour cela les fonctionnalites de NRPE, de telnet ou de ssh. Exemple pour l'excution distante avec NRPE :
#vrifie les utilisateurs distants travers nrpe define command{ command_name check_remote_users command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_users }

Exemple d'un gestionnaire d'venement :


#commande pour redemarrer un serveur d'impression define command{ command_name restart-lp command_line /usr/local/nagios/libexec/eventhandlers/restart-lp $SERVICESTATE$ $STATETYPE$ $SERVICEATTEMPT$ }

Commandes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 99

Commandes
misccommands.cfg
Ce fichier contient des commandes diverses, notamment pour les notifications d'alerte, ou la journalisation de donnes supplmentaires. Exemples :
# envoi de-mail au sujet d'un service define command{ command_name notify-by-email command_line /usr/bin/printf "%b" "Alerte : $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHote: $HOSTALIAS$ ($HOSTADDRESS$) \nEtat: $SERVICESTATE$\n\nDate: $DATETIME$\n\nInfos:\n $OUTPUT$" | /bin/mail -s "[nagios]: alerte $NOTIFICATIONTYPE$" $CONTACTEMAIL$ } # broadcast TTYs au sujet d'un host (pas de destinataire particulier) define command{ command_name host-notify-by-wall command_line /usr/bin/printf "%b" "[nagios] alerte sur $HOSTNAME$ ($HOSTADDRESS$) : Etat : $HOSTSTATE$\nMessage : $OUTPUT$\nDate : $DATETIME$" | wall } # recuperation dinformations quantitatives define command{ command_name process-host-perfdata command_line /usr/bin/printf "%b" "$LASTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$STATETYPE$\t$EXECUTIONTIME$\t $OUTPUT$\t$PERFDATA$">>/usr/local/nagios/var/host-perfdata.out }

Commandes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 100

XII

Dploiement Nagios : les extensions

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 101

Introduction
Nagios peut se contenter de faire des requtes distantes vers des clients, mais certains services ne sont accessibles que de l'intrieur (exemple: le nombre d'utilisateurs connects). Selon la configuration des machines du rseau, plusieurs possibilits sont tudier : Si chaque client offre un agent SNMP, nagios peut l'utiliser pour connatre l'tat des ressources du client. Si chaque client possde un service ssh, nagios peut excuter les plugins du client via son plugin check_by_ssh et rcuprer le rsultat des tests. Dans le cas o ni snmp ni ssh ne sont prsents, on peut dployer sur les clients le serveur nrpe (Nagios Remote Plugin Execution) qui acceptera des demandes d'excution distantes. Une autre solution consiste rcuprer de manire passive les rsultats d'excution de plugins distants autonomes grce au dmon nsca (Nagios Service Check Acceptor).

Introduction
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 102

Introduction
Principe de nrpe
l'aide du plugin check_nrpe, le dmon nagios fait une requte vers un hte surveiller l'hte reoit la requte grce un dmon nrpe nrpe excute le plugin demand puis renvoit sa rponse et son code retour le plugin check_nrpe de nagios rcupre la rponse et l'analyse comme s'il s'agissait d'un plugin local

nrpe constitue une mthode de contrle dite active, c'est la machine Nagios qui est initiatrice des tests

Principe de nsca
l'hte distant excute un plugin en rponse une alerte dtecte par une commande externe le rsultat et le code retour sont envoys au serveur nagios via le plugin check_nsca nagios rcupre le code grce au dmon nsca et le traite comme un rsultat de check actif ncsa est une mthode passive, ce n'est pas la machine Nagios qui est l'origine des tests

Introduction
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 103

Utilisation de Nagios avec nrpe et nsca


Ressourceou servicelocal

Plugin

Htedistantn2
Plugin

ProcessusNagios

Plugin

Ressourceou servicelocal

Dmonnrpe

Plugin

Plugin

Fichierde commandes externes

Ressourceou servicelocal

logiciel tiercepartie

Ressourceou servicelocalpriv

Dmonnsca

Clientnsca

logiciel tiercepartie

Htesuperviseur Introduction
(c) Pythagore F.D. 2006

Htedistantn1 Pythagore F.D. Page 104

Utilisation de Nagios avec nrpe et nsca


Mode d'excution
nrpe et nsca peuvent fonctionner en standalone ou bien travers le daemon unix inetd (plus conomique en ressources dans le cas d'un usage raisonable) nrpe n'est disponible que pour les htes Linux ou Solaris (utiliser snmp dans les autres cas). nsca supporte l'authentification des agents avant l'change des donnes. Pourledploiement,nousprendronsl'exempledel'extensionnrpe.

Introduction
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 105

Installation de nrpe
La dmarche est similaire l'installation de nagios. La mise en place partir de sources ne propose pas de routine d'installation, aussi faut-il copier les fichiers (configuration et excutable) dans les emplacements ad hoc. Le support SSL est ncessaire car nrpe crypte ses connexions.

Installation des plugins


On peut se contenter d'installer seulement les plugins qui seront ncessaires sur l'hte.

Configuration inetd
Par dfaut, le dmon nrpe coute le port 5666. Pour que inetd (ou xinetd) reconnaisse le service, il faut rajouter une entre dans /etc/services :
nrpe 5666/tcp # NRPE

Installation de nrpe
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 106

Installation de nrpe
Le nom de l'entre de /etc/services doit correspondre au service dcrit dans le fichier de configuration d'inetd (ou xinetd). Un fichier d'exemple est fourni :
#/etc/xinetd.d/nrped # default: on # description: NRPE (Nagios Remote Plugin Executor) service nrpe { flags = REUSE socket_type = stream wait = no user = nagios group = nagios server = /usr/local/nagios/bin/nrpe server_args = -c /etc/nagios/nrpe.cfg --inetd log_on_failure += USERID disable = no # adresse du serveur nagios only_from = 192.176.21.3 }

Une fois l'installation termine, on peut mettre jour la configuration de xinetd en rechargeant ce service :
[root@servnagios /root]# /etc/init.d/xinetd reload

Installation de nrpe
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 107

Configuration de nrpe
Elle rside dans le fichier /usr/local/nagios/etc/nrpe.cfg Ce fichier doit tre lisible par l'utilisateur unix nagios

Configuration du dmon
Exemple de fichier nrpe.cfg :
# attention, les 5 premires directives ne sont utiles qu'en standalone : # # # # # # # # # # fichier dans lequel le demon nrpe crit son pid port TCP du serveur (>1024) adresse du serveur htes autoriss se connecter propritaire du processus groupe du processus autoriser les arguments de commandes debugage timeout de commande fichiers/rpertoires de configuration inclure pid_file=/var/run/nrpe.pid server_port=5666 server_address=192.168.1.1 allowed_hosts=127.0.0.1 nrpe_user=nagios nrpe_group=nagios dont_blame_nrpe=0 debug=0 command_timeout=60 #include=<mon_fichier> #include_dir=<mon_repertoire> #include_dir=<mon_autre_repertoire>

Configuration de nrpe
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 108

Configuration de nrpe
Configuration des commandes
Pour chaque commande qui sera appele par le plugin check_nrpe de nagios, on trouvera une entre dans le fichier nrpe.cfg. La syntaxe de configuration est semblable l'ancienne syntaxe de NetSaint :
#Syntaxe : command[<command_name>]=<command_line>

#commandessansarguments

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

#commandesutilisantdesargumentsenlignedecommande(dont_blame_nrpe=1)

command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$ command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$ command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

Exemple, si nagios excute la commande :

/usr/local/nagios/libexec/check_nrpe -H mon_hote -c

check_users

le dmon nrpe de mon_hote lancera la commande :

/usr/local/nagios/libexec/check_users -w 5 -c 10

(voir l'exemple du service check_remote_users dans le chapitre configuration de nagios)

Configuration de nrpe
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 109

Exemple de dploiement
Nrpe devra tre dploy sur un certain nombre de clients. Il serait fastidieux de rpter les mmes oprations d'installation et de configuration sur chacun d'eux. Il est donc ncessaire d'automatiser cette tche.

Cration de scripts de dploiement


On considre que les clients ont un dmon ssh en activit, qui permet le dpt et l'excution scurise de scripts. Cration d'une archive (nrped.tar.gz) contenant le dmon, elle devra contenir les fichiers suivants :
-rwx--x--x root/root -rw------root/root -rw------nagios/nagios -rwxr-xr-x root/root usr/local/nagios/bin/nrpe 1193 448 5051 138934 2003-04-23 11:07:25 /etc/init.d/nrped 2003-04-23 11:10:36 /etc/xinetd.d/nrped 2003-04-23 11:08:11 /etc/nagios/nrpe.cfg 2003-04-23 11:08:28 /

On encode cette archive en base alphanumrique pour l'inclure dans le script d'installation :
[/usr/local/nagios/sharedeploy]# uuencode nrped.tar.gz > nrped.uu

On procdera de la mme manire avec les plugins.

Exemple de dploiement
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 110

Exemple de dploiement
Script d'installation de nrpe et des plugins pour xinetd :
#!/bin/sh #install_nrped echo "cration de l'utilisateur nagios" groupadd -g 5666 nagios useradd -u 5666 -g nagios nagios echo "nrpe 5666/tcp #nrpe daemon" >> /etc/services echo "extraction du daemon..." (sed 's/^X//' << '_EOTAR_' ... archive de nrpe uuencode ... _EOTAR_ ) | uudecode -o - | gzip -d -c | tar -P -xv echo "fin de l'installation du daemon" echo "extraction des plugins..." (sed 's/^X//' << '_EOTAR_' ... archive des plugins uuencode ... _EOTAR_ ) | uudecode -o - | gzip -d -c | tar -P -xv echo "fin de l'installation des plugins" echo "fin de d'installation" /etc/init.d/xinetd reload #EOF

Exemple de dploiement
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 111

Exemple de dploiement
Script de dploiement
#!/bin/sh #deployer_nrpe if [ $# -lt 1 ]; then echo usage : `basename $0` host [host...] exit 1 fi install=/usr/local/nagios/share/deploy/install_nrped install_sc=`basename $install` for host in $* do if ping -c2 $host 2>/dev/null 1>&2; echo dploiement sur $host scp $install root@$host:. ssh root@$host ./$install_sc else echo problme avec $host fi done #EOF

then

On peut rajouter dans ce script des instructions pour patcher le fichier nrpe.cfg, et pour mettre jour le champ only_from de /etc/xinetd.d/nrped

Exemple de dploiement
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 112

XIII

Configuration de l'ordonnanceur

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 113

Mthode d'ordonnancement
Pour chaque hte ou service surveiller, nous avons dfini trois paramtres temporels du test : l'intervalle de contrle normal_check_interval, l'intervalle de tentatives retry_check_interval la priode effective du test check_period. Nagios possde aussi une configuration concernant la mthode de rpartition temporelle de tous les tests confondus. La configuration de l'ordonnanceur ce sujet est dans le fichier nagios.cfg. Nagios rpartit automatiquement l'talage des tests selon : La dfinition des trois paramtres temporels pour chaque service Le dlai de lancement des tests indpendants : inter_check_delay_method Le facteur d'entrelacement des tests de service : service_interleave_factor Le nombre maximal de tests concurrents : max_concurrent_checks La frquence de rcupration des rsultats de test : service_reaper_frequency Nagios peut lui-mme calculer certaines valeurs par dfaut mais ne peut pas deviner la charge de la machine sur laquelle il repose.

Mthode d'ordonnancement
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 114

Dlai entre chaque test


Le dlai entre chaque test indpendant est spcifi en secondes et centimes de secondes ou bien avec des valeurs par dfaut qui laisseront Nagios calculer une valeur intelligente. Il est dfini par l'option inter_check_delay_method et gnralement plac s . Paramtres de inter_check_delay_method : n : (none) aucun dlai. Lancer tous les tests en mme temps. d : (dumb) dlai d'une seconde entre chaque service diffrent. s : (smart) calcul intelligent de rpartition en fonction des normal_check_interval x.yz : dlai de x.yz secondes entre chaque test indpendant. Lancer tous les tests en mme temps peut tre problmatique si la machine du superviseur ne peut supporter la charge.

Dlai entre chaque test


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 115

Entrelacement des services


L'entrelacement des service est un facteur entier qui permet Nagios de rpartir le choix des services qui sont dans la file d'attente au lieu de les prendre les uns la suite des autres, notamment lorsqu'il a la possibilit de les lancer de manire concurrente. Il est dfini par l'option service_interleave_factor et gnralement plac s . Paramtres de service_interleave_factor : s : (smart) calcul intelligent en fonction du rapport services / htes x : (1-n) choisir un test tous les x lments de la file d'attente. La file d'attente des tests est classe selon le nom d'hte auxquels ils sont associs. Donner ce paramtre une valeur trop petite laissera donc Nagios tester la majorit des services d'un mme hte en mme temps. Le calcul de la valeur smart est gal au plafond entier du rapport du nombre total de services sur le nombre total d'htes.

Entrelacement des services


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 116

Nombre maximal de tests concurrents


Le nombre maximal de tests en concurrence permet de limiter le nombre de processus lancer en parallle et permettant ainsi de ne pas surcharger la machine de supervision. Il est dfini par l'option max_concurrent_checks et gnralement plac 0 . Paramtres de max_concurrent_checks : 0 : aucune limite 1 : pas de paralllisme n : n tests parallles au plus. Pour dterminer correctement le nombre maximal de tests en concurrence, il faut se baser sur le dlai inter_check_delay_method, la valeur du service_reaper_frequency et sur le temps moyen d'excution d'un test. On peut valuer ce nombre de manire optimiste en ajoutant 1 la partie entire du rapport du temps moyen d'excution d'un test par la valeur de dlai entre chaque test.

Nombre maximal de tests concurrents


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 117

Frquence de rcupration
Lorsque Nagios est autoris lancer des tests en parrallle, il n'attend pas la fin d'un test pour en lancer un autre. Les rsultats des tests sont donc placs dans une file que Nagios devra lire afin de pouvoir lancer les notifications et les gestionnaires d'vnements associs aux tests. Le paramtre service_reaper_frequency dtermine la priode (en secondes) de lecture de la file des rsultats des tests. Sa valeur est gnralement place 10 . Il est inutile de tenter de lire la file des rsultats plus souvent qu'il ne peut y avoir de rponses nouvelles des tests. Il faut penser que le temps de latence d'une rponse un test est trs variable selon le type de mdium (local, bus I2C, rseau), l'emplacement des htes et la complexit du service. Il est normal de prendre pour valeur de service_reaper_frequency la valeur moyenne des latences associes aux rponses des tests. Pour des services rseaux, les valeurs des dlais d'attente maximale (timeout) des fonctions gethostbyname() ou connect() des systmes Unix nous donnent un ordre de grandeur allant de 5 secondes 2 minutes environ. Dans ce cadre, Il sera donc inutile de placer service_reaper_frequency plus de 120 secondes.

Frquence de rcupration
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 118

XIV

Contrle et dbogage

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 119

Fichier de logs
Lorsque l'on a cr une configuration de supervision, il est ncessaire de contrler que les rsultats des greffons de supervision font correctement leur travail et que Nagios ne logue aucune erreur. Selon les instructions du fichier nagios.cfg, Nagios placera l'historique de ses actions et les erreurs dans des fichiers de log. Ils sont une source importante d'information sur d'ventuels problmes. Exemple de log nagios:
# tail -2 /var/log/nagios/nagios.log [1147798253] Warning: Return code of 127 for check of service 'PING' on host 'poste403.pfd11' was out of bounds. Make sure the plugin you're trying to run actually exists. [1147798253] HOST NOTIFICATION: nagios-admin;poste403.pfd11;DOWN;host-notify-byemail;(No output!)

Ici, le code d'erreur de 127 rendu par l'essai d'excution de check_ping est anormal. En effet, ce plugin doit renvoyer un code entre 0 (OK) et 3 (UNKNOWN). Dans cet exemple, Le code 127 est retourn par le systme car le plugin n'est pas l'endroit spcifi dans la configuration (erreur de chemin).

Fichier de logs
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 120

Commandes
vrifier les dclarations de commandes
Il est possible que l'on ait dclar des commandes errones qui appellent de manire incorrecte les greffons de Nagios, ou bien que nos propres extensions ne fonctionnent pas correctement. Pour vrifier qu'une commande fonctionne bien, on peut lancer le greffon manuellement avec exactement les mmes arguments que l'aurait fait Nagios partir de la configuration de la commande. Exemple de commande de test utilisant le greffon check_http :
define command{ command_name command_line $ARG3$ -c $ARG4$ } check_url $USER1$/check_http -I $HOSTADDRESS$ -p $ARG1$ -u $ARG2$ -w

Une erreur classique est une faute minime dans un nom de variable de Nagios (aussi appele macro).

Commandes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 121

Excution
vrification manuelle
Le lancement manuel d'un greffon ou toute autre extension avec les paramtres dfinis dans la configuration de Nagios nous assure qu'il fonctionne correctement ou non. La majorit des greffons de Nagios possdent une aide concise si on les appelle sans option : Exemple d'aide d'un greffon :
# /usr/lib/nagios/plugins/check_http check_http: Could not parse arguments Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>] [-w <warn time>] [-c <critical time>] [...]

Il est important de prendre l'identit de nagios pour se mettre dans son environnement. Exemple de lancement manuel correct (valeur de retour entre 0 et 2) :
# su - nagios $ cd plugins $ ./check_http -I 10.23.102.5 p 80 -u /index.html -w 1 -c 2 HTTP OK HTTP/1.1 200 OK - 445 bytes in 0.078 seconds $ echo $? 0

Il est indispensable de donner les droits d'excution des greffons corrects pour l'utilisateur nagios.

Excution
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 122

Options dtailles
Options des greffons de Nagios
Lorsqu'on appelle un greffon avec l'option -h , il affichera une aide dtaille. Exemple d'aide dtaille d'un greffon :
# /usr/lib/nagios/plugins/check_ping -h check_ping (nagios-plugins 1.4.2) 1.49 Copyright (c) 1999 Ethan Galstad <nagios@nagios.org> [...] Options: -h, --help Print detailed help screen -V, --version Print version information -4, --use-ipv4 Use IPv4 connection -6, --use-ipv6 Use IPv6 connection -H, --hostname=HOST host to ping -w, --warning=THRESHOLD warning threshold pair -c, --critical=THRESHOLD critical threshold pair -p, --packets=INTEGER number of ICMP ECHO packets to send (Default: 5) [...]

Options dtailles
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 123

Dbogage
Certains greffons peuvent tre crits en langage interprt (shell, perl,...) et peuve tre facilement tracables lors de cas d'erreurs inconues. En particulier, lorsque l'on dveloppe ses propre sondes ou autres extensions, il est intressant de pouvoir tracer son excution.

Trace d'un script shell


Pour tracer un script shell, on peut utiliser l'option x de l'interprteur : Exemple de trace d'un gestionnaire pour le systme d'impression :
# sh -x /usr/lib/nagios/plugins/eventhandlers/reload_cupsys CRITICAL SOFT [...] + case "$3" in + echo 'CUPS 3rd SOFT CRITICAL ISSUE : Reloading local cupsys daemon.' + CUPS 3rd SOFT CRITICAL ISSUE : Reloading local cupsys daemon. + /etc/init.d/cupsys reload + reload_cupsys: line 39: /etc/init.d/cupsys: Permission denied + ERR=126 + exit 126 3

Dans cet exemple, le script reload-cups a rcupr le code d'erreur de cupsys en l'affectant la variable ERR (ERR=$?) puis il a renvoy $ERR.

Dbogage
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 124

XV

Dveloppement de plugins

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 125

Normalisation
Il est possible de dvelopper des plugins pour Nagios mais ils doivent obir certaines rgles. Les lments imposs par les spcifications sont : une option standard -h ou --help pour afficher un mode d'emploi du plugin des codes retour standards OK WARNING CRITICAL UNKNOWN DEPENDENT 0 1 2 3 4 (la ressource est en bonne sant) (la ressource a un problme) (la ressource est dans un tat critique) (le plugin ne peut dterminer l'tat) (l'tat de la ressource est li une autre)

Le code DEPENDENT est particulier, optionnel et rarement gr par un plugin lui-mme.

Normalisation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 126

Moyens mis en oeuvre


Langages
Les plugins de nagios peuvent tre dvelopps en divers langages, ce qui facilite leur dveloppement : langage C Perl shell Unix ... Le choix du shell peut se justifier du fait que chaque systme possde au moins un interprteur de commandes de type sh (Bourne-shell), et qu'il s'agit du langage classique pour l'administration systme.

Utilitaires
Pour le shell, le fichier utils.sh contient : les dfinitions des codes retour (sous forme de variables STATE_xx) des fonctions standard (print_revision, support) Ce fichier devra tre sourc au dbut des plugins crits en shell. Il existe aussi une version Perl de cet utilitaire.

Moyens mis en oeuvre


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 127

Exemple de plugin
Ce plugin vrifie l'tat d'un service LPD sur un hte (non CUPS).
#!/bin/sh

#on source le fichier d'utilitaires


. `dirname $0`/utils.sh SONDE=`basename $0` usage() {

print_revision cat <<_EOF_

$SONDE queue host affiche l'tat de la file d'attente $SONDE -h ou --help affiche cette aide _EOF_ }

#duplication du canal d'erreur vers le canal standard (debug)


exec 2>&1

Exemple de plugin
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 128

Exemple de plugin (suite)


#si moins de deux arguments : on affichera l'aide
if [ $# -lt 2 ] then QUEUE=-h else QUEUE=$1 HOST=$2 fi

#analyse des arguments et statut


case $QUEUE in -help|-h) usage ;; *)

# rcupration du statut avec lpr, on substitue les LF par ";" (check_nrpe ne sait lire qu'une ligne)
STATUS=$(lpq -P$QUEUE@$HOST | head -4 | tr '\n' ';') if echo $STATUS | grep -i error >/dev/null then

Exemple de plugin
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 129

Exemple de plugin (suite)


#la chane contient "error" : warning
$ECHO "$STATUS" exit $STATE_WARNING elif echo $STATUS | grep -i "cannot open connection" >/dev/null then

#connexion impossible : statut critique


$ECHO "$STATUS" exit $STATE_CRITICAL elif echo $STATUS | grep -i Queue: >/dev/null then

#file d'attente prsente : statut ok


$ECHO "lpr OK : $STATUS" exit $STATE_OK else

#cas alternatif : statut inconnu


$ECHO "statut inconnu : $STATUS" exit $STATE_UNKNOWN

esac

fi ;;

Exemple de plugin
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 130

XVI

gestionnaires d'vennement

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 131

Tratement d'erreur
Un gestionnaire d'vnement (event-handler) est un programme optionel qui a pour but d'effectuer diveres oprations dcoulant d'une erreur, voire mme de tenter rsoudre le problme de manire automatique. Un gestionnaire d'vennement est une action associe la rponse d'un test. Il sera toujours lanc, mme si l'tat report ne change pas (valable aussi pour "OK"). Plusieurs variables (macros) dfinissant l'vnement lui seront transmises via une commande. Un gestionnaire d'vennement sera notament utile pour la rcupration sur erreur. Il s'agira dans ce cas, de dvelopper un programme procdant des oprations systmatiques et dont les effets sont matriss. On peut lier un event-handler une ressource ou un modle, auquel cas toutes les ressources concernes peuvent bnficier du tratement. Nagios permet de lier un event-handler pour un type host ou un type service.

Tratement d'erreur
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 132

Macros de type vnement


Les variables dcrivant le rsultat d'un test de ressource permettent aux gestionnaires d'vnements de ragir en consquence. Voici les valeurs que peuvent prendre ces variables : $HOSTSTATE$ = UP ou DOWN $HOSTSTATETYPE$ = SOFT ou HARD (dtermin par max_check_attempts) $HOSTATTEMPT$ = un nombre entier positif (nombre d'essais) $SERVICESTATE$ = WARNING , CRITICAL , UNKNOWN ou DEPENDENT $SERVICESTATETYPE$ = SOFT ou HARD (dtermin par max_check_attempts) $SERVICEATTEMPT$ = un nombre entier positif (nombre d'essais)

S'il s'agit de ragir sur un hte distance, l'adresse de l'hte est disponible dans $HOSTADDRESS$.

Macros de type vnement


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 133

Exemple : relancement httpd


On considre qu'un serveur web (type apache httpd) est surveill sur un host et devra tre redmarr si la sonde renvoie 3 fois de suite une ereur CRTICAL de type SOFT (juste avant de passer en HARD et de dclancher une notification). Dans la dfinition d'une ressource de type service ou de type host, l'utilisation d'un gestionnaire d'vnement se fait par l'option event_handler. Ici, il s'agit d'un service. Exemple de lisison de l'event-hdanler dans un service appel HTTP (syntaxe Nagios) :
define service { service_description host_name [...] event_handler_enabled event_handler [...} } HTTP WWW 1 handle-httpd-error

On ne peut pas transmettre d'argument personnel ( $ARG1$,...) un gestionnaire d'vnement.

Exemple : relancement httpd


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 134

Exemple : relancement httpd (suite)


Il est donc ncessaire de dclarer une commande que l'on utilsera nos fins.
define command { command_name handle-httpd-error command-line $USER1$/reload_httpd.sh $SERVICESTATETYPE$ $SERVICEATTEMPT$ }

Exemple d'appel du gestionnaire d'vennement (synaxe Nagios) :


$HOSTADDRESS$ $SERVICESTATE$

Le fichier misccommands.cfg est destin contenir une telle dfinition.

Exemple : relancement httpd


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 135

Mise en place
Dans cet exemple, le shell script reload_httpdsh dvelopper deva : n'agir que si les arguments transmis aprs le $HOSTADDRESS$ sont "CRITICAL" "SOFT" "3" se connecter alors sur 212.21.34.65 de manire transparente possder sur place les droits pour relancer le service httpd relancer le service et se dconnecter Il est possible de rpondre au problme de connexion/excution avec divers outils Unix : Exemple de prparation des cls ssh pour connexion non interactive :
$ who am i nagios $ ssh-keygen -t dsa -P "" $ scp .ssh/id_dsa.pub nagios@212.21.34.65:.ssh/authorized_keys

Exemple de commande ssh avec commande distance :

$ ssh -x 212.21.34.65 'sudo /etc/init.d/httpd restart'

Exemple de configuration /etc/sudoers sur le host 212.21.34.65 (edition avec "visudo") :


nagios ALL = NOPASSWD: /etc/init.d/httpd restart

Exemple de vrification manuelle du script aprs dveloppement :

# su - nagios $ ./handlers/reload_httpd.sh 212.21.34.65 CRITICAL SOFT 3 ACK: probleme CRITICAL SOFT 3 sur 212.21.34.65 : tentative de redemarrage.

Exemple : relancement httpd


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 136

XVII

Superviseurs redondants

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 137

Mthodes de redondance
La machine de supervision n'est pas exempte de panne. Dans un environnement critique, il est indispensable de la surveiller depuis une autre machine qui prendra le rle de superviseur de secours lorsqu'elle dtectera un tat critique de la premire.

Mthodes
Il existe plusieurs mthodes pour rendre le contrle redondant et permettre un hte Nagios de prendre le relai de la supervision si un autre tombe en panne. Il peut, en effet, y avoir deux superviseurs en action dont un seul fera des notifications, ou bien un superviseur endormi qui sera rveill en fail-over si le premier tombe. Il existe aussi pour chaque mthode plusieurs mises en uvre possibles.

Mthodes de redondance
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 138

Redondance pure
La mthode la plus simple est de dupliquer les contrles sur deux machines de supervision mais de n'activer les notifications par dfaut que sur un seul hte matre qui sera en outre surveill par le second Nagios. L'avantage de cette mthode est : une relative simplicit de mise en uvre (recopie) une duplication de l'interface de contrle (web) un suivi de l'tat des htes d'un superviseur l'autre. L'inconvnient majeur de cette mthode est la duplication des tests sur le rseau, ce qui va augmenter le trafic et doubler les requtes de service sur les htes contrls.

Redondance pure
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 139

Mode failover
On peut ne dmarrer le superviseur de secours qu'en cas de panne du premier. Il faudra, dans ce cas, utiliser l'ordonnanceur standard unix cron pour ne surveiller que l'tat du superviseur matre avec un script lanc via telnet ou ssh ou via une utilisation autonome du greffon check_nrpe. L'avantage de cette mthode est qu'il n'y a pas de duplication des tests de l'tat des htes et des services. L'inconvnient majeur est que le superviseur de secours ne connat pas l'tat initial des htes et services. Si l'on utilise de manire autonome (en ligne de commande) le greffon check_nrpe, il faudra installer un service NRPE sur l'hte matre configur avec une commande qui donnera l'tat demand (utiliser par exemple check_nagios).

Mode failover
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 140

Mise en place
Nous allons dcrir la mise en place de deux superviseurs ayant presque les mmes configurations, la diffrence, que seul l'un des deux enverra les notifications tandis que l'autre n'activera cette option que si le premier chute.

Superviseur Matre :
Le serveur matre n'a aucune connaissance du superviseur secondaire. Il est configur comme s'il tait le seul tout contrler. Aucune modification n'est prvoir sur l'hte matre.

Superviseur secondaire :
Le superviseur secondaire doit : avoir exactement la mme configuration des htes et services surveiller surveiller en plus, le serveur matre n'envoyer aucune notification par dfaut activer l'envoi de toutes les notifications si le matre ne peut plus le faire dsactiver l'envoi de toute notification si le matre reprend ses fonctions

Mise en place
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 141

Configuration du secondaire
Nous allons uniquement montrer les particularits ajouter au superviseur secondaire.

nagios.cfg
Il faut dsactiver toute notification par dfaut, mais accepter la commande externe qui permettra de changer cela en cas de besoin. Partie intressante du fichier nagios.cfg :
enable_notification=0 check_external_commands=1

hosts.cfg
Il faut dclarer l'hte du superviseur matre surveiller ainsi qu'un gestionnaire d'vennement qui rcuprera le code d'erreur du test. Partie concerne du fichier hosts.cfg :
define host { use host_name alias address check_command max_check_attempts event_handler } generic-host master Superviseur Maitre 212.24.6.14 ; adresse IP du maitre check-host-alive 2 handle-remote-nagios-host-event

Configuration du secondaire
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 142

Configuration du secondaire
services.cfg
Il faut dclarer le service de supervision de l'hte matre ainsi qu'un gestionnaire d'vnement qui rcuprera le code d'erreur. Exemple de service de test d'un daemon Nagios distant :
define service { use host_name service_description check_command max_check_attempts event_handler } generic-service master NAGIOS check-remote-nagios 2 handle-remote-nagios-service-event

misccommands.cfg
Il faut dfinir la manire d'utiliser notre gestionnaire d'vnement si panne de l'hte master .
define command{ command_name handle-remote-nagios-host-event command_line / usr/lib/nagios/plugins/eventhandlers/manage_master_host_state $HOSTSTATETYPE$ }

Exemple de commande pour handle-remote-nagios-host-event :

$HOSTSTATE$

Configuration du secondaire
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 143

Configuration du secondaire
misccommands.cfg (suite)
Il faut dfinir la manire d'utiliser notre gestionnaire d'vnement sur le service check-remote-nagios qui est effectu pour l'hte master . Exemple d'utilisation du gestionnaire d'vennement :
define command{ command_name handle-remote-nagios-service-event command_line / usr/lib/nagios/plugins/eventhandlers/manage_master_service_state $SERVICESTATETYPE$ }

$SERVICESTATE$

Maintenant, il reste crire les programmes de gestion d'vnement spcifiques notre problmatique. Leur but est de lancer la commande externe enable_notifications (script fourni avec les plugins de nagios). Le script devra lancer la commande disable_notifications lorsqu'il aura dtect le retour l'tat normal du superviseur matre.

Configuration du secondaire
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 144

Gestionnaire : panne du superviseur


Nous avons dclar deux gestionnaires : un pour la panne matrielle de la machine matre, et un autre pour la panne du daemon nagios sur le matre. Le premier script concerne la gestion de la panne de la machine.

manage_master_host_state
#!/bin/sh # On recuper la gestion des notifications seulement si le maitre est DOWN + HARD # args: HOSTSTATE puis HOSTSTATETYPE (note: on testera d'abord le type) ERR=0 case "$2" in HARD) case "$1" in DOWN) # Nous recuperons la gestion des notifications. /usr/lib/nagios/plugins/eventhandlers/enable_notifications; ERR=$? ;; UP) # Nous ne prenons plus en charge les notifications. /usr/lib/nagios/plugins/eventhandlers/disable_notifications; ERR=$? ;; *) # Inconnu. On ne fait rien. ;; esac ;; SOFT) # On attend confirmation de la panne (HARD) ;; esac exit $ERR

Gestionnaire : panne du superviseur


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 145

Gestionnaire : panne du service nagios


Si la machine matre fonctionne mais que le service nagios est hors fonction, il faut rcuprer l'erreur.

manage_master_service_state
#!/bin/sh # Recuperer la gestion des notifications seulement si le service est CRITICAL + HARD # args: SERVICESTATE et SERVICESTATETYPE (nte: on testera d'abord le type) ERR=0 case "$2" in HARD) case "$1" in CRITICAL) # On prend en charge les notifications. / usr/lib/nagios/plugins/eventhandlers/enable_notifications; ERR=$? ;; OK) # On abandonne la gestion des notifications. / usr/lib/nagios/plugins/eventhandlers/disable_notifications; ERR=$? ;; *) # On ne fait rien si WARNING, UNKNOWN ou autre. ;; esac ;; SOFT) # On attend confirmation de la panne du service. ;; *) # Inconnu. On ne fait rien. ;; esac

Gestionnaire : panne du service nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 146

exit $ERR

Gestionnaire : panne du service nagios


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 147

greffon de test du matre


Greffons check_nagios et check_by_ssh
Le greffon standard check_nagios permet de connatre l'tat du superviseur Nagios sur la machine locale. Pour l'utiliser sur une machine distante, on pourra le lancer via le greffon check_by_ssh qui l'excutera aprs avoir tabli une connexion ssh sur la machine surveiller.

Gnration de cls ssh


Afin de lancer le test via ssh, le greffon doit pouvoir s'authentifier auprs de l'hte matre sans que l'on ait taper un mot de passe de connexion. Le service ssh permet de s'authentifier au moyen d'change de cls uniques. Il est indispensable de gnrer le trousseau de cl sous utilisateur nagios . Exemple de placement d'une cl publique
# su - nagios # ssh-keygen -q -f .ssh/id_dsa -t dsa -P "" # scp .ssh/id_dsa.pub 212.24.6.14:.ssh/authorized_keys nagios@212.24.6.134's password: ********

Une fois la cl publique copie, la prochaine connexion depuis cet hte et vers l'hte du matre se fera sans mot de passe tout en restant authentifie.

greffon de test du matre


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 148

Commande du test
Le greffon check_by_ssh n'est en lui-mme incapable de tester quoi que ce soit. C'est un greffon qui demande en argument un autre greffon excuter via ssh et qui transmettra correctement son resultat.

checkcommands.cfg
Nous devons dfinir exactement la commande check-remote-nagios utilise pour le service NAGIOS dclar plus haut. Cette commande utilise les greffons check_by_ssh (en local) et check_nagios ( distance).
define command { command_name check-remote-nagios command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ '/usr/lib/nagios/plugins/check_nagios -F /var/log/nagios/status.dat -e 1 usr/bin/nagios -d /etc/nagios/nagios.cfg' }

Exemple de test nagios distant:

-C

-C /

Commande du test
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 149

XVIII

Fruity

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 150

Installation
Fruity permet, depuis un navigateur web, d'importer une configuration Nagios quelconque, de la modifier puis de l'exporter nouveau. Fruity ncessite un serveur http, une base de donne mysql et php pour fonctionner.

Tlchargement
Fruity est un logiciel libre. On peut le tlcharger cette adresse : http://fruity.sf.net Il n'existe pas encore de paquet RPM mais son installation manuelle n'est pas complexe.

Installation
Un serveur apache avec php5 devra tre install. Il faudra aussi que les modules php-pear et php-mysql soient pr-installs (c'est souvent le cas). Enfin, une base de donnes Mysql devra tre en fonction. Procdure d'installation typique :
# # # # # cd /var/www/html tar zxf fruity-xxx.tar.gz mv fruity-xxx fruity chown -R apache:apache fruity ln -s /usr/share/nagios/images/logos fruity/logos

Dans cet exemple, nous considrons que /var/www/html est la racine des documents du serveur web.

Installation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 151

Configuration
Fruity ncessite d'avoir une base mysql. On va donc crer une base appele 'fruity' et accorder tous les droits pour l'utilisateur 'fruity' (par exemple). Cration de base mysql pour fruity :
# > > > mysql -u root create database fruity; grant all on fruity.* to fruity@localhost identified by 'fruity'; quit;

Ensuite, nous crons les tables de fruity grce au script SQL fourni avec le logiciel. Cration des tables mysql pour fruity :
# mysql -u fruity passowrd=fruity fruity < /var/www/html/fruity/sqldata/fruitymysql.sql

Il ne reste plus qu' utiliser un navigateur web pour aller l'adresse http://localhost/fruity/ Pour permettre fruity de modifier la configuration de Nagios, il faudra autoriser apache crer des fichiers dans le rpertoire de configuration de Nagios. Donner l'autorit apache :
# chown -R apache /etc/nagios

Configuration
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 152

Utilisation
Tout d'abord, il faudra importer la configuration de Nagios existante. Cliquer sur import et entrer le chemin du fichier nagios.cfg . La configuration de Nagios s'effectue avec le menu thmatique qui est en haut de la page. Il reprend tous les types connus de Nagios. La configuration ou cration d'un service se fait en choisissant tout d'abord un hte. Une fois le service cr, on peut l'associer d'autres htes en les configurant un par un. Une fois la configuration termine, on l'exporte : cliquer sur export puis YES. Des fichiers de sauvegarde seront aussi crs avec l'extension .backup . Attention, une configuration incomplte d'un hte ou service ne sera pas vrifie l'export et Nagios refusera de redmarrer dans ce cas. Pour que Nagios prenne en compte sa nouvelle configuration, on lui demande de la recharger. Vrification d'une configuration Nagios :
# nagios -v /etc/nagios/nagios.cfg

Rechargement :
# /etc/init.d/nagios reload

Utilisation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 153

XIX

Cacti - Introduction

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 154

Cacti
Prsentation
Cacti est un outil de mesure des ressources rseau bas sur RRDTool (Round Robin Database) et utilisant SNMP. Cacti n'interprte pas les rsultats obtenus et n'est donc pas destin alerter quiconque en temps rel propos de problmes ventuels. Cacti est crit en PHP et ncessite un serveur web pour tre utilis. Il stocke toutes ses informations dans une base MySQL. Sa sonde SNMP standard se lance via l'odronnanceur Cron. Cacti est dvelopp et distribu sous licence GPL.

Fonctionnalits
En plus du stockage d'informations et de la cration de graphiques, voici les fonctionnalits de Cacti : Utilise diffrentes sources d'informations (scripts, fichiers, etc) Utilise des templates Organise les graphes de diffrentes manires (dont une sous forme d'arbre) Gestion des utilisateurs et des permissions (vues, cration de graphe, etc...)

Cacti
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 155

XX

Installation

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 156

Prrequis
Cacti est disponible sur systmes Windows, GNU/Linux, OpenBSD, NetBSD et FreeBSD. Les lments suivants doivent tre installs : PHP Apache MySQL RRDTool net-snmp Nous allons dtailler l'installation de RRDTool, net-snmp et Cacti sur Linux.

RRDTool
Vous pouvez effectuer l'installation depuis un paquet ou depuis les sources. Pour l'installation depuis les sources, on rcupre une archive TAR :
$ $ $ $ tar xzf rrdtool-<version>.tar.gz cd rrdtool-<version> ./configure --prefix=/usr make

puis, en root :

# make install

Prrequis
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 157

Prrequis
Outils SNMP
Le paquet se nomme net-snmp , et l'installation depuis les sources se droule de la manire suivante :
$ tar xzf net-snmp-<version>.tar.gz $ cd net-snmp-<version> $ ./configure prefix=/usr

Les informations suivantes doivent alors tre renseignes : Default SNMP Version : laisser la valeur par dfaut (3) System Contact Information : l'adresse mail de l'administrateur System Location : lieu o se situe le systme Logfile Location : laisser par dfaut /var/log/snmpd.log snmpd persistent storage location : laisser par dfaut /var/net-snmp
$ make

Continuer avec la commande : puis, en root :

# make install

Prrequis
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 158

Installation
Paquet
L'installation depuis les paquets ( urpmi cacti , apt-get install cacti ...) installe dans /var/www les fichiers qui vont tre utiliss par Apache et dans /usr/share/cacti les autres fichiers. Un fichier est ajout la configuration d'Apache : /etc/httpd/conf.d/cacti.conf (en gnral). Ceci permet l'accs Cacti via l'url http://<adresse_serveur_web>/cacti . Les versions packages crent un utilisateur systme cacti. Il faudra s'assurer que cet utilisateur aura le droit d'crire dans le rpertoire /var/www/cacti/rra.

Installation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 159

Installation
Sources
Pour installer Cacti depuis les sources, tlchargez la dernire version de Cacti puis dcompressez l'archive dans le rpertoire racine d'Apache (en gnral /var/www ou /var/www/html) :
# useradd -g apache -d /var/www/cacti -m cacti # tar xzf cacti-<version>.tar.gz # cp cacti-<version>/* /var/www/cacti && chown -R apache:apache /var/www/cacti

Ajouter dans le fichier de configuration d'Apache httpd.conf les lignes suivantes :


Alias /cacti /var/www/cacti <Directory /var/www/cacti> Allow from all </Directory>

Puis recharger la configuration d'Apache :


service httpd reload

Installation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 160

Installation
Configuration de la base de donnes
Il est ncessaire de crer une base de donnes nomme cacti :
$ mysql -u root > create database cacti; > quit

Importer ensuite dans la base cacti le contenu de cacti.sql, fichier prsent dans le rpertoire / usr/share/cacti/cacti.sql ou /var/www/cacti selon la mthode d'installation :
$ mysql cacti < cacti.sql

Cacti s'identifie MySQL sous le nom cactiuser (valeur dans /var/www/cact/include/config.php). Il faut donc lui donner toutes les permissions pour la base de donnes cacti :
$ mysql -u root > grant all on cacti.* to cactiuser@localhost identified by 'motdepasse_cacti'; > quit

Modifiez le fichier de configuration de Cacti /var/www/cacti/include/config.php (ou /etc/cacti.conf) pour mettre le mot de passe que vous avez attribu l'utilisateur cactiuser :
$database_password = "motdepasse_cacti";

Installation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 161

Installation
Configuration des droits
Lors d'une installation partir des sources, attribuer les rpertoire rra/ et log/ l'utilisateur apropri :
$ cd /var/www/cacti $ chown -R apache:apache log/ rra/ #logs gnrs par les scripts php (user apache) $ chown -R cacti rra/ #bases rrd gnres par poller.php (user cacti)

Ajouter (ou vrifier) la ligne suivante au fichier /etc/crontab pour lancer la sonde toutes les 5 minutes :
*/5 * * * * cacti php /var/www/cacti/poller.php > /dev/null 2>&1

Interface web
Accder l'url http://localhost/cacti l'aide d'un navigateur. Si l'installation s'est bien droule, il restera quelques tapes faire via linterface web. Ensuite se connecter avec l'identifiant admin et le mot de passe admin pour accder la page d'accueil de Cacti. Immdiatement, Cacti vous demandera de donner un nouveau mot de passe pour l'utilisateur 'admin'.

Installation
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 162

XXI

Utilisation de Cacti

Pythagore F.D.
(c) Pythagore F.D. 2006

Page 163

Page d'accueil
La page d'accueil de Cacti est normalement accessible par l'url http://<adresse_serveur_web>/cacti . Deux onglets sont disponibles dans la partie suprieure de l'interface de Cacti : l'onglet console permet d'accder au menu comportant toutes les actions ralisables avec Cacti, et l'onglet graphs permet de visualiser les graphiques qui ont t configurs.

Page d'accueil
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 164

Les graphiques
Quasiment tout ce qu'on trouve dans Cacti est li un graphique. Il est possible tout moment d'afficher la liste de tous les graphiques disponibles en cliquant sur Graph Management dans la partie Management du menu. Les graphiques de Cacti sont gnrs par rrdtool. L'abcisse d'un graphique reprsente toujours une plage de temps. Cacti montre plusieurs graphes par ressource: horaire, journe, mois et anne. l'ordonne d'un graphe est automatiquement mise la bonne chelle en fonction des valeurs collectes. Les graphiques de Cacti sont trs proches de ceux qu'on peut obtenir manuellement avec RRDTool, Cacti permettant de crer facilement ces graphiques sans que l'utilisateur ait besoin de connatre parfaitement le fonctionnement de RRDTool.

Les graphiques
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 165

Les htes
Avant toute chose, il est ncessaire d'indiquer Cacti les htes superviser. Le plus simple est que ces htes soient accessibles par SNMP. Dans Cacti, un hte est appel device .

Lister les htes


Cliquer sur Devices dans la partie Management du menu permet d'accder la liste des htes avec leur tat. Il est possible de filtrer cette liste l'aide de la barre situe en haut de page : Type pour n'afficher par exemple que les postes Windows, Status pour ne garder que les htes qui sont dans un tat particulier, Search pour effectuer une recherche d'aprs la descrition et le nom d'hte.

Actions sur les htes


Les actions possibles se trouvent dans la liste droulante situe en bas droite. En cliquant sur le bouton Go ct de la liste, l'action sera effectue pour tous les htes que l'on a cochs. Pour crer un nouvel hte surveiller, cliquer sur Add en haut droite de la page.

Les htes
(c) Pythagore F.D. 2006

Pythagore F.D.

Page 166

Cration d'un hte


Seuls les champs Description et Hostname (qui doit tre le nom d'hte ou l'adresse IP) doivent obligatoirement tre remplis pour crer un nouvel hte. Choisissez le Host Template qui correspond l'hte ajouter, en sachant que le modle Generic SNMP-enabled Host peut tre choisi dans la plupart des cas, ou none si SNMP n'est pas utilis.

Options snmp
SNMP Community : communaut SNMP, pour la lecture. SNMP Version : version du protocole SNMP, utiliser la version 1 (sauf cas particulier) SNMP Port : port UDP du serveur SNMP SNMP Timeout : temps d'attente maximum en millisecondes d'une rponse SNMP

Aprs avoir confirm la cration de l'hte, diverses statistiques sont affiches en haut de page (rsum de l'OID .1.3.6.1.2.1 de l'hte SNMP), sinon le message SNMP error indique un problme SNMP entre Cacti et l'hte. Il faudra configurer les agents SNMP pour autoriser la lecture de leurs informations par Cacti. La configuration se fait difframent selon que l'on travaille avec SNMP v1, v2c ou v3.

Cration d'un hte


(c) Pythagore F.D. 2006

Pythagore F.D.

Page 167

Configuration basique d'un agent SNMP v1


Cacti devra tre autoris lire le maximum d'informations sur les ressources des htes surveills. Voici un exemple de configuration du daemon ucd-snmp dans le fichier /etc/snmp/smpd.conf :
# snmpd.conf pour l'agent ucd-snmp [voir la page man snmpd.conf(5)] syslocation Labo (Salle 3) syscontact Root (root@machine.lan) # 1. communaute / contexte de securite com2sec cacti 192.168.0.42 cactus com2sec normal 192.168.0.0/24 public com2sec anonyme default public # 2. politique / groupe (remplacer v1 par v2c pour utiliser le protocole v2c) # name model class group intrus v1 anonyme group invite v1 normal group special v1 cacti # 3. vues accessibles # name inc/excl subtree view vuesysteme included .1.3.6.1.2.1.1 view vuesysteme included .1.3.6.1.2.1.25.1.1 view vuetotale included .1 # 4. contrle d'acces # group context model level prefix read write notif access intrus "" any noauth exact none none none access invite "" any noauth exact vuesysteme none none access special "" any noauth exact vuetotale none none # 5. support des cartes bcm5820 pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

Configuration basique d'un agent SNMP v1 Pythagore F.D.


(c) Pythagore F.D. 2006

Page 168

Table des matires


SUPERVISION:DFINITIONS..........................................................................2 Supervision.......................................................................................... ....................3 Exemple pratique............................................................................... ....................4 Services rseau.......................................................................................... ..............5 SUPERVISION.........................................................................................................6 Objectifs...................................................................................................... ..............7 Techniques........................................................................................... ....................8 PRSENTATIONNAGIOS...................................................................................9 Gnralits......................................................................................... ....................10 Prsentation.......................................................................................... .................11 Fonctionnalits standards....................................................................... ............12 Les plugins................................................................................................. ............13 Les extensions.............................................................................. .........................16 INSTALLATIONDENAGIOS..........................................................................17 Introduction.................................................................................................. .........18 Installation et mise jour de Nagios.................................................... ............19 Installation des plugins.................................................................... ...................23 Dmarrage de Nagios.................................................................. .......................25 UTILISATIONDENAGIOS..............................................................................26 Page d'accueil......................................................................................... ...............27 Les CGI................................................................................................. ..................28 Vue d'ensemble de l'tat du rseau.......................................... .......................29 Dtail des htes et services.................................................... ............................30 Carte du rseau........................................................................... .........................31 Dtection des pannes rseau.................................................................. ............33 Recherche d'un hte et commentaires........................................... ..................34 Arrt d'htes et de services...................................................... .........................35 Processus Nagios, performances............................................................... ........36 Liste des vrifications programmes............................................ ...................37 Rapports........................................................................................... ......................38 Lecture de la configuration.............................................................. ..................42 CONFIGURATIONDENAGIOS.....................................................................43 Configuration de Nagios............................................................ ........................44 Les fichiers de configuration...................................................................... ........46 Principe des modles de configuration..................................... ......................49 Outils graphiques de configuration............................................... ..................51 CONFIGURATIOND'APACHE........................................................................52 Fichiers de configuration...................................................................... ..............53 Authentification...................................................................... .............................55 Test de l'interface........................................................................... ......................56 FICHIERDECONFIGURATIONPRINCIPAL..............................................57 Le fichier nagios.cfg............................................................................. ................58 CONFIGURATIONDEL'INTERFACEWEB..................................................67 Le fichier cgi.cfg....................................................................... ............................68 CONFIGURATIONDESHTESETSERVICES...........................................71 Htes................................................................................................... ....................72 Services................................................................................................... ................79 Dpendances entre htes/services..................................................... ..............87 Dpendances de groupes............................................................................ ........91 AUTRESFICHIERSDECONFIGURATION..................................................92 Ressources.................................................................................................. ............93 Contacts.................................................................................................... ..............95 Commandes............................................................................ ..............................98 DPLOIEMENTNAGIOS: LESEXTENSIONS..............................................................................................101 Introduction.......................................................................... ..............................102 Installation de nrpe......................................................................... ...................106 Configuration de nrpe.......................................................... ............................108 Exemple de dploiement....................................................................... ...........110 CONFIGURATIONDEL'ORDONNANCEUR............................................113 Mthode d'ordonnancement.................................................................... ........114 Dlai entre chaque test........................................................................... ...........115 Entrelacement des services........................................................... ...................116 Nombre maximal de tests concurrents................................. ........................117 Frquence de rcupration................................................... ...........................118 CONTR LEETDBOGAGE...........................................................................119

Fichier de logs..................................................................................... ................120 Commandes............................................................................. ...........................121 Excution.................................................................................. ...........................122 Options dtailles................................................................................... ............123 Dbogage............................................................................... ..............................124 DVELOPPEMENTDEPLUGINS..................................................................125 Normalisation........................................................................... ..........................126 Moyens mis en oeuvre................................................................ ......................127 Exemple de plugin................................................................................. ............128 GESTIONNAIRESD'VENNEMENT...........................................................131 Tratement d'erreur......................................................................... ..................132 Macros de type vnement............................................................ ..................133 Exemple : relancement httpd.............................................. ............................134 SUPERVISEURSREDONDANTS...................................................................137 Mthodes de redondance............................................................... ..................138 Redondance pure....................................................................... ........................139 Mode failover.................................................................................... ..................140 Mise en place................................................................................... ....................141 Configuration du secondaire........................................................... ................142

Gestionnaire : panne du superviseur................................................ .............145 Gestionnaire : panne du service nagios.................................... .....................146 greffon de test du matre..................................................... ............................148 Commande du test.................................................................... ........................149 FRUITY...................................................................................................................150 Installation................................................................................... ........................151 Configuration.......................................................................................... ............152 Utilisation.............................................................................. ..............................153 CACTIINTRODUCTION...............................................................................154 Cacti................................................................................................ ......................155 INSTALLATION..................................................................................................156 Prrequis............................................................................................ ..................157 Installation................................................................................... ........................159 UTILISATIONDECACTI.................................................................................163 Page d'accueil...................................................................................... ................164 Les graphiques.......................................................................................... ..........165 Les htes.................................................................................................. .............166 Cration d'un hte..................................................................... ........................167 Configuration basique d'un agent SNMP v1.......................... .....................168

Configuration basique d'un agent SNMP v1 Pythagore F.D.


(c) Pythagore F.D. 2006

Page 170

Vous aimerez peut-être aussi