Données liées aux contrôles des performances


Introduction

Nagios comporte une autre fonctionnalité : la possibilité pour des plugins de retourner des données supplémentaires sur les performances de la surveillance effectuée, en plus de données de statut, ainsi que de passer ces données supplémentaires à des programmes externes pour traitement ultérieur.. Vous trouverez ci-dessous une description des différents types de données de performance, ainsi que des informations sur la façon de les traiter...

[NdT]: voilà un parfait exemple de casse-tête pour un traducteur. Le "performance datas" ne peut pas se traduire simplement en "données de performances", car trop imprécis. :-(

Types de données liées à la performance

Il y a deux catégories de base de données de performance qu'on peut obtenir de Nagios :

  1. Données liées à la performance d'un contrôle
  2. Données liées à la performance d'un plugin

Les données de performance liées à un contrôle sont des données internes ayant trait à l'exécution proprement dite du contrôle d'un hôte ou d'un service. Ceci comprend entre autres la latence de contrôle de service (i.e. le "retard" du contrôle de service par rapport à l'heure ordonnancée) et le nombre de secondes nécessaire à l'exécution d'un contrôle d'hôte ou de service. Ce type de données de performance est disponible pour tous les contrôles réalisés. La macro $EXECUTIONTIME$ peut être utilisée pour déterminer la durée en secondes d'exécution d'un contrôle d'hôte ou de service, et la macro $LATENCY$ peut être utilisée pour déterminer avec quel "retard" un contrôle de service s'est exécuté (les contrôles d'hôte ont une latence de zero, car ils sont exécutés à la demande, et non pas ordonnancés à intervalles réguliers).

Les données de performance liées à un plugin sont des données externes spécifiques au plugin utilisé pour réaliser le contrôle d'hôte ou de service. Ces données spécifiques peuvent comprendre entre autres le pourcentage de paquets perdus, l'espace disque disponible, la charge du processeur, le nombre d'utilisateurs connectés, etc. — fondamentalement le type de mesure que le plugin réalise lorsqu'il s'exécute. Les données de performance du plugin sont facultatives et peuvent ne pas être gérées par tous les plugins. A l'heure où je mets sous presse, aucun plugin ne retourne de données de performance, mais ils vont certainement le faire dans un futur proche. Les données de performance de plugin (lorsqu'elles sont disponibles) peuvent être obtenues via la macro $PERFDATA$. Vous trouverez plus loin plus d'iinformations sur la manière dont les plugins peuvent retourner des données de performance à Nagios pour les inclure dans la macro $PERFDATA$.

Gestion des données de performance dans les plugins

Normalement les plugins retournent une simple ligne de texte indiquant l'état d'une certaine donnée mesurable. Par exemple, le plugin check_ping peut retourner une ligne comme celle-ci :

PING ok - Packet loss = 0%, RTA = 0.80 ms

Avec ce type d'affichage, la ligne entière se retrouve dans la macro $OUTPUT$.

Pour permettre l'envoi des données de performance de plugin à Nagios, la spécification des plugins a été étendue. Si un plugin veut renvoyer des données de performance à Nagios, il peut envoyer la ligne de texte habituelle, suivie du caractère "pipe" (|), puis une chaîne contenant une ou plusieurs valeurs mesurant la performance. Prenons par exemple le plugin check_ping et supposons qu'il ait été étendu pour retourner le pourcentage de paquets perdus et le temps moyen d'aller-retour [round-trip time] comme données de performances. L'affichage pourrait alors ressembler à ceci :

PING ok - Packet loss = 0%, RTA = 0.80 ms | percent_packet_loss=0, rta=0.80

Quand Nagios trouve ce format d'affichage de plugin, il éclate la ligne en deux parties : tout ce qui se trouve avant le caractère "pipe" est considéré comme étant l'affichage "normal" du plugin et tout ce qui suit ce caractère pipe est considéré comme étant les données de performance du plugin. L'affichage "normal" est stocké dans la macro $OUTPUT$, alors que les données de performance facultatives sont stockées dans la macro $PERFDATA$. Dans l'exemple précédent, la macro $OUTPUT$ contiendrait "PING ok - Packet loss = 0%, RTA = 0.80 ms" (sans les guillemets) et la macro $PERFDATA$ contiendrait "percent_packet_loss=0, rta=0.80" (sans les guillemets).

Activation du traitement des données liées à la performance

Si vous voulez traiter les données de performance provenant de Nagios et des plugins, il vous faut faire trois choses:

D'abord, activez le paramétre process_performance_data.

Ensuite, vous devez compiler Nagios pour qu'il supporte ce type de traitement.

Enfin, vous devrez ajouter toutes les directives et commandes nécessaires dans votre fichier de configuration, pour utiliser ce type de traitement. Celles-ci dépendront du type de traitement pour les performances avec lequel vous avez compilé Nagios. Suivez les liens donnés ci dessus pour découvrir ce que vous devez faire.

Options de traitement après collecte

Je suppose ici que vous allez manipuler les données liées aux performances que vous avez extrait de Nagios. Si ce n'est pas le cas, pourquoi donc avez-vous activé le traitement de ce type de données ?

Ce que vous en faites lorsqu'elles ont été extraites de Nagios ne dépend que de vous. Si vos commandes de traitement consistent simplement à écrire les données dans des fichiers textes temporaires, vous pouvez mettre en place des travaux programmés [cron] pour traiter les lignes de ces fichiers textes, les compresser en utilisant rrdtool [Anglais], les vider dans une base de données, créer des graphiques, tout ce que vous voulez...