Guide d’administration

Installation

Prérequis logiciels

Afin de pouvoir faire fonctionner VigiRRD, l’installation préalable des logiciels suivants est requise :

  • python (>= 2.5), sur la machine où VigiRRD est installé
  • Apache (>= 2.2.0), sur la machine où VigiRRD est installé
  • apache-mod_wsgi (>= 2.3), sur la machine où VigiRRD est installé
  • rrdtool (>= 1.3), sur la machine où VigiRRD est installé

Reportez-vous aux manuels de ces différents logiciels pour savoir comment procéder à leur installation sur votre machine. VigiRRD requiert également la présence de plusieurs dépendances Python. Ces dépendances seront automatiquement installées en même temps que le paquet de VigiRRD.

Installation du paquet RPM

L’installation du connecteur se fait en installant simplement le paquet RPM « vigilo-vigirrd ». La procédure exacte d’installation dépend du gestionnaire de paquets utilisé.

Les instructions suivantes décrivent la procédure pour les gestionnaires de paquets RPM les plus fréquemment rencontrés.

Installation à l’aide de urpmi :

urpmi vigilo-vigirrd

Installation à l’aide de yum :

yum install vigilo-vigirrd

Démarrage et arrêt de VigiRRD

VigiRRD fonctionne comme un site web standard. À ce titre, il n’est pas nécessaire d’exécuter une commande spécifique pour démarrer VigiRRD, dès lors que le serveur web qui l’héberge a été lancé, à l’aide de la commande :

service httpd start

De la même manière, il n’y a pas de commande spécifique pour arrêter VigiRRD. L’application est arrêtée en même temps que le serveur web, à l’aide de la commande :

service httpd stop

Configuration de VigiRRD

La configuration initialement fournie avec VigiRRD est très rudimentaire. Elle est composée uniquement du fichier « settings.ini ».

Ce chapitre a pour but de présenter les différentes options de configuration disponibles afin de configurer VigiRRD en fonction de vos besoins.

Les chapitres suivants réutilisent l’ordre des directives de configuration utilisé dans le fichier « settings.ini » de l’application. Toutes les options de configuration citées ici se trouvent sous la section [app:main] du fichier « settings.ini ».

Le chapitre donne des informations quant à la méthode utilisée pour intégrer VigiRRD sur un serveur web de type Apache, grâce au module mod_wsgi.

La configuration de la journalisation des événements se fait également au travers du fichier « settings.ini ». Néanmoins, comme ce procédé se fait de la même manière dans les différents composants de Vigilo, celui-ci fait l’objet d’une documentation séparée dans le document Vigilo – Journaux d’événements.

Configuration des éléments de sécurité

Ce chapitre décrit les options relatives à la gestion des données de sécurité (clés de chiffrements, etc.) utilisées par VigiRRD.

Clé de chiffrement / déchiffrement des sessions

Afin de ne pas dévoiler certains paramètres associés à un utilisateur, le fichier de session qui contient ces paramètres est chiffré à l’aide d’une clé symétrique, utilisée à la fois pour le chiffrement et le déchiffrement des sessions de tous les utilisateurs de VigiRRD.

L’option « beaker.session.secret » permet de choisir la clé utilisée pour chiffrer et déchiffrer le contenu des sessions. Cette clé peut être la même que celle configurée pour le chiffrement / déchiffrement des cookies (voir le chapitre ), mais ceci est déconseillé afin d’éviter que la compromission de l’une des deux clés n’entraine la compromission de l’autre.

De la même manière, vous pouvez configurer les autres interfaces graphiques de Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés différentes (là encore, pour éviter la propagation d’une compromission).

Clé de chiffrement / déchiffrement des cookies

L’association entre un utilisateur et sa session se fait à l’aide d’un cookie de session enregistré sur le navigateur de l’utilisateur.

De la même manière que les sessions sont chiffrés afin de garantir la confidentialité de leur contenu, le cookie de session est également chiffré afin de protéger son contenu.

L’option « sa_auth.cookie_secret » permet de choisir la clé utilisée pour chiffrer et déchiffrer le contenu du cookie. Cette clé peut être la même que celle configurée pour le chiffrement / déchiffrement des sessions (voir le chapitre ), mais ceci est déconseillé afin d’éviter que la compromission de l’une des deux clés n’entraine la compromission de l’autre.

De la même manière, vous pouvez configurer les autres interfaces graphiques de Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés différentes (là encore, pour éviter la propagation d’une compromission).

Configuration de l’interface

Ce chapitre décrit les options qui modifient l’apparence de l’interface graphique de VigiRRD.

Emplacement du cache de graphes

Afin d’améliorer les performances de VigiRRD, lorsque l’image d’un graphe est générée, elle est enregistré dans un dossier qui joue le rôle d’un cache. Si l’utilisateur demande à nouveau le graphe, VigiRRD renverra directement l’image précédemment générée et enregistrée dans le cache au lieu de la générer à nouveau.

L’option « image_cache_dir » permet de définir l’emplacement du dossier temporaire jouant le rôle de cache de graphes. Il est recommandé d’utiliser un dossier temporaire (un sous-dossier du dossier « /tmp » par exemple).

Dossier de stockage des bases RRD

Les graphes générés par VigiRRD le sont à partir de données contenues dans des bases de données de type « round-robin » (RRD).

L’option « rrd_base » permet d’indiquer le dossier racine sous lequel les fichiers RRD sont stockés. Ce dossier doit coïncider avec l’option équivalente du connecteur de métrologie (vigilo-connector-metro).

Dossier contenant les configurations auto-générées de VigiRRD

Chaque serveur VigiRRD ne gère qu’une portion du parc supervisé, ce qui facilite le passage à l’échelle de la supervision. Afin de savoir quels sont les équipements du parc sous sa responsabilité, VigiRRD utilise des fichiers de configuration Python, auto-générés par VigiConf.

L’option « conf_dir » permet de spécifier le dossier dans lequel les fichiers de configuration Python auto-générés sont stockés par VigiConf. Une valeur appropriée pour cette option est « /etc/vigilo/vigirrd », qui correspond à une installation standard de VigiRRD et VigiConf.

Formatage de l’export CSV

VigiRRD est capable d’exporter les données d’un graphe de métrologie au format CSV. Plusieurs options sont disponibles afin de paramétrer l’export CSV.

csv_delimiter_ch Caractère de séparation des champs dans l’export CSV.
ar  
csv_quote_char Caractère de délimitation de la valeur d’un champ.
csv_escape_char Caractère d’échappement pour les caractères spéciaux (ceux définis dans les options précédentes).
csv_date_format Format du champ « Timestamp » dans l’export CSV. Par défaut, ce champ contient l’horodatage UNIX à laquelle la valeur a été émise. Vous pouvez spécifier une chaîne de formatage de dates en utilisant les options de formatage décrites sur http://docs.python.org/release/2.5/lib/module-time.html. Un exemple d’une telle chaîne de formatage pourrait être : « %d/%m/%Y %H:%M:%S » pour afficher la date et l’heure au format français (JJ/MM/AAAA hh:mm:ss).
csv_respect_loca Spécifie si le formatage des valeurs (nombres et dates) dans l’export CSV doit tenir
le compte des conventions applicables à la langue de l’utilisateur (locale) ou non. Par défaut, VigiRRD ne tente pas de respecter les conventions régionales de l’utilisateur et utilise des conventions neutres à la place, en vu de faciliter un traitement ultérieur automatisé des données exportées.

Configuration des sessions

Chaque fois qu’un utilisateur se connecte à VigiRRD, un fichier de session est créé permettant de sauvegarder certaines préférences de cet utilisateur (par exemple, le thème de l’application, la taille de la police de caractères, etc.). Ce chapitre décrit les options relatives à la gestion des sessions.

Emplacement des fichiers de session

Le dossier dans lequel les fichiers de session seront stockés est indiqué par l’option « cache_dir ».

Intégration de VigiRRD avec Apache / mod_wsgi

VigiRRD a été testé avec le serveur libre Apache. L’application utilise en outre le module Apache « mod_wsgi » pour communiquer avec le serveur. Ce module implémente un modèle de communication basé sur l’interface WSGI. Le reste de ce chapitre décrit la configuration utilisée pour réaliser cette intégration.

Fichier de configuration pour Apache

Le fichier de configuration pour l’intégration de VigiRRD dans Apache se trouve généralement dans /etc/vigilo/vigirrd/vigirrd.conf (un lien symbolique vers ce fichier est créé dans le dossier de configuration d’Apache, généralement dans /etc/httpd/conf.d/vigirrd.conf).

En général, il n’est pas nécessaire de modifier le contenu de ce fichier. Ce chapitre vise toutefois à fournir quelques informations sur le fonctionnement de ce fichier, afin de permettre d’éventuelles personnalisations de ce comportement.

Ce fichier tente tout d’abord de charger le module « mod_wsgi » (directive LoadModule) puis ajoute les directives de configuration nécessaires à Apache pour faire fonctionner VigiRRD, reprises partiellement ci-dessous :

WSGIRestrictStdout off
WSGIPassAuthorization on
WSGIDaemonProcess vigirrd user=apache group=apache threads=2
WSGIScriptAlias /vigilo/vigirrd "/etc/vigilo/vigirrd/vigirrd.wsgi"

KeepAlive Off

<Directory "/etc/vigilo/vigirrd/">
<Files "vigirrd.wsgi">
WSGIProcessGroup vigirrd
WSGIApplicationGroup %{GLOBAL}

Order deny,allow
Allow from all
</Files>
</Directory>

L’option WSGIRestrictStdout est positionnée à « off » afin d’éviter qu’Apache ne tue le processus de l’application lorsque des données sont envoyées sur la sortie standard. Ceci permet de récupérer les erreurs critiques pouvant être émises par l’application. Ces erreurs apparaissent alors dans le journal des événements d’Apache (configuré par la directive error_log).

L’option WSGIPassAuthorization positionnée à « on » indique à Apache et mod_wsgi que les informations d’authentification éventuellement transmises par l’utilisateur doivent être transmises à VigiRRD. Bien que VigiRRD n’utilise pas les informations d’authentification d’Apache, cette option est positionnée par homogénéité avec la configuration des autres interfaces web de Vigilo.

L’option WSGIDaemonProcess permet de créer un groupe de processus affecté au traitement des requêtes HTTP destinées à VigiRRD. Il permet d’utiliser un nom d’utilisateur et un groupe prédéfini (afin de réduire les privilèges nécessaires), ainsi que le nombre de processus légers à utiliser pour traiter les requêtes (ici, 2).

L’option WSGIScriptAlias indique l’emplacement à partir duquel VigiRRD sera accessible (ici, http://example.com/vigilo/vigirrd/ si le serveur Apache est configuré pour le domaine « example.com ») et l’emplacement du script WSGI nécessaire au lancement de l’application (voir le chapitre ).

L’option KeepAlive positionnée à « off » est nécessaire afin de contourner un problème dans le module « mod_wsgi » d’Apache.

Les autres options permettent d’exécuter le script WSGI de VigiRRD à l’aide du groupe de processus défini précédemment.

La liste complète des directives de configuration supportées par le module « mod_wsgi » d’Apache est disponible à l’adresse http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives.

Script WSGI de VigiRRD

Le script WSGI de VigiRRD est un script Python très simple qui a pour but de démarrer l’exécution de VigiRRD à partir du fichier de configuration associé (/etc/vigilo/vigirrd/settings.ini).

Vous n’avez généralement pas besoin de modifier son contenu, sauf éventuellement pour adapter l’emplacement du fichier de configuration en fonction de votre installation.

Annexes

Glossaire - Terminologie

Ce chapitre recense les différents termes techniques employés dans ce document et donne une brève définition de chacun de ces termes.

API
Interface logicielle de programmation, permettant à un développeur d’enrichir la liste des fonctionnalités proposées par un logiciel.
CGI
Interface standard de communication entre un serveur web et un programme capable de générer une réponse HTTP valide. Il s’agit par exemple de l’interface retenue par Nagios (< 3.3) pour la génération de ses pages web.
CSS
Feuilles de styles permettent de modifier la représentation graphique des éléments d’une page web. La version généralement supportée par les navigateurs est la version 2, définie par le document disponible sur http://www.w3.org/TR/CSS2/.
CSV
À l’origine, désigne un format textuel de transfert de données dans lequel les entrées sont séparées par des retours chariot et les champs par des virgules (comma). De nos jours, désigne plus généralement un format tabulé pour l’échange de données en vue de leur traitement dans un logiciel de type tableur ou par un traitement automatisé (scripts).
DN
Identifiant unique dans le cadre d’un annuaire LDAP.
Événement brut
Alerte envoyée par Nagios au corrélateur de Vigilo pour analyse.
Événement corrélé
Incident détecté par Vigilo suite à la corrélation des alertes Nagios (évènements bruts). Un événement corrélé est causé par un unique événement brut (exemple : la panne d’un routeur), mais de nombreux autres évènements bruts peuvent lui être rattachés (exemple : les alertes indiquant que les serveurs situés derrière le routeur en panne sont indisponibles). Ces événements secondaires rattachés à l’événement corrélé sont alors appelés « événements bruts masqués ».
KDC
Serveur permettant un transfert sécurisé des clés de chiffrement utilisées pour les communications entre divers services. Ce serveur est notamment utilisé lors des échanges initiaux du protocole Kerberos.
LDAP
Protocole pour l’interrogation d’un annuaire, servant généralement à recenser les utilisateurs autorisés d’un système et les différentes propriétés associées à ces utilisateurs.
OS
Système d’exploitation.
Nagios
Composant libre de supervision système et réseau.
RRD
Base de données de taille fixe utilisant des fichiers circulaires, dont les données sont progressivement compressées (avec perte) au fur et à mesure de leur vieillissement.
RRDtool
Composant libre de gestion de bases RRD (stockage, restitution, génération de graphiques).
SGBD[R]
Logiciel permettant d’héberger des bases de données [relationnelles] sur une machine.
SQL
Langage de requêtes structuré pour l’interrogation d’une base de données relationnelle.
URL
Chaîne de caractères permettant d’identifier une ressource, par exemple une page web sur Internet. Exemple : http://www.vigilo-nms.com/
WSGI
Une interface pour la communication entre une application et un serveur web, similaire à CGI. Il s’agit de l’interface utilisée par Vigilo.