- Accueil > Réseau > Nagios
Titre Nagios

I)Présentation du programme de supervision
1.Nagios
2.Oreon
3.NaReTo
II)Mise en place du serveur de supervision
1.Installation d'un serveur Apache
2.Préliminaies
3.Installation de Nagios
4.Installation de Oreon
5.Installation de NaReTo
III)Configuration du serveur de supervision
1.Création d'un groupe d'utilisateur
2.Création d'un utilisateur
3.Création de groupe de machine
4.Ajout des machines
5.Ajout des services
6.Ajout des notifications par e-mail
7.Création de compte limité avec NaReTo


Premier sous-titre

Nagios est un programme open source, anglais, sous Linux permettant de surveiller un parc informatique plus ou moins grand. Cependant sa configuration est très minutieuse et compliquée, c'est pour cela que l'on se servira d'Oreon, qui n'est autre qu'un " add on " écrit en php/mysql et qui permettra de générer les fichiers de configuration de Nagios avec une plus grande simplicité. De plus Nagios ne gère pas les comptes utilisateurs limités, c'est donc pour cette raison que nous appliquerons le programme NaReTo (Nagios reporting tools) qui va gérer plusieurs comptes restreints et ainsi répartir le parc de supervision sur plusieurs utilisateurs.

1. Nagios

Logo de Nagios


image de Nagios 1

Lors de notre stage nous utiliserons la version 2.9 de Nagios qui est la dernière version stable, la version 3 n'existant qu'en bêta.

Nagios permet de superviser tout type de matériels réseaux (switchs, routeurs, serveur...), il est également muni d'un visionneur de service associé à un matériel donné. On peut donc regarder tout type de service réseau (ftp, ping, mail, http...) et matériel (charge CPU, taille mémoire...) d'un parc informatique.

L'organisation de ces services et machines est très bien hiérarchisé puisque l'on peut déclarer une machine comme machine parente à une autre. Et l'on peut aussi définir un groupe de machine, ainsi on peut créer par exemple un groupe de machine qui s'appelle " Routeur " (contenant toutes les machines routeurs) ou bien un groupe qui s'appelle " Paris " (contenant toutes les machines de tout genre qui se trouvent à Paris). Il faut savoir qu'une seule machine peut appartenir à plusieurs groupes. Ainsi nous avons une architecture totalement adaptée à nos besoins et bien définie.

Avec ce que je viens de vous montrer, on constate que l'on peut superviser une multitude de machines de façon organisée afin de retrouver plus facilement l'une d'entre elle. Il faut savoir que toutes ces configurations précédemment citées se trouvent dans des fichiers de configuration qui seront expliqués plus en détails dans la partie suivante lors de la présentation de cet outil.

Nagios est également muni d'un outil de notification, afin d'alerter les administrateurs réseaux à l'aide d'e-mail, SMS... Ces alertes nous permettent de savoir en temps réel tous les problèmes liés aux machines que Nagios doit superviser, (exemple: si une machine ne répond plus, si un service associé à une machine ne fonctionne plus, si la charge CPU d'une machine est trop élevée, si le trafic sur une partie du réseau est trop importante...) Moyennant une bonne configuration d'un client de messagerie ou bien d'un dispositif d'émission SMS, les administrateurs d'un réseaux peuvent être à tout moment sollicités en temps réel afin de régler le plus vite possible un problème sur leur propre réseau. Nagios gère plusieurs utilisateurs au niveau des notifications (uniquement), grâce à cela, Nagios peut donc alerter une multitude d'utilisateurs en fonction des équipements qui leurs sont appropriés.

Après l'authentification via une interface Web, Nagios est exploitable de n'importe où, à condition que le réseau le permette. C'est la raison pour laquelle Nagios utilise un serveur apache préalablement installé sur le serveur. Il faut donc configurer un serveur apache afin qu'il puisse faire un alias sur les fichier Web de Nagios, cette configuration sera expliquée dans la partie suivante. Ainsi lorsque nous souhaitons nous connecter sur l'interface Web de Nagios, il nous suffira simplement de taper "http://ipdelamachine/nagios/", puis de renseigner les champs d'authentification pour ainsi obtenir ceci:

image de Nagios 1

Le menu présenté en noir sur la gauche nous permet en quelques clics de voir les différents états du réseau en temps réel. Nagios intègre donc dans ce menu, un visualisateur global des problèmes du réseau, on peut également aller voir en détails le problème en question qui est lié à une machine ou un service. Ce menu intègre également une visualisation simplifiée du réseau sous forme de carte. Mais cette représentation n'est pas très pratique pour un réseau à grande échelle.

Cependant, Nagios ne gère pas les comptes utilisateurs limités, ainsi n'importe quel utilisateur disposerait d'un accès total au réseau, ce qui serait gênant d'un point de vue confidentialité pour la lisibilité du réseau. Il est donc préférable qu'un utilisateur particulier ne soit concerné que par sa propre partie.
De plus comme nous l'avons expliqué ci-dessus, les configurations de Nagios ne sont pas facilement paramétrables.
Donc pour palier ces deux problèmes, nous allons mettre en place par dessus l'outil Nagios, les outils " Oreon " et " NaReTo ". C'est ce que je me propose de vous présenter brièvement ci- dessous.

Schéma du principe de fonctionnement de l'outil Nagios


image de Nagios 1

Sur ce schéma, j'ai représenté le principe de l'outil Nagios pour un petit réseau muni de deux serveurs et de 4 postes clients. Ces 4 clients souhaitent surveiller les services 1 et 2, ils utilisent donc l'outil de supervision Nagios comme indiqué ci-dessus. En effet grâce à sa fonction de notification, le serveur de supervision va envoyer par le biais du serveur de messagerie des e-mails de notifications concernant les états des deux services à surveiller en temps réel.

2. Oreon

Logo d'Oreon


image de Nagios 1

Lors du stage, nous avons choisi d'installer la version 1.3.3 de Oreon qui est l'une des dernières versions disponibles sur le site www.oreon-project.org. Ayant visité l'entreprise " BULL " qui propose des services dans les domaines de l'informatique. Aux niveaux de stockage, serveur, logiciel, sécurité, cette entreprise nous a recommandé vivement d'utiliser Oreon.

Tout d'abord, Oreon est un utilitaire qui s'installe par dessus Nagios, ce qui veut dire que l'installation de Nagios est indispensable au bon fonctionnement d'Oreon. Il est entièrement libre tout comme Nagios et intègre la langue française dans son interface. Comme je l'ai expliqué précédemment ce programme a pour première fonction de faciliter la saisie des fichiers de configurations de Nagios. Pour cela, Oreon se présente de la même façon de que Nagios, c'est à dire via une interface Web, on se rend sur http://ipdelamachine/oreon/ et on peut reprendre tous les menus de Nagios sous une forme plus conviviale et fonctionnelle.
Oreon se sert d'une base de données afin de stocker toutes les informations provenant de toutes les machines et ainsi, nous pouvons visionner l'état d'une machine ou d'un service sur une période plus ou moins importante. Par exemple, nous pouvons visionner le trafic réseau qu'il y a eu sur une ligne durant un mois.
Oreon intègre également quelques petits outils comme par exemple les vues graphiques. Nous obtenons ainsi des graphiques sur les services ou états des machines.
Le principe de base d'Oreon est tout d'abord de nous fournir une interface conviviale nous permettant ainsi de configurer tous les fichiers de configuration de Nagios. Voici à quoi ressemble l'interface d'Orion

image de Nagios 1

Nous pouvons ainsi cliquer sur l'onglet de configuration et configurer rapidement Nagios grâce à cet outil. Nous verrons plus en détail cette configuration dans la partie suivante.

Afin de mieux voir le but premier d'Oreon, j'ai schématisé ceci:

Schéma du principe de fonctionnement d'Oreon


image de Nagios 1

Ici nous comprenons clairement qu'Oreon va d'abord créer des fichiers de configurations facilement grâce à son interface Web aisée, puis il va les stocker et les exporter vers l'outil de supervision Nagios afin qu'il devienne fonctionnel.

3. NaReTo

Logo de NaReTo


image de Nagios 1

Schéma du principe de fonctionnement de NaReTo


image de Nagios 1

Lors du stage, nous avons choisi d'installer la version 1.0.8 de NaReTo qui est l'une des dernières versions disponibles sur le site officiel.

NaReTo (ou bien Nagios Reporting Tools) est un utilitaire qui permet d'exploiter Nagios d'un point de vue client. Grâce à cet outil, on peut visualiser les machines et services configurés sous Nagios et exploiter ces données à plusieurs niveaux.
L'avantage principal de NaReTo réside dans sa gestion des comptes utilisateurs limités. Pour cela, on définit une arborescence du réseau avec les machine créées sous Nagios à l'aide d'Oreon, puis nous attribuons un morceau de cette arborescence pour un utilisateur concerné par ce même morceau.
NaReTo va donc être constitué d'un utilisateur principal afin de créer l'arborescence complète du réseau et de nouveaux utilisateurs en leurs attribuant une partie du réseau. Il sera également constitué de plusieurs utilisateurs limités ayant uniquement accès à leurs besoin sans pour autant pouvoir visualiser la totalité du réseau.
Il est bon de noté que chaque utilisateur créé doit figuré dans les utilisateurs de Nagios, sinon il y aura une incohérence lors de l'authentification. La raison est due au fait que NaReTo va aller vérifier les contacts de Nagios et nous pourrons modifier uniquement les accès login et mots de passe sur les comptes existants sur l'outil principal.
Tout comme les outils précédemment cités, NaReTo utilise un serveur Web afin de fournir une interface conviviale en nous connectant sur http://ipdelamachine/nareto/ . En voici un aperçu:

Interface Web de l'accueil NaReTo


image de Nagios 1

Au travers de cette interface, nous pouvons distinguer plusieurs onglets dans lesquels nous avons le choix de visualiser des machines ou services en temps réel, les problèmes rencontrés sur le réseau, le compte rendu de l'ensemble du réseau, la configuration, l'accès à Oreon ou Nagios et un utilitaire graphique. Selon l'utilisateur, ce menu est plus ou moins complet, ici, nous voyons l'accès NaReTo à un utilisateur possédant la totalité des droits.

C'est donc avec ces trois outils indispensables que l'on pourra superviser le réseau des hôpitaux. Pour résumer voici un petit schéma regroupant la totalité des outils.

Schéma global de Nagios+Oreon+NaReTo


image de Nagios 1

Deuxieme sous-titre

Dans cette partie nous rentrerons dans le vif du sujet et nous verrons les procédures que nous avons suivies afin de monter notre serveur. Nous verrons tout d'abord l'installation du système d'exploitation, puis l'installation des différents services tel que " web " ou " mysql " de manière à ce qu'ils s'exécutent " proprement " au démarrage de la machine. C'est ensuite que nous verrons l'installation des 3 outils nous servant à superviser notre réseau.
Dans cette partie, il sera relevé les différents problèmes que nous avons rencontrés durant toute cette mise en place.
Au début de notre stage, et avant toutes installations finales, nous avons pu tester et étudier les outils de supervision présentés antérieurement. Lorsque nous configurerons ou installerons un programme quel qu'il soit, nous nous servirons d'un petit utilitaire qui s'appelle " Putty " et qui permet à une machine distante de type " Windows " de se connecter sur une machine linux en ssh.
Ici, seule l'installation du système d'exploitation s'effectuera sur la machine directement, tout le reste sera fait à distance en ligne de commande Unix. Voici comment se présente Putty:

Il nous suffit simplement de renseigner les champs Host Name (or IP address) de la machine à joindre, le numéro de port sur lequel on veut se connecter.

Nous accédons ensuite à une fenêtre se présentant comme un terminal sur la machine distante.

C'est donc par cette méthode que nous effectuerons tout changement sur la machine à installer et configurer.

Ecran de démarrage de Putty


image de Nagios 1

Lors de notre stage, nous avons été à plusieurs reprises contraints d'aller télécharger des fichiers sur Internet. Etant donné que la machine à configurer est dépourvue de connexion Internet et que nous faisons toutes les manipulations à distance, nous nous sommes servis d'un petit utilitaire qui s'installe sur Windows et qui s'appelle WinSCP (annexe C). Cet utilitaire permet de faire des transferts d'une machine Windows à une machine Unix, voici comment il se présente:

Interface de WinSCP


image de Nagios 1

Sur cette interface, vous pouvez voir à gauche le contenu de votre machine Windows local, puis à droite, le contenu de votre machine Unix distante. Par un simple glisser-coller, on déplace les fichiers d'un système à l'autre.

Tout nos tests ont été effectués sur un serveur de tests et sur des machines virtuelles, c'est la raison pour laquelle je parlerai de plusieurs machines lorsque je mentionnerai des tests, des problèmes, des solutions...

1. Installation d'un serveur Apache

Dans la mise en place de notre serveur de supervision, nous avons décidé d'installer un serveur Web " Apache dans sa version 2 ". Son installation est très simple et nous n'avons pas rencontré de problème particulier. La méthode d'installation est simple, il suffit de récupérer le package de Apache sur le site http://www.apachefrance.com/ puis de le transférer à l'aide de WinSCP sur le serveur de supervision. Suite à cela, nous désarchivons le package à l'aide de la commande TAR suivi de ses options. Puis nous suivons ce qui est noté dans le fichier README prévu à cet effet. Une fois le serveur installé, il ne nous reste plus qu'à tester si il fonctionne bien en local et sur le réseau, pour cela, il nous suffit de taper http://127.0.0.1/ en local et http://ipdelamachine/ sur le réseau. N'ayant rencontré aucun problème sur cette installation, je n'ai pas grand chose à ajouter sinon un fichier de configuration du serveur apache à bien configurer pour le réseau considéré, ce fichier se trouve dans " /usr/local/apache/etc/httpd/conf/httpd.conf " . Ce fichier sert en l'occurrence à regarder où se trouve les fichiers relatifs à l'affichage des pages Web, aux alias, aux authentifications utilisées, etc...
Maintenant que le serveur Web est installé, nous pouvons vérifier que notre serveur dispose bien de toutes les dépendances et autres outils nécessaires au bon fonctionnement des programmes de supervision.

2. Préliminaires

Nous voici au coeur de l'installation, tout d'abord il nous a fallu vérifier si nous avions les librairies, et dépendances suivantes pour continuer notre installation de façon à ce que Nagios et Oreon fonctionne correctement:

- gd-devel
- mysql-devel
- fontcongif-devel
- gcc-c++
(attention, nous avons remarqué que ce package était lui aussi dépendant d'autres packages, il nous a donc fallu corrigé cette anomalie.)

Lors de l'installation, nous avons rencontré des problèmes pour installer les logiciels nécessaires à Oreon, certains packages étant indispensables :

image de Nagios 1

Ceux qui sont installés par défaut avec le système d exploitation, ne sont pas à jour :

image de Nagios 1

Pour résoudre ce type de problème, il est indispensable de suivre l ordre d installation des packages comme ci-dessous. Nous allons donc installer des librairies supplémentaires pour nous permettre de mettre à jour les logiciels indispensables, avant d installer les logiciels pour Oreon.

Tout d'abord on a désinstallé les packages posant problème à l'aide d'un rpm -ev (e pour erase et v pour verbose):

rpm-ev php-devel.vieilleversion.rpm

On a fait de même avec tous les rpm en rapport avec php.
Ensuite nous avons réinstallé ces packages dans leur version la plus récente à l'aide d'un " rpm -iv " (i pour installation et v pour verbose), cette manipulation était nécessaire car nous avons remarqué que si ces packages n'étaient pas à jour, le programme de supervision rencontrait quelques

conflits. Oreon nous a demandé plus de dépendances que Nagios, il est indispensable de ne pas en oublier une seule:

- rrdtool
- rrdtool-perl
- perl-GD
- net-snmp-perl
- perl-Config-IniFiles
- perl-Crypt-DES
- perl-DigestHMAC
- perl-Digest-SHA1
- perl-Socket6
- php-pear
- php-gd
- php-snmp
- php-mysql
- glib2-devel
(attention, nous avons remarqué que ce package était lui aussi dépendant d'autres packages, il nous a fallu corriger aussi ceci en installant les packages relatifs à celui ci.)

Nous aurons également besoin plus tard de vérifier les bases de données. Notre but étant de pouvoir sauvegarder le résultat de nos tests de monitoring, on doit donc pouvoir sauvegarder les bases de données contenant ces résultats. Il existe pour cela un logiciel qui nous permettra de facilement manipuler nos bases. Ce logiciel est " webmin ", qui se télécharge facilement sur http://www.webmin.com/. Son installation est simple, afin de voir si votre logiciel " webmin " fonctionne, il suffit de regarder dans un navigateur à l'adresse http://ipdelamachine:10000/ (10000 étant le port par défaut utilisé par webmin lors de son installation). Webmin nous servira également à configurer le client de messagerie du serveur dans le but de faire de la notification par e-mail.

Ensuite il nous faut faire une configuration des packages PEAR:

image de Nagios 1

PEAR étant " PHP Extension and Application Repository ", cette commande va installer des extensions php afin qu'Oreon soit entièrement fonctionnel au niveau de son interface web.

Lors de nos test sur l'installation de Nagios, Oreon, et NaReTo nous avons rencontré des problèmes de droits se manifestant à la fin sur l'interface Web, cette dernière nous renvoyait un message d'erreur nous indiquant que nous n'avions pas les droits sur la page. Pour remédier à cela, il nous a fallu créer des utilisateurs, des groupes d'utilisateurs et attribuer des droits particuliers pour eux.
Nagios, ainsi que le serveur Web apache 2 ont besoin d un certain nombre de droits d exécution et/ou de lecture/écriture sur les fichiers installés. Il nous faut donc configurer les utilisateurs et groupes adéquats, et leur associer les répertoires d installation, entrer les commandes suivantes :

- adduser nagios : création de l utilisateur Nagios.
- mkdir /usr/local/nagios : création du répertoire d installation de Nagios.
- chown nagios.nagios /usr/local/nagios : l utilisateur Nagios appartenant au groupe du même nom devient propriétaire du répertoire d installation. - /usr/sbin/groupadd nagiocmd : création du groupe nagiocmd.
- /usr/sbin/usermod -G nagiocmd apache : ajout du groupe nagiocmd pour l utilisateur apache (droits que possède le serveur web).
- /usr/sbin/usermod -G nagiocmd nagios : ajout de ce même groupe pour l utilisateur Nagios.

Une fois ces manipulations effectuées, nous sommes prêt à accueillir le programme Nagios dans notre serveur, on a testé plusieurs fois cette installation, car nous n'avions pas effectué les bons préliminaires ou bien il nous manquait quelques dépendances.

3. Installation de Nagios

Avant de commencer l'installation, il est nécessaire de télécharger les packages de l'outil Nagios sur http://www.nagios.org/ dans l'onglet " download ". Pour notre part, nous avons pris la dernière version stable (ici la 2.9). Attention, lors de nos tests, nous avons tenté d'installer le package RPM proposé sur leur site, mais ce dernier nous a donné plus de difficultés que de facilités, en effet, son installation se fait proprement mais dans des répertoires un peu éparpillés partout dans notre serveur, ce qui est contraignant pour la suite, car Oreon nous demandera de spécifier un seul dossier de Nagios. C'est la raison pour laquelle nous avons téléchargé le package proposé au format " .tar.gz ".
Nous avons remarqué également que Nagios seul, n'installait aucun service prédéfini, comme des " check-ping ", " check-http ", etc... Pour contrer ce problème, nous avons du télécharger les plugins de Nagios qu'ils proposent également dans leur site au format " .tar.gz ".

Nous avons pu à partir de ce moment installer l'outil. Tout d'abord, il a fallu désarchiver le package téléchargé sur le site, puis dans le dossier désarchiver, nous avons rentré les commandes suivantes:

- ./configure enable-embedded-perl with-perlcache disable-statuswrl --withdefault-perfdata

A ce niveau, un processus de configuration est lancé, il nous a suffit après cela de faire:

- make all
- make install
- make install-init (commande indispensable pour mettre le service de Nagios au démarrage du système)
- make install commandmode
- make install-config (commande permettant de nous donné des exemples de fichiers de configuration dans le chemin " /usr/local/nagios/etc/ "

Afin de ne pas rencontrer le problème de droits, nous nous sommes servis des utilisateurs et des droits que nous avions établis plus haut pour les attribuer au dossier /usr/local/nagios/var/rw/

- chown nagios:nagiocmd /usr/local/nagios/var/rw
- chmod 775 /usr/local/nagios/var/rw
- chmod g+s /usr/local/nagios/var/rw

Pour finir l'installation, nous avons du configurer au niveau du serveur web un fichier de configuration spécifiant une authentification pour accéder à la page Nagios, ce type de manipulation est typiquement propre au serveur Web, il n'a rien à voir avec Nagios, mais il est préférable de le faire pour plus de sécurité. On édite donc le fichier " /etc/httpd/conf.d/nagios.conf " avec un éditeur de texte comme " vi " par exemple.
Le script suivant est celui qui se trouve dans le fichier " nagios.conf ":

image de Nagios 1

Ici on sait q /usr/local/nagios/sbin " et " /isr/local/nagio le script suivant:

image de Nagios 1

Il ne nous reste plus qu'à créer un utilisateur et un mot de passe valide dans un fichier qui s'appellera " htpasswd.users " et qui se trouvera dans " /usr/local/nagios/etc ". Pour créer ce fichier, il nous faut utiliser la commande " htpasswd " qui créée un mot de passe crypté pour un utilisateur donné, voici comment on l'utilise:

- htpasswd -c /usr/local/nagios/etc/htpasswd.users utilisateurtest
- password: (ici on met le mot de passe)

Le fichier est maintenant créé et son contenu est crypté au niveau du mot de passe pour l'utilisateur qui s'appelle " utilisateurtest ".
Il ne reste plus qu'à redémarrer le serveur Apache pour que toutes les modifications soient prises en compte.

Maintenant que l'outil Nagios est installé, il nous faut mettre les plugins, cette installation est simple, il suffit de désarchiver le package téléchargé sur le site http://www.nagios.org/ puis de suivre ce qui est indiqué par le fichier README. Pour vérifier que vos plugins on bien été installés, il faut aller voir dans " /usr/localnagios/libexec ", et obtenir:

image de Nagios 1

Les fichiers listés ci-dessus sont les commandes que Nagios intègre par défaut avec ses plugins.

A partir d'ici, l'installation de Nagios est terminée, nous pouvons même essayer de nous connecter sur l'interface Web et regarder si tout va bien. Nagios est désormais un service à part entière de notre système, durant notre stage, nous avons du à plusieurs reprises démarrer ce service car il n'était pas exécuté au démarrage du serveur. Pour remédier à cela, nous avons effectué la commande suivante:

chkconfig add nagios

Maintenant que notre outil principal est installé, il nous faut installer Oreon pour pouvoir configurer les fichiers de configuration de notre outil principal avec plus de facilité.

4. Installation de Oreon

Avant toutes installation de Oreon, il nous faut s'assurer que les services mysql et https soient bien démarrés, pour cela, on fait un:

service httpd status
service mysql status

Si un de ces services n'est pas démarré, il nous faudra faire:

chkconfig --add httpd ou chkconfig --add mysqld
service httpd start
service mysqld start

Pour qu'Oreon fonctionne bien, il faut qu'il se serve d'une base de données pour recueillir toutes les informations utiles au réseau. De plus Oreon doit se servir d'une autre base de données qui va enregistrer toutes les valeurs relatives aux services à vérifier sur le réseau. Cette base de donnée est gérée par l'utilitaire " Perfparse ", il a donc été nécessaire d' installer " Perfparse " avant Oreon. Lors de nos tests, nous n'avons pas spécifié les bonnes bases, il faut bien faire attention à l'utilité de chacune d'entre elles. Nous avons du revoir les déclarations de nos tables pour un fonctionnement optimal.

On télécharge le dernier package de " Perfparse " sur le site http://perfparse.sourceforge.net/ puis on le désarchive. Suite à cela, nous allons dans le dossier désarchivé et nous tapons la commande suivante:
- ./configure prefix=/usr/local/nagios with-imagedir=/usr/local/nagios/share/images with- cgidir=/usr/local/nagios/sbin with-http_image_path=/nagios/images

Puis " make " et " make install ".

Maintenant que perfparse est installé, nous devons spécifier sa base de données, pour cela, il nous faut déjà créer une base de données pour perfparse:

- mysql -u root

Dans le prompt mysql on tape:

- create database perfparse;
- GRANT ALL PRIVILEGES ON perfparse.* TO 'perfparse'@localhost identified by 'motdepasse';

Il nous faut maintenant spécifier à " perfparse " que nous souhaitons utiliser cette base de données pour entrer ces données:

- cat /dossierdeperfparse/scripts/mysql_crate.sql | mysql -u perfparse -p -D nagios -h 127.0.0.1 - password:
Perfparse est désormais fonctionnel, nous pouvons installer Oreon maintenant.

Dans les aides que l'on a pu voir sur internet, beaucoup conseillaient d'augmenter l'espace mémoire dont se servent les modules PHP, pour se faire, il faut modifier le fichier " /etc/php.ini " et modifier la ligne " memory_limit = 16M " par " memory_limit = 32M ". Ceci n'est pas obligatoire, mais pour plus d'aisance, nous avons préféré le faire.

Maintenant on doit télécharger le package proposé par oreon sur http://www.oreon- project.org/ . Nous avons décidé de prendre la version 1.3.3 qui selon nous était la plus stable et performante.
Ensuite il nous a fallu désarchiver le package comme toutes les procédures que nous avons suivies jusqu'à présent. Puis dans le dossier désarchiver, il nous faut exécuter le script " install.sh ". A partir de ce point il va nous être posé plein de question quant à la configuration des chemins de notre outil principal " Nagios ", de nos services de messagerie, PEAR,... Le service de messagerie sera vu dans la partie suivante concernant la configuration des outils, il faut juste savoir que par défaut, le client de messagerie utilisé par notre système est " Sendmail ". Le script, va par la suite vérifier si tout les champs que nous avons renseignés sont valides, très pratique pour être sûr que la configuration d'Oreon se fait parfaitement bien.
Après tout ces préliminaires que nous avons effectués, nous n'avons pas eu de problèmes à ce niveau là. Nous avons été confrontés malgré tout à un problème, ce n'était qu'un champ mal spécifié ou une commande mal écrite. Une fois le script terminé, on a pu se connecter à l'aide d'un navigateur internet sur http://ipdelamachine/oreon/, en effet le script effectue un alias sur cette adresse et nous n'avons pas à le configurer.

Nous obtenons donc ceci lors du premier démarrage d'Oreon.

Cela est tout a fait normal, vu que nous n'avons pas configuré d'utilisateur, de langage, de base de données, ou de mot de passe pour accéder à cette base de données... Il nous faut donc faire tout cela afin que notre outil Oreon puisse fonctionner normalement.
Nous pouvons ensuite nous authentifier sous Oreon et accéder à la page principale de l'interface Web. La configuration propre à notre réseau se fera dans la partie suivante.

Nous avons donc ici un outil Oreon fonctionnel qui nous servira uniquement à configurer les fichiers de Nagios plus facilement.

Maintenant que notre outil de supervision Nagios est installé et que nous avons un outil Oreon pour le configurer, nous pouvons installer le dernier outil qui nous permettra de créer des comptes clients qui seront limités pour répartir ainsi également le réseau au niveau de plusieurs utilisateurs.

5. Installation de Nareto

Pour que NaReTo focntionne bien, il nous faut nous assurer que nous disposons bien de ces dépendances:

- Apache avec PHP
- MySQL version 4.X
- Nagios version 1.X
-- PHP CLI
- Perl avec les librairies DBI, POSIX et DBD-MySQL

Par défaut, toutes ces dépendances étaient installées dans notre serveur, nous nous en sommes tout de même assurés avec la commande rpm -q.

Ensuite, il nous a fallu télécharger les sources. Pour cela, il suffit de se rendre sur le site http://www.nareto/org . La dernière version se trouve dans la section Downloads . Il suffit de sélectionner l archive puis de la sauvegarder dans un répertoire. Il faut ensuite déplacer l archive dans le répertoire souhaité et la décompresser. On a installé NaReTo dans le dossier " /usr/local/nareto " comme les autres outils, puis on a effectué ces commandes:

- cp nareto-version.tar.gz /usr/local
- cd /usr/local
- tar xzf nareto-version.tar.gz
- chown -R apache.apache /usr/local/nareto-version
- chmod -R 700 /usr/local/nareto-version
- ln -s nareto-version nareto
- cd nareto
- chmod u+x nagios_alert.pl

NaReTo se sert de sa propre base de données pour effectuer toutes ses modifications au sein de son arborescence réseau. Nous avons donc crée une base de données NaReTo (comme pour la base de Perfparse antérieurement):

- mysql -u root

Dans le prompt propre à mysql:

- create database nareto;
- nareto script/nareto.sql;
- GRANT ALL PRIVILEGES ON nareto.* TO 'nareto'@localhost identified by 'motdepasse';

Comme pour Nagios, NaReTo doit avoir un alias au niveau du serveur Web afin de pouvoir accéder à la page, nous avons donc utilisé la même méthode que pour Nagios pour déclarer cet alias.

Pour finir de configurer NaReTo, on a ajouté des tâches qui feront en sorte de récupérer des données relatives aux services et machines du réseau dans la base de données de NaReTo.
Pour se faire, on a crée un fichier " /etc/cron.d/nareto " et ajouté le contenu suivant:

# MaJ temps réel
* * * * * root php /usr/local/nareto/scripts/parser_log.php \
>/dev/null 2>&1
* * * * * root php /usr/local/nareto/scripts/parser_cfg_v2.php \
>/dev/null 2>&1
# Reporting
*/5 * * * * root /usr/bin/php \
/usr/local/nareto/scripts/nareto_dispo_cron_5min.php \
> /dev/null 2>&1
2 * * * * root /usr/bin/php \
/usr/local/nareto/scripts/nareto_dispo_cron_1h.php \
> /dev/null 2>&1
4 14 * * * root /usr/bin/php \
/usr/local/nareto/scripts/nareto_dispo_cron_1jour.php \
>/dev/null 2>&1
# Suivi des alarmes
30 0 * * * root /usr/bin/perl \
/usr/local/nareto/scripts/nagios_alert.pl \
>/dev/null 2>&1
0 1 * * 7 root /usr/bin/php \
/usr/local/nareto/scripts/agregation_mois.php\
>/dev/null 2>&1

Ceci étant fait, il ne nous reste plus qu'à paramétrer le fichier de configuration de base de NaReTo. Ce fichier est dans le dossier " /usr/local/nareto/include " et il s'appelle " config.ini.php ", ce fichier permet d'indiquer à NaReTo dans quelle base de données il doit aller et avec quel identifiant et mot de passe, il permet également de rajouter des options tel que l'utilisateur principal ayant accès à la totalité de l'arborescence, ou bien si l'outil doit utiliser Perfparse...

Nous pouvons désormais nous servir de NaReTo en nous rendant à l'adresse http://ipdelamachine/nareto/ . La configuration de l'arborescence et des utilisateurs se fera dans la partie suivante.

Nous avons maintenant nos trois outils nous permettant une bonne supervision du réseau, nous allons donc maintenant voir comment on configure ces derniers afin d'exploiter la puissance de ces programmes.

Troisieme sous-titre

Grâce à l'outil Oreon, nous allons pouvoir configurer Nagios avec une plus grande facilité. Attention toutes les manipulations ou configurations effectuées sous Oreon ne sont pas intégrées par défaut directement dans Nagios. Il faut bien nous assurer que les fichiers générés sous Oreon soient bien déplacés vers le dossier " /usr/local/nagios/etc/ " et que le service de Nagios soit bien redémarré. Pour se faire, il faut suivre la manipulation suivante à chaque modification des fichiers de configuration effectuée sous Oreon:

Tout d'abord, il faut nous rendre sur l'interface Web de Oreon à http://ipdelamachine/oreon/ puis se loguer pour enfin accéder aux différents onglets, là nous devons cliquer sur l'onglet " Configuration " (onglet nous permettant de toucher à toute la configuration que nous aurons besoin de faire avec cet outil). Puis sur le sous onglet " Nagios ", nous obtenons alors ceci:

Génération des fichiers de configuration sous Oreon vers Nagios


image de Nagios 1

Dans ce menu, il faudra nous assurer que les cases " Déplacer les fichiers " et " Recharger Nagios " sont cochées. C'est ce qui va permettre de rendre fonctionnel toutes les manipulations que nous effectuerons sous Oreon afin qu'elles fonctionnent sous Nagios.

Il faut savoir que pour ajouter des machines, il faut tout d'abord créer dans l'ordre, des groupes d'utilisateurs, puis des utilisateurs, des groupes de machine, et enfin des machines. En effet cet ordre est très important car lors de nos tests nous avons vu que que les machines dépendaient d'un groupe de machine, et d'un groupe d'utilisateur. De plus il faut s'assurer que le groupe d'utilisateur dispose bien d'au moins un utilisateur. On verra donc dans cette partie la démarche que nous avons adoptée pour ajouter des composantes réseau et les superviser proprement.

1. Création d'un groupe d'utilisateur

Il nous faut d'abord créer un groupe d'utilisateur qui accueillera des utilisateurs propre au groupe. Pour cela, nous devons, dans l'onglet de configuration vu précédemment, cliquer sur le sous-onglet " Utilisateurs ", pour enfin voir un menu sur la gauche nous indiquant ce que nous voulons faire.

Fiche d'ajout d'un groupe d'utilisateur


image de Nagios 1

Les champs à renseigner pour créer un groupe d'utilisateurs sont peu nombreux; il nous suffit de donner un nom et une description du groupe.

Pour information, si nous devions créer un groupe utilisateur sur Nagios directement, il nous faudrait taper ceci dans le fichier contactgroup.cfg:

Script pour rajouter un groupe d'utilisateurs


image de Nagios 1

Suite à cet ajout, ne surtout pas oublier de générer les fichiers de configuration Nagios et redémarrer le service Nagios comme expliqué précédemment.

2. Création d'un utilisateur

Une fois notre groupe d'utilisateurs créé, nous devons ajouter des utilisateurs dedans, chaque utilisateur créé est utilisable depuis Nagios, Oreon, et NaReTo, il convient donc de le créer une seule fois. Pour créer un utilisateur, nous avons du passer par Oreon comme précédemment, la démarche est assez similaire. Dans le même onglet que la création des " Groupes Utilisateurs " il faut sélectionner " Utilisateurs " dans le menu de gauche et là nous avons le choix de créer et de modifier tous les utilisateurs du serveur de supervision. Voici comment se présente la fiche " Utilisateur " à remplir lorsque nous souhaitons en créer un ou en modifier un:

Fiche d'ajout d'un utilisateur


image de Nagios 1

Il est essentiel pour un nouvel utilisateur de renseigner son nom, son alias, son adresse mail (pour la future notification), le groupe auquel il fait partie (ici, nous pouvons en spécifier un directement car nous avons pris soin de le créer avant), puis s'il possède le droit d'accéder à l'interface Web, son mot de passe, sa langue, le format du mail, s'il est considéré comme un administrateur, s'il souhaite s'authentifier uniquement en local ou pas. Et pour finir il faut spécifier quels types de notifications l'utilisateur souhaite recevoir.

Pour information, si nous devions créer un utilisateur sur Nagios directement, il nous faudrait taper ceci dans le fichier contacts.cfg:

Script pour rajouter un utilisateur


image de Nagios 1

Suite à cet ajout, ne surtout pas oublier de générer les fichiers de configuration Nagios et redémarrer le service Nagios comme expliqué précédemment.

3. Création de groupe de machine

Afin de pouvoir rajouter une machine dans le serveur de supervision, il faut ajouter tout d'abord comme pour les utilisateurs, un groupe, en l'occurrence un groupe de machine ici. Pour cela, il suffit dans l'onglet " Configuration " comme précédemment, de cliquer cette fois ci sur " Hosts " puis dans le menu de gauche, sur " HostGroups ". Tout comme un groupe d'utilisateur, les champs à spécifier lors de la création d'un groupement de machine ne requiert uniquement un nom, un alias, nous pouvons également spécifier une communauté snmp et un pays contrairement au groupe d'utilisateurs.

Pour information, si nous devions créer un groupe de machines sur Nagios directement, il nous faudrait taper ceci dans le fichier hostgroups.cfg:

Script pour rajouter un groupement de machine


image de Nagios 1

(" members " permet de spécifier quelles machines appartiennent à ce groupe)

Suite à cet ajout, ne surtout pas oublier de générer les fichiers de configuration Nagios et redémarrer le service Nagios comme expliqué précédemment.

4. Ajout des machines

Maintenant que nous avons créé des utilisateurs et des groupement de machine, nous allons pouvoir rajouter des machines. Pour le faire, il nous suffit d'aller dans l'onglet " Configuration " puis dans le sous-onglet " Hosts " puis là nous arrivons à un menu, il faut donc cliquer sur " ajouter " pour configurer une nouvelle machine. Les champs de saisie propre à une machine sont décrit ci après:

Champs de saisie de l'ajout d'une nouvelle machine


image de Nagios 1

Pour information, si nous devions créer une machine sur Nagios directement, il nous faudrait taper ceci dans le fichier hosts.cfg:

Script pour rajouter une machine


image de Nagios 1

Suite à cet ajout, ne surtout pas oublier de générer les fichiers de configuration Nagios et redémarrer le service Nagios comme expliqué précédemment.

Nous avons découvert la possibilité de créer une machine template, son principe est que l'on associe plusieurs machines à une seule. Lorsque l'on créé une machine template, on peut se servir des champs renseignés dans sa configuration pour configurer plus rapidement une autre machine, ainsi nous pouvons créer beaucoup de machine assez rapidement en utilisant une de ces machines templates. Une machine template se compose exactement comme une machine si ce n'est que l'on ne renseigne pas le nom, l'alias et l'adresse de la machine, en effet ces renseignement sont propres à une machine unique. Suite à cela, il ne restera plus qu'à associer une de ces machines templates lorsqu'il faudra créer une machine.

5. Ajout des services

Comme pour les ajouts de machine, les services s'ajoutent également via Oreon de la même façon qu'une machine en cliquant sur le sous onglet " Services ". La fiche descriptive d'un service se présente sous la forme suivante:

Fiche descriptive d'un service


image de Nagios 1

Un service peut être associé à plusieurs machines et comme pour la création des machines, nous pouvons associer un service template à plusieurs services, ce qui réduit beaucoup nos champs de saisie pour les services.

6. Ajout des notifications par e-mail

Pour ajouter des notifications par e-mail, il faut tout d'abord configurer notre client de messagerie présent sur le serveur de supervision. Par défaut " Sendmail " est installé sur les distribution " Fedora Core 6 ", il ne nous reste plus qu'à configurer ce dernier. De plus nous avons trouvé suite à nos recherche que Nagios se servait de la commande " mail " pour effectuer ses notifications. C'est la raison pour laquelle lors de nos tests, avant toute notification de la part de Nagios, nous avons effectué des tests sur la commande afin de savoir si notre configuration du client de messagerie était correct.

Pour configurer notre client de messagerie, nous avons utilisé " webmin " préalablement installé comme nous avons pu le voir avant. Lorsque nous nous identifions sous webmin, nous avons accès à un onglet serveurs, là un icône nous indiquant la configuration de sendmail nous permet de configurer ce dernier très facilement. Il nous a suffit ensuite de renseigner les champs demandés, comme le domaine d'émission, l'adresse du serveur de messagerie...

Une fois la configuration terminée, nous redémarrons le service de messagerie puis nous effectuons la commande " mail " comme ci-dessous afin de nous envoyer un mail et déterminer si Nagios sera capable d'utiliser cette commande à bien:

Envoi d'un e-mail avec la commande " mail "


image de Nagios 1

Ensuite il faut configurer les notifications aux niveaux des machines, des services, des utilisateurs, comme nous l'avons vu précédemment, nous sommes ainsi alertés précisément de ce que nous voulons, dans le moindre détail et pour les personnes concernées.

7. Création de compte limité avec NaReTo

Nous voici, à la fin de notre configuration de notre serveur de supervision, si un utilisateur veut en plus de ses notifications, vérifier d'un aspect général ou en particulier une partie de son réseau, il faut lui créer un compte limité sous NaReTo, comme nous l'avons vu précédemment, NaReTo va nous permettre de créer une arborescence du réseau et d'attribuer une partie du réseau à un utilisateur, les utilisateurs de NaReTo sont les mêmes que Oreon, il nous suffit donc d'attribuer le morceau du réseau général approprié à l'utilisateur en question.

1. Pour configurer les comptes limités, nous nous sommes servi du manuel d'installation et d'utilisateur disponible sur le site. Un exemplaire se trouve dans l'annexe D.

Nous voici donc à la fin de notre configuration de l'outil de supervision. Il ne reste plus qu'à ce dernier d'effectuer toutes les requêtes que l'on a configurées et de nous offrir une interface Web conviviale afin de voir en un coup d'oeil les éventuels problèmes sur le réseau et ainsi agir en conséquence.

Haut de page