Documentation de NaReTo

Cédric TEMPLE et NaReTo Team

Résumé

Version 1.1.6


Table des matières

1. Installation de NaReTo
Introduction
Dépendances
Récupération des sources/décompression
Base de données
Interface web
Ajout des tâches cron
Gestion de la version 2.x de Nagios
Récupération des sources modifiées
Compilation et installation
Configuration de cron
Gestion de la version 1.x de Nagios
Configuration
2. Manuel Utilisateur
Présentation rapide de Nareto
Architecture de Nareto
Arbre de Navigation
Noeud double
Les droits
Les accès
Les vues de Nareto
La vue temps réel
La vue Reporting
La vue Suivi des Alarmes
éléments récupérés de Nagios
Configuration

Chapitre 1. Installation de NaReTo

Introduction

Dans cette partie, l'installation de Nareto sera présentée. L'installation de Nareto est simple à mettre en oeuvre. Elle repose sur trois éléments principaux:

  • la base de données

  • l'interface web

  • les scripts en tâches cron.

Dépendances

Pour le bon fonctionnement de Nareto, les outils suivants doivent être présents sur le serveur:

  • Apache avec PHP

  • MySQL version 4.X

  • Nagios version 2.X

  • PHP CLI

  • Perl avec les librairies DBI, POSIX et DBD-MySQL

Récupération des sources/décompression

La première étape consiste à 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 la sauvegarder dans un répertoire. Il faut ensuite déplacer l'archive dans le répertoire souhaité et la décompresser. Dans la suite du document, nous considérerons que vous souhaitez installer Nareto dans /usr/local/nareto.

root@host:~# cp nareto-version.tar.gz /usr/local
root@host:~# cd /usr/local
root@host:/usr/local# tar xzf nareto-version.tar.gz
root@host:/usr/local# chown -R apache.apache /usr/local/nareto-version
root@host:/usr/local# chmod -R 700 /usr/local/nareto-version
root@host:/usr/local# ln -s nareto-version nareto
root@host:/usr/local# cd nareto
root@host:/usr/local/nareto# chmod u+x scripts/nagios_alert.pl scripts/nagios_alert_agregation.pl

Base de données

Après avoir téléchargé les sources et les avoir décompresser, il faut créer la base de données. Dans le répertoire /usr/local/nareto, il y a un script qui permet de créer la base de données. Pour créer la base de données, il faut entrer les commandes suivantes:

root@host:~# mysqladmin -p create nareto
root@host:~# mysql -p nareto < scripts/nareto.sql
root@host:~# mysql -p
mysql> GRANT USAGE ON nareto.* TO 'nareto'@'host' IDENTIFIED BY 'mot_de_passe';
mysql> FLUSH PRIVILEGES;

Interface web

Il faut maintenant ajouter l'adresse de Nareto dans la configuration Apache. Pour cela, il faut ajouter les lignes suivantes au fichier deconfiguration de Apache. Pour Apache 2.X il faut ajouter un fichier nagios.conf dans le répertoire /etc/apache2/conf.d qui contient les lignes suivantes:

Alias /nareto/ /usr/local/nareto/
<Directory "/usr/local/nareto/">
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
      

Nareto utilise le même principe d'authentification que Nagios. Il suffit donc de copier le fichier d'authentification de Nagios dans le répertoire de Nareto.

root@host:~# cp ..../nagios/share/.htaccess /usr/local/nareto/
      

Il reste maintenant à redémarrer Apache.

Ajout des tâches cron

Nareto va chercher les informations dans le fichier de statut de Nagios de manière régulière et les stocke en base de données. Ce travail est fait à l'aide de cron. Il faut donc ajouter les tâches cron. Pour cela, il suffit de créer un fichier /etc/cron.d/nareto contenant les lignes suivantes:

# 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 * * * root /usr/bin/perl /usr/local/nareto/scripts/nagios_alert_agregation.pl > /dev/null 2>&1
      

Il faut vérifier le chemin d'accès du fichier de configuration dans les scripts nagios_alert.pl et nagios_alert_agregation.pl.

Gestion de la version 2.x de Nagios

Depuis sa version 1.1.0, NaReTo gère la version 2.x de Nagios. Du fait du format de fichier, il n'est pas performant de gérer la configuration et l'état des éléments supervisés avec des scripts PHP ou Perl. De ce fait, NaReTo utilise les librairies Nagios pour importer la totalité de la configuration.

Récupération des sources modifiées

NaReTo met à disposition sur son site web à destination de ses utilisateurs les sources modifiées de Nagios. Ces sources contiennent:

  • les sources officielles de Nagios

  • deux nouveaux dans le répertoire cgis

  • la modification des fichiers Makefiles et fichiers associés pour prendre en compte les modifications

Les dépendances nécessaires pour compiler les sources sont les suivantes:

  • un environnement de compilation (gcc, make, ...)

  • les bibliothèques de fonction C de développement de clients Mysql: libmysqlclient-version-dev

Compilation et installation

La compilation est de cette version de Nagios est la même que celle d'origine. Il suffit donc de taper les commandes suivantes:

root@server:# tar xzf nagios-version-naretion-sousversion.tar.gz
root@server:# cd  nagios-version-naretion-sousversion
root@server:# aclocal
root@server:# autoconf
root@server:# automake
root@server:# ./configure [--prefix=...] [...]
root@server:# make nagios cgis modules [contrib]
root@server:# make fullinstall
        

A l'issue de cette phase, deux nouveaux fichiers sont créés dans le répertoire des CGIs de Nagios. Ces deux fichiers sont:

  • read_config_from_nagios_v2: ce fichier lit la configuration de Nagios et stocke les données dans la base de données de NaReTo

  • update_status_from_nagios_v2: ce fichier lit les données d'états de Nagios et les stocke dans la base de données de NaReTo

Configuration de cron

La configuration de cron doit être modifiée pour prendre en compte les deux fichiers. Il faut donc modifier le ficher /etc/cron.d/nareto et ajouter les lignes suivantes:

# MaJ temps réel
* * * * * root /chemin/vers/sbin/read_config_from_nagios_v2 <serveur_mysql> <base> <utilisateur> <motdepasse> <portmysql> > /dev/null 2>&1
*/7 * * * * root /chemin/vers/sbin/update_status_from_nagios_v2 <serveur_mysql> <base> <utilisateur>  <motdepasse> <portmysql> > /dev/null 2>&1
        

Gestion de la version 1.x de Nagios

La gestion de la version 1.x de Nagios est plus simple que la version 2.x de Nagios. Pour cela il suffit d'éditer le fichier /etc/cron.d/nareto et d'ajouter les lignes suivantes:

# MaJ temps réel
* * * * * root php /usr/local/nareto/scripts/parser_log.php  >/dev/null 2>&1
*/6 * * * * root php /usr/local/nareto/scripts/parser_cfg_v2.php >/dev/null 2>&1
      

Configuration

Il faut maintenant configurer Nareto. Les options les lus importantes sont au début du fichier. Les premiers paramètres à modifier sont les informations de connexion à la base de données Nareto. Pour cela, il suffit d'éditer le fichier /usr/local/nareto/include/config.ini.php. Les paramètres sont:

[Mysql Configuration]
host          =       localhost
user          =       user
password      =       password
nareto_db     =       nareto_db
perfparse_db  =       perfparse_db


[Nagios Configuration]
configuration_file  =       /etc/nagios/nagios.cfg
log_file            =       /var/nagios/nagios.log
statuslog_file      =       /var/nagios/status.log
comment_file        =       /var/nagios/comment.log
archives_path       =       /var/nagios/archives
url_path            =       http://localhost/nagios/

[Nareto Configuration]
/ temps de rafraichissement de la page d'affichage
// des états dans le temps réel
// nombre de secondes
refresh             =       60

// variable permettant de calculer l'etat des noeuds
// en fonction des droits ou pas dans le temps reel
// 0 => le calcul est effectue avec les droits
// 1 => le calcul est effectue sans en tenir compte
global_state        =       0

//variable a renseigner pour afficher
// 0 => les noms de services nagios
// 1 => les alias renseignes dans la partie admin.
use_alias           =       0

// affichage des liens perfparse?
// 0 => non
// 1 => oui
use_perfparse       =       0

// utilisation des noeuds doubles
// 0 => non
// 1 => oui
use_doublenode      =       0

// lien vers les CGI Nagios lorsque le noeud
// est un service Nagios
// 0 => aucun lien
// 1 => le lien HTML est fait
use_nagios          =       1

// utilisateur nagios considéré comme l'administrateur
// nareto. Il accede a tout meme si son contactgroup
// n'a pas les droits.
// Il est possible de definir plusieurs administrateurs:
//   admin = jdoe,theboss,admin
admin               =       nagiosadmin

// Mise en base de donnees des alertes SOFT.
// Dans le cas contraire, on ne met en base de donnees
// que les alarmes HARD
// 0 ==> non
// 1 ==> oui
soft_alarm          =       0

// Nombre d alarme affichees dans le module
// Alert::History pour les noeuds
nb_alarm            =       3

// Nombre d alarme affichees dans le module
// Alert::History dans le detail avant de faire
// une nouvelle page
nb_alarm_detail     =       12
      

Chapitre 2. Manuel Utilisateur

Présentation rapide de Nareto

NaReTo (Nagios Reporting Tools) est une interface de haut niveau à Nagios. Nareto se base sur les informations de Nagios pour fournir des vues de plus haut niveau à différentes catégories d'utilisateurs. Avec Nareto, on définit un arbre de navigation. En affectant des droits spécifiques à certains noeuds de l'arbre, on limite la vue aux utilisateurs. Actuellement, trois vues sont disponibles: le Temps Réel, le Reporting, l'Historique des Alarmes et le Suivi des Alarmes.

Architecture de Nareto

NaReTo se base sur les fichiers de Nagios. L'architecture de NaReTo est détaillée dans la figure de la section intitulée « Architecture de Nareto ». Nareto récupère la configuration de Nagios et la met en base de données. Ceci est fait avec l'aide de cron pour éviter de relancer le script de lecture de la configuration à chaque changement.

Architecture de NaReTo

De plus, à intervalle régulier, NaReTo lit le fichier de statut de Nagios et met à jour la base de données des états.

Arbre de Navigation

Nareto définit un arbre de navigation. Cette arbre virtuel groupe des éléments simples de Nagios (hosts et services) pour en faire des composants de plus haut niveau. L'utilisateur navigue alors du composant de plus haut niveau vers le composant de plus bas niveau (drill-down): du macro vers le micro.

L'arbre de navigation est défini une fois et est ensuite disponible dans toutes les vues de Nareto. Il n'est donc pas obligatoire de définir plusieurs fois le même arbre de navigation. Ceci facilite aussi la tâche de l'exploitant qui, quelque soit la vue, disposera du même principe de navigation.

En affectant des droits différents à des noeuds de l'arbre, on limite la vue des utilisateurs. Cette fonctionnalité permet de définir plusieurs visions associées à des profils différents. Par exemple, il est possible de définir un sous-arbre composé uniquement des serveurs Windows où seuls les administrateurs Windows auront accès. De même, on peut créer un sous arbre composé uniquement de serveurs GNU/Linux où seuls les administrateurs Linux auront accès. Ceci permet de séparer l'arbre en éléments techniques.

Un des points forts de Nareto est de laisser la gestion des sous arbres et des droits à l'administrateur. Comme on l'a vu dans le paragraphe précédent, il est possible de créer plusieurs visions techniques dans l'arbre de navigation. De même, il est tout à fait possible de définir des visions plus fonctionnelles. Pour mettre à disposition des responsables de la DSI l'état des différents services applicatifs de haut niveau, il suffit de créer un arbre où seuls des éléments de haut niveau seront ajoutés. Par exemple en associant uniquement l'état des clusters ou les temps de réponses des applications, l'utilisateur dispose uniquement de l'information dont il a besoin: le service fonctionne et dispose d'un temps de réponse correct. L'utilisateur n'a pas à savoir qu'un des éléments du cluster à une partition d'un disque qui est à 80% d'utilisation.

Noeud double

On parle de noeud double lorsqu'un noeud de plus haut niveau regroupe deux noeuds de niveaux inférieurs. Cette fonctionnalité est très utile lorsqu'on souhaite avoir deux informations sur un composant donné. Par exemple, sur un applicatif donné, on pourra souhaiter avoir une vision de la partie hardware et une vision de la partie software. Il peut suffire de créer deux noeuds, un pour chaque partie, certes. NaReTo va plus loin en permettant de regrouper deux noeuds en un seul. Ceci est uniquement disponible au plus haut niveau, à la racine de l'arbre de navigation. Voici ce qu'il est possible d'obtenir avec un noeud double.

Visualisation d'un noeud double

Les droits

Les droits sont affectés au niveau le plus bas de l'arbre de navigation. En effet, on affecte les droits aux noeuds les plus bas et, automatiquement, Nareto calcule les droits des niveaux supérieurs. Ce qui facilitent grandement la configuration car il n'est pas nécessaire de spécifier les droits pour chaque noeud. Les droits correspondent à la possibilité pour un contactgroup donné de voir ce noeud. Autrement dit, on associe un noeud à un ou plusieurs contactgroups. Par exemple, le contactgroup Windows_administrateurs sera affecté à tous les noeuds correspondants aux serveurs de type Windows.

Les droits d'un noeud de plus bas niveau sont fixés par l'administrateur. Ensuite les droits d'un noeud sont calculés en fonction des droits affectés sur ses noeuds inférieurs. Les droits de ce noeud correspondent à la somme des réunions des noeuds inférieurs. Par exemple, si l'on a un noeud correspondant à une situation géographique (Nord/Pas-de-Calais) en dessous duquel il y a deux noeuds (Windows et Linux). Les droits du noeud Nord/Pas-de-Calais correspondent à la réunion des droits des deux noeuds Windows et Linux. Ce calcul est fait de manière dynamique quelque soit le niveau dans lequel on se trouve.

Les droits sont calculés en partant du bas vers le haut. C'est à dire qu'un contactgroup ayant les droits sur un noeud de niveau inférieur aura forcément les droits sur tous les noeuds supérieurs de la même branche de l'arbre. Par contre, si un contactgroup dispose des droits sur un noeud donné, cela ne signifie pas qu'il dispose des mêmes droits sur tous les noeuds de niveau inférieurs. Dans l'exemple précédent, le contactgroup associé au noeud Linux a les droits sur le noeud Nord/Pas-de-Calais mais il n'a pas les droits sur le noeud Windows.

Les accès

Lorsqu'un contactgroup dispose des droits pour un noeud donné, cela signifie qu'il a les mêmes droits sur ce noeud quelle que soit la vue dans laquelle il se trouve. Il peut être gênant que tous les utilisateurs accèdent à toutes les vues de l'interface. Par exemple, les techniciens n'ont pas forcément besoin d'accéder à l'interface de Reporting mais doivent avoir accès la vue Temps Réel. Par contre, un DSI pourra souhaiter accéder à la vue Reporting et non à la vue Temps Réel. Comme les droits, les accès sont fixés en fonction des contactgroups. On peut donc limiter les accès des contactgroups à certaines vues.

La combinaison des droits sur les noeuds et des accès aux vues permet de personnaliser Nareto par profil utilisateur. Ces deux fonctionnalités facilitent la gestion des types d'utilisateurs. Les utilisateurs sont regroupés en contactgroup dans Nagios et sont réutilisés par Nareto pour définir des profils d'utilisation.

Les vues de Nareto

La vue temps réel

La vue Temps réel de Nareto est la vue principale. Cette vue est utilisée constamment pour vérifier l'état des services. Un noeud a un état. Les états disponibles sont les suivants:

  • OK: le service est dans un état correct

  • WARNING: le service fonctionne en mode dégradé

  • CRITICAL: le service ne fonctionne pas ou le temps de réponse est trop important

  • UNKNOWN: le service est dans un état inconnu

  • ACK: le service est dans un état d'erreur mais a été pris en compte par un administrateur.

L'état d'un noeud est calculé en fonction des noeuds inférieurs. L'état d'un noeud est l'état le plus grave des noeuds inférieurs. C'est à dire que l'on remonte au plus haut niveau l'état le plus grave de tous les sous noeuds.

L'état d'un noeud dépend de la gestion des droits. Dans le fichier de configuration, il y a une directive de configuration ( $v_calcul_etat_global) qui indique si Nareto doit calculer l'état d'un noeud en fonction de la vue liée au profil. Dans ce cas, l'état d'un noeud vu par un utilisateur correspond à l'état le plus grave des noeuds inférieurs que peut traverser l'utilisateur. Deux utilisateurs connectés suivants différents profils peuvent ne pas voir un noeud dans le même état. En effet, un utilisateur qui peut traverser tous les noeuds verra au niveau le plus haut, l'état le plus grave de tous les noeuds. Un utilisateur avec un profil limité verra l'état le plus grave des noeuds qu'il peut traverser et uniquement ceux-ci.

Dans la figure de la section intitulée « La vue temps réel », on peut voir ce qui est présenté sur la page d'accueil du module Temps-Réel lors de la connexion. On visualise deux noeuds. Le premier noeud est un noeud double, il présente donc deux états. Le second noeud est un noeud simple.

Module Temps-Réel: page d'accueil

Dans la figure de la section intitulée « La vue temps réel », on peut voir que si l'utilisateur sélectionne le premier noeud en cliquant sur la pastille rouge ou verte, il dispose de l'affichage de l'information correspondante.

Module Temps-Réel: Niveau 2

L'utilisateur peut parcourir tout l'arbre de navigation, de haut en bas. Ce faisant il affine la vue au fur et à mesure de son parcours. Lorsqu'il arrive tout en base de l'arbre, il accède directement aux indicateurs de supervision Nagios ("Service") comme le montre la figure de la section intitulée « La vue temps réel ».

Module Temps-Réel: Dernier niveau

L'autre utilisation est de calculer l'état d'un noeud sans prendre en compte la gestion des droits. L'état d'un noeud correspond à l'état le plus grave de tous les noeuds, même si l'utilisateur n'a pas accès à tous les noeuds. Cependant, on conserve la limitation des accès: l'utilisateur ne pourra traverser que les noeuds auxquels son profil est associé.

La vue Reporting

La vue Reporting est dédiée au tracé de la disponiblité des noeuds. Il suffit de choisir la période que l'on souhaite afficher pour obtenir le graphique correspondant. NaReTo donne aussi la moyenne de la disponiblité de chaque noeud sur la période. Le Reporting dans NaReTo fournit donc les deux informations sur la même page: l'évolution de la disponibilité au cours du temps pour une période donnée mais aussi la moyenne de la disponibilité pour cette période.

Module de reporting

Il est bien entendu possible de modifier la période d'affichage comme le montre la figure de la section intitulée « La vue Reporting ».Dès lors, le graphiqe est mis à jour et l'indicateur de disponibilité globale est re-calculé.

Module de reporting: choix de la période d'affichage

Le principe de navigation arborescent est conservé. Un utilisateur donné ne verra que les graphiques de disponiblité auxquels son profil est attaché.

NaReTo permet d'exporter les données au format CSV (Common Separated Values). On peut alors les injecter dans un autre outil comme OpenOffice Calc pour faire des graphiques personnalisés que l'on pourra intégrer dans des rapports. Ensuite, il suffira de les envoyer par mails par exemple ou de les archiver.

NaReTo calcule la disponiblité d'un noeud selon différentes règles. Il est important de connaître précisément ses règles et comment l'on peut influer sur celles-ci pour obtenir des données cohérentes. NaReTo distinguent deux types de noeuds. Lorsqu'un noeud est un service, la disponibilité à l'instant présent est calculée en fonction de son état. Voici le lien entre disponibilité et état d'un service:

  • OK: 100%

  • WARNING: 75%

  • PENDING: 50%

  • UNKWOWN: 0%

  • CRITICAL: 0%

  • WARNING ACK: 75%

  • UNKWOWN ACK: 0%

  • CRITICAL ACK: 0%

Lorsqu'un noeud est un agrégat de plusieurs noeuds ou de plusieurs services, NaReTo calcule l'état de ce noeud en fonction des noeuds inférieurs. NaReTo calcule la moyenne pondérée de l'ensemble des noeuds inférieurs. Chaque noeud dispose d'un poids: c'est un entier. Plus ce poids est important pour un noeud donné et plus ce noeud influe sur la disponibilité du noeud supérieur. Le calcul de la disponibilité est donc:

Calcul de la disponibilité d'un noeud

Exemple de définition des poids pour un noeud donné:

Exemple de définition des poids pour un noeud

Le calcul donne donc:

Exemple de définition des poids pour un noeud

La vue Suivi des Alarmes

Le Suivi des Alarmes donne des informations sur le temps de réponse des équipes d'administration. En effet, cette vue affiche le temps moyen de prise en compte d'une alarme et son temps de correction. Le temps d'acquittemnt d'une alarme (acknowledge} d'une alarme) est le temps entre l'apparition d'une alarme et l'acknowledge de l'alarme par un utilisateur. Le temps de correction correspond à la différence de temps entre l'apparition d'une alarme et le retour à l'état normal.

NaReTo trace des graphiques sur les alarmes. Le premier correspond au nombre d'alarmes pour un noeud donné. On aura donc l'évolution du nombre d'alarmes pour un noeud donné au cours du temps. Le second graphique correspond au temps moyen de prise en compte des alarmes en fonction du temps. NaReTo calcule la moyenne sur une journée. De même, on dispose d'un graphique sur le temps moyen de correction. Le troisième graphique correspond au temps moyen de correction d'une alarme. Enfin, l'export au format CSV est disponible.

Module de Suivi des Alarmes

éléments récupérés de Nagios

Nareto réutilise la configuration de Nagios, ceci afin d'éviter de doubler le travail a effectué. Ce qui signifie qu'il n'est pas nécessaire de définir à nouveau les hosts et les services. Nareto récupère les éléments suivants de la configuration Nagios:

  • contacts et contactgroups

  • hosts

  • période de vérification pour les services (depuis la version 1.03-RC1)

  • période de downtime pour les services (depuis la version 1.03-RC1)

  • services.

De plus, Nareto récupère l'état en temps réel des éléments de Nagios. Nareto lit le fichier de statut de Nagios à intervalles réguliers et met ses informations en base de données. Voici la liste des éléments de Nagios récupérés par Nareto:

  • état des services: OK, WARNING, UNKNOWN et CRITICAL

  • downtime (depuis la version 1.0.3-RC1)

  • acquittement des services

Configuration

Administrateur

L'administrateur est l'utilisateur qui a le droit de modifier la configuration de Nareto. Cet administrateur doit être un contact Nagios. Il s'authentifie de la même manière que les autres utilisateurs. L'administrateur Nareto est donc l'utilisateur privilégié pour configurer l'arbre de navigation, les droits et les accès. L'administrateur est fixé dans le fichier de configuration avec la directive suivante:

admin               =       nagiosadmin
            

L'administrateur possède tous les droits sur la partie configuration. Par contre, il n'a pas accès à tous les noeuds de l'interface. Pour cela, il doit être affecté à un profil. Dès qu'il est affecté à un profil, il possède exactement les mêmes droits que ce profil.

Menu Principal

Le menu principal est le point d'entrée des vues de NaReTo. Lorsqu'un utilisateur se connecte, il accède directement au menu principal. Selon les accès du profil auquel appartient l'utilisateur, le menu principal ne sera pas le même. Certains profils pourront accéder à la vue Temps Réel, d'autre pas. Par défaut, l'administrateur NaReTo a accès à toutes les vues. La vue "Confi- guration" est la vue utilisée pour définir l'arbre de navigation de NaReTo, les droits, les accès, ect.

Menu principal

Ajout d'un noeud

L'ajout d'un noeud se fait dans la partie Création de la vue de configuration. Il suffit de se connecter en administrateur, de cliquer sur le lien Configuration puis de choisir Création. Selon que vous ayez choisi ou non d'activer les noeuds doubles dans le fichier de configuration de NaReTo, l'affichage ne sera pas le même. Lorsque l'on crée un noeud simple, il suffit d'indiquer le nom de ce noeud, le parent auquel il va être attaché (Racine si ce noeud est une noeud de plus haut niveau) et le poids de ce noeud. On crée donc l'arborescence de NaReTo en partant du niveau le plus haut puis en attachant des noeuds fils aux noeuds de plus haut niveau.

Pour créer un noeud double, il faut cocher la case Noeud double et entrer trois noms. Un noeud double, pour rappel, correspond en réalité à deux noeuds qui sont visualisés comme un seul à la racine. Donc un noeud double est forcément situé à la racine. Un noeud double est composé d'un nom racine (nom affiché à la racine) et de deux noms. Par exemple, si l'on crée un noeud double portant le nom Applicatif et composer de deux sous-noeuds Software et Hardware, on obtient le résultat de la figure de la section intitulée « Ajout d'un noeud ».

Pour modifier un noeud, il suffit de sélectionner Modification dans le menu de configuration. Ensuite, on peut sélectionner le noeud correspondant. Là, on peut modifier le nom du noeud, affecter le noeud à un autre parent ou modifier le poids par défaut.

Enfin, il est possible de supprimer un noeud en sélectionnant le lien Suppression. Si un noeud est supprimé, tous ces fils sont supprimés.

Noeud Double

Ajout d'un host

Un host (au sens Nagios du terme) peut ajouter à un noeud. Lorsqu'un host est ajouté à un noeud, un noeud fils portant le nom du host est créé. Tous les services de cet host sont automatiquement ajoutés à ce noeud fils. De plus, si l'on ajoute un nouveau service à cet host, Nareto le détectera et l'ajoutera automatiquement à l'host.

Ajouter un host à un noeud se fait en plusieurs étapes. On parle d'association d'un host à un noeud. Il faut sélectionner Association, puis sélectionner le noeud, cliquer sur Host et valider. Voici un exemple:

Association d'un noeud: étape 1

La seconde étape consiste à sélectionner le ou les host(s) à ajouter au noeud père. En prenant plusieurs hosts en même temps, on crée automatiquement plusieurs noeuds fils. En utilisant cette méthode, il est très rapide de créer l'arbre de navigation.

Association d'un noeud: étape 2

Lorsqu'on ajoute un host à un noeud, ce host devient un noeud. On peut alors le supprimer de la même manière que l'on supprime un noeud.

Cette méthode est principalement utilisée pour créer l'arbre de navigation principal parcouru par les utilisateurs de la vue Temps Réel. On ajoute des hosts à des noeuds pour avoir une vue technique : on visualise donc tous les services d'un host en un seul coup d'oeuil.

Ajout d'un service à un noeud

Au contraire de l'association d'un host à un noeud, associer des services à un noeud est utilisé pour avoir une vue plus fonctionnelle. Ce principe permet d'avoir un reporting plus fin et plus précis. L'arbre de navigation défini dans le temps réel est aussi utilisé pour la partie Reporting mais les valeurs ne sont pas aussi précises que si l'on crée un noeud dédié au Reporting. Prenons un exemple simple : un service web. Avec un service web, la disponibilité complète de ce service web va être composée, par exemple, de :

  • la disponiblité du host (ping)

  • la réponse à une URL (http ://...)

  • le temps de réponse à cette URL

  • l'asbence d'erreur spécifique sur la page

  • la possibilité de récupérer les données sur la page au travers d'un scénario (test applicatif)

Or en ajoutant tous les services d'un host, le reporting se basera sur tous les services de ce host. Autrement, le taux de remplissage des disques, le taux d'utilisation du CPU, voire un service qui n'aura rien à voir avec la disponibilité du service web comme la vérification de l'agent de sauvegarde par exemple. Avec l'ajout de services à un noeud, on ajoute uniquement les services dont on a besoin. Le reporting sur ce noeud sera donc basé sur les données utiles.

Pour ajouter des services à un noeud, le principe est le même que l'ajout d'un host. Il faut d'abord sélectionner Association dans le menu de configuration. Puis il faut choisir le noeud, cliquer sur Service et valider. Enfin il faut choisir le host dans le menu déroulant et sélectionner les services de cet host.

Association d'un service

Affectation des droits à un noeud

Les droits sont affectés sur des noeuds à des profils. En fait, on relie les différents profils à des noeuds. Par exemple, on associe le profil Linux_admins aux noeuds qui correspondent à des hosts avec un système d'exploitation GNU/Linux. Les droits sont affectés aux noeuds de plus bas niveau et automatiquement NaReTo les répercute sur les niveaus supérieurs. Pour rappel, un profil correspond à un contactgroup au sens Nagios.

Pour relier des profils à des noeuds, il faut sélectionner Gestion des droits dans le menu de configuration. Là, l'arborescence de NaReTo s'affiche : les profils sont sur la première ligne et les noeuds sont sur la première colonne. L'arborescence est incomplète pour éviter que la page soit trop grande et que les performances chutent. Il suffit de cliquer sur les noeuds de plus haut niveau pour afficher les noeuds de niveau inférieur. On parcourt alors l'arbre de navigation en profondeur.

Pour associer un profil à un noeud, il suffit de cocher la case au croisement du profil et du noeud.

Gestion des droits des profils

Affectation des accès à un profil

Pour configurer les accès, il suffit de sélectionner Gestion du menu principal du menu de configuration. Le tableau des accès s'affiche et l'on peut ajouter ou supprimer les accès à certains profils. Les profils sont sur la première colone et les différents accès sont sur la première ligne. Il suffit de cocher la case à l'intersection du profil et de l'accès pour activer cet accès pour ce profil.

Gestion des accès aux modules de NaReTo

Modification des poids

Les poids sont fixés pour chaque service et chaque noeud. Le poids d'un noeud ou d'un service agit sur le calcul de la disponibilité. En effet, plus le poids d'un noeud est important et plus il influence le calcul de la disponibilité du noeud supérieur.

La modification du poids d'un noeud se fait en modifiant un noeud. Il suffit donc de choisr Modification, de sélectionner le noeud correspondant et de modifier la valeur de son poids dans la zone de texte Poids de service.

La modification du poids d'un service est réalisée dans la partie Gestion des poids. Ensuite on choisit le noeud qui contient les services dont on souhaite modifier le poids. La liste des services de ce noeud apparaît avec son poids entre parenthèses. On peut alors choisir le service, son nouveau poids et valider.

Modification des poids

Affichage des services

NaReTo permet de créer un arbre très rapidement en associant directement un host à un noeud. Cependant, il y a des cas où il n'est pas nécessaire d'afficher tous les services d'un host. Il est possible avec NaReTo d'associer tous les services d'un host à un noeud mais de ne pas afficher tous les services de cet host. On peut choisir de ne pas afficher certains services d'un noeud donné. Pour cela, il suffit de sélectionner le lien Prise en compte des services dans le menu de configuration.

Ensuite, on peut choisir le noeud que l'on souhaite modifier. Là, deux boites de sélection affichent les services qui vont être pris en compte dans l'interface web et ceux qui ne le sont pas. Pour indiquer qu'un service ne sera pas affiché, il sufffit de le sélectionner dans la boîte de sélection Service pris en compte et de le déplacer vers la boite de sélection Services non pris en compte avec l'aide du bouton Supprimer.

Affichage des services

Changement des alias

NaReTo peut être utilisé par des administrateurs. Cependant, il peut aussi être utilisé par des non initiés, notamment pour la partie Reporting. Or, les noms choisis pour les hosts dans Nagios peuvent être incompréhensibles pour un utilisateur lambda. Il faut donc pouvoir renommer certains noms de hosts et de services pour les rendre accessibles à tout type d'utisateur. Les alias permettent de répondre à ce problème.

Les alias sont utilisés pour renommer les noeuds ou les services. Les alias sont activés au travers de la directive $v_affiche_alias. Si aucun alias n'est défini pour un noeud NaReTo affiche le nom du noeud. Si le noeud correspond à un host et que le host dispose d'un alias défini dans la configuration Nagios, NaReTo affiche cet alias.

Pour associer un alias à un noeud, il faut sélectionner Gestion des alias dans le menu de configuration de NaReTo. Ensuite, il faut choisir le noeud. Si le noeud ne dispose pas de service, on ne peut que donner à un alias pour ce noeud. Si le noeud contient un ou plusieurs services, il est possible de mettre un alias pour le noeud et pour tous les services. Il suffit ensuite de valider pour que les changements soient effectifs.

Modification de l'alias

Consultation de l'arbre de navigation

Il est possible d'afficher tout l'arbre de navigation. Cette fonctionnalité est utilisée pour donner à l'utilisateur la possibilité de vérifier la configuration. Seuls les noeuds sont affichés pour le moment. Pour visualiser l'arbre de navigation de NaReTo, il suffit de sélectionner Visualisation Globale de l'arbre du menu de configuration. Voici un exemple de ce que l'on obtient:

Consultation de l'arbre de navigation