Guide d’administration

Installation

Pré-requis logiciels

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

  • python (>= 2.5), sur la machine où le connecteur est installé
  • rabbitmq (>= 2.7.1), éventuellement sur une machine distante
  • nagios (>= 3.1.0) sur la machine où le connecteur est installé

Création du compte sur le bus

Le connecteur FTP nécessite qu’un compte soit créé sur la machine hébergeant le bus. Les comptes doivent être créés sur la machine qui héberge le serveur rabbitmq, à l’aide de la commande:

# rabbitmqctl add_user nom_d_utilisateur mot_de_passe

Configuration

Le module |name| est fourni avec un fichier de configuration situé par défaut dans « /etc/vigilo/|name|/settings.ini ».

Ce fichier est composé de différentes sections permettant de paramétrer des aspects divers du module, chacune de ces sections peut contenir un ensemble de valeurs sous la forme clé = valeur. Les lignes commençant par « ; » ou « # » sont des commentaires et sont par conséquent ignorées.

Le format de ce fichier peut donc être résumé dans l’extrait suivant:

# Ceci est un commentaire
; Ceci est également un commentaire
[section1]
option1=valeur1
option2=valeur2
; ...

[section2]
option1=val1
; ...

Les sections utilisées par le connecteur et leur rôle sont détaillées ci-dessous:

bus
Contient les options relatives à la configuration de l’accès au bus de messages.
connector
Contient les options de configuration génériques d’un connecteur de Vigilo.
publications
Contient une liste d’associations entre les types de messages envoyés et les nœuds de publication (exchange) vers lesquels ces messages sont transmis. Un paramètre optionnel permet de définir une durée de vie en secondes pour les messages (si un message passe plus de temps que sa durée de vie dans la file d’attente sans être consommé, il est automatiquement supprimé de la file d’attente).
loggers, handlers, formatters, logger_*, handler_*, formatter_*

Contient la configuration du mécanisme de journalisation des événements (voir chapitre Journaux).

« * » correspond au nom d’un logger/handler/formatter défini dans la section loggers, handlers ou formatters (respectivement).

connector-nagios
Contient les options spécifiques au connecteur Nagios.

Connexion au bus de messages

Le connecteur utilise un bus de communication basé sur le protocole AMQP pour communiquer avec les autres connecteurs de Vigilo.

Ce chapitre décrit les différentes options de configuration se rapportant à la connexion à ce bus de communication, situées dans la section [bus] du fichier de configuration.

Trace des messages

L’option « log_traffic » est un booléen permettant d’afficher tous les messages échangés avec le bus lorsqu’il est positionné à « True ». Cette option génère un volume d’événements de journalisation très important et n’est donc pas conseillée en production.

Adresse du bus

L’option « host » permet d’indiquer le nom ou l’adresse IP de l’hôte sur lequel le bus fonctionne.

Service de publication

Le connecteur utilise les mécanismes de publication de messages du protocole AMQP pour échanger des informations avec les autres connecteurs de Vigilo.

Ces mécanismes nécessites de spécifier le nom du service de publication utilisé pour l’échange de messages sur le bus, appelé exchange. Par défaut, le nom de ce service est le nom du type de message à envoyer.

Identifiant

Chaque connecteur de Vigilo est associé à un compte AMQP différent. L’option « user » permet d’indiquer le nom de ce compte.

Mot de passe

L’option « password » permet de spécifier le mot de passe associé au compte AMQP indiqué dans l’option « user ».

Connexions sécurisées

Les connecteurs ont la possibilité de spécifier la politique de sécurité à appliquer pour les connexions avec le bus. Il est possible de forcer l’utilisation d’une connexion chiffrée entre le connecteur et le bus en positionnant l’option « require_ssl » à « True ». Le port de connexion utilisé par défaut sans SSL est le 5672, avec SSL il devient le 5671.

Délai maximum de reconnexion

En cas de déconnexion du bus, les connecteurs se reconnectent automatiquement, selon un délai qui augmente exponentiellement (afin d’éviter d’innonder les journaux système avec des messages annonçant la reconnexion).

L’option « max_reconnect_delay » permet d’indiquer le délai maximum (en secondes) qui peut s’écouler entre 2 tentatives de reconnexion. Par défaut, ce délai est fixé à 60 secondes.

File d’attente

L’option « queue » permet de spécifier le nom de la file d’attente AMQP à laquelle se connecter pour recevoir les messages. Si plusieurs connecteurs spécifient la même file d’attente, il en consommeront les messages au fur et à mesure de leur capacité de traitement (mode « répartition de charge »).

Abonnements

L’option « subscriptions » contient la liste des nœuds de publication auxquels le connecteur est abonné (séparés par des virgules). Plus exactement, il s’agit des nœuds de publication auxquels la file d’attente spécifiée par l’option « queue » est abonnée. La valeur configurée par défaut lors de l’installation du connecteur convient généralement à tous les types d’usage.

Attention, il est possible d’ajouter des abonnements dans cette liste, mais les abonnements existants ne seront pas supprimés automatiquement s’ils sont supprimés de la liste (il s’agit d’une limitation actuelle du protocole). Pour cela, il faut passer soit par l’interface de gestion du serveur, soit par la commande vigilo-config-bus.

État du connecteur

Les connecteurs de Vigilo sont capables de s’auto-superviser, c’est-à-dire que des alertes peuvent être émises par Vigilo concernant ses propres connecteurs lorsque le fonctionnement de ceux-ci est perturbé ou en défaut.

Ce mécanisme est rendu possible grâce à un signal de vie émis (un état Nagios) par chaque connecteur à intervalle régulier. Chaque signal de vie correspond à un message de type « nagios ».

L’option « status_service » permet de spécifier le nom du service Nagios par lequel on supervise ce connecteur.

Des données de performance sont également générées afin d’alimenter les graphiques de métrologie des différents connecteurs. Chaque donnée de performance correspond à un message de type « perf ».

Les options « self_monitoring_nagios_exchange » et « self_monitoring_perf_exchange » permettent de choisir les nœuds de publication vers lesquels les messages d’état Nagios et de performance du connecteur sont envoyés, respectivement. Dans le cas où cette option ne serait pas renseignée, les nœuds configurés dans la section [publication] sont utilisés pour déterminer la destination des messages. Si aucun nœud n’est configuré pour l’envoi des messages d’état Nagios ou de performance, un message d’erreur est enregistré dans les journaux d’événements.

Destination des messages

Le connecteur envoie des messages au bus contenant des informations sur l’état des éléments du parc, ainsi que des données de métrologie permettant d’évaluer la performance des équipements. Chaque message transmis par le connecteur possède un type.

La section [publications] permet d’associer le type des messages à un nœud de publication. Ainsi, chaque fois qu’un message doit être transmis au bus, le connecteur consulte cette liste d’associations afin de connaître le nom du nœud sur lequel il doit publier son message.

Les types de messages supportés par un connecteur sont :

  • perf : messages de performances
  • state : messages d’état
  • event : messages d’événements
  • nagios : commandes Nagios
  • command : commandes diverses

Si aucune destination n’est renseignée, le message sera envoyé sur un nœud du même nom que le type du message.

Exemple de configuration possible, correspondant à une installation standard :

[publications]
perf   = perf
state  = state
event  = event
nagios = nagios

Journaux

Le connecteur est capable de transmettre un certain nombre d’informations au cours de son fonctionnement à un mécanisme de journalisation des événements (par exemple, des journaux systèmes, une trace dans un fichier, un enregistrement des événements en base de données, etc.).

Le document Vigilo - Journaux d’événements décrit spécifiquement la configuration de la journalisation des événements au sein de toutes les applications de Vigilo, y compris les connecteurs.

Configuration spécifique au connecteur Nagios

Cette section décrit les options de configuration spécifiques au connecteur Nagios. Ces options sont situées dans la section [connector-nagios] du fichier de configuration (dans /etc/vigilo/connector-nagios/settings.ini).

Commandes Nagios acceptées

Le connecteur Nagios est capable d’envoyer des commandes à destination de Nagios. Afin d’éviter des abus éventuels, l’option « accepted_commands » permet de lister les commandes qui seront acceptées.

À minima, la commande « PROCESS_SERVICE_CHECK_RESULT » doit être acceptée si des services de haut niveau ont été configurés au travers de VigiConf.

Socket de réception des messages

L’option « listen_unix » permet d’indiquer l’emplacement du socket Unix sur lequel le connecteur attendra des messages (généralement émis directement par Nagios).

Pipe de commandes Nagios

L’option « nagios_pipe » permet de spécifier l’emplacement du « pipe » (canal de communication) sur lequel Nagios accepte des commandes. La valeur de cette option doit être la même que l’option portant le même nom dans le fichier de configuration de Nagios (nagios.cfg).

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.

AMQP
Advanced Message Queuing Protocol. Protocole ouvert de messagerie applicative. Voir amqp.org.
exchange
Nœud de publication dans le dialecte AMQP. Les messages publiés sur un exchange sont relayés à une ou plusieurs files d’attente sur le serveur, à partir desquelles les connecteurs vont consommer les messages.
inotify
L’outil inotify est un mécanisme du noyau Linux qui fournit des notifications concernant le système de fichiers lorsqu’un événement particulier se produit (par exemple, la fermeture d’un fichier).
JSON
JavaScript Object Notation. Méthode de sérialisation textuelle compatible JavaScript.
RRD
Round-Robin Database. Base de données circulaire permettant de stocker des données disposant d’une granularité différente.
SGBD
Système de Gestion de Base de Données. Logiciel permettant d’héberger une base de données sur la machine.
URL
Uniform Resource Locator. Chaîne de caractères permettant d’identifier une ressource sur Internet.
XML
eXtensible Markup Language. Langage de balisage extensible.