Guide de développement

Ajout de sous-contrôleurs personnalisés

Les différentes interfaces web de Vigilo intègrent un contrôleur spécial appelé custom et qui permet quant à lui d’intégrer des sous-contrôleurs personnalisés.

Ces sous-contrôleurs doivent être déclarés en tant que points d’entrée Python, au sein du groupe application.controllers, où application correspond au nom en minuscules de l’application (par exemple, “vigiboard”). De plus, le nom du point d’entrée doit respecter les règles de nommage suivantes :

  • Il doit être unique.
  • Il doit commencer par un caractère alphabétique (a-zA-Z).
  • Il ne doit être constitué que de caractères alphanumériques ou du symbole underscore (a-zA-Z0-9_).

Le nom du point d’entrée deviendra le nom permettant d’accéder au sous-contrôleur une fois celui-ci chargé. La valeur associée au point d’entrée doit être le nom de la classe définissant le contrôleur à charger. Celle-ci doit obligatoirement hériter de la classe vigilo.turbogears.controllers.BaseController pour être reconnue comme étant un contrôleur valide.

Dans cet exemple, on supposera que la classe ExampleController contenue dans le module Python my_ext.foo est un contrôleur qui étend l’application VigiBoard en fournissant une méthode test qui affiche une page web d’exemple. Pour ajouter ce contrôleur en tant que sous-contrôleur de custom avec le nom example, on utilisera la section entry_points suivante dans le fichier setup.py de définition du projet :

entry_points={
    'vigiboard.controllers': [
        'example = my_ext.foo:ExampleController',
        # Autres contrôleurs personnalisés à charger.
    ],
    # Autres groupes de points d'entrée.
},

Une fois l’extension installée, il est nécessaire de recharger le processus Apache à l’aide de la commande suivante :

# Sous RedHat Enterprise Linux ou équivalent
service httpd reload
# Sous Debian ou équivalent
service apache2 reload

La méthode test du nouveau sous-contrôleur est alors accessible à partir de l’adresse http://example.com/vigilo/vigiboard/custom/example/test (en supposant que VigiBoard a été installé à l’adresse http://example.com/vigilo/vigiboard/)

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.