“Perf2Store” est un plugin Nagios permettant de rediriger les données de métrologie collectées vers StoreMe, le service de stockage de métrologie du projet Vigilo.
La plupart des plugins Nagios peuvent renvoyer des données de métrologie en utilisant la syntaxe perfdata : à la fin de la chaîne de caractères retournée à Nagios, le plugin insère un pipe (“|”) puis les différents couples “nom=valeur” collectés. Par exemple le plugin HTTP renvoie le temps de réponse et la taille de la page web demandée.
Nagios peut ensuite rediriger ces données de performance vers un gestionnaire. Le plugin Perf2Store joue le rôle de ce gestionnaire, et transfère les données vers une instance de StoreMe par le réseau, en utilisant le protocole StoreMe.
Ce protocole est très simple. Il s'agit de paquets UDP contenant du texte brut formaté de la façon suivante : <nom de l'indicateur>;<timestamp>;<valeur>.
Perf2Store est écrit en Perl pour s'exécuter dans l'interpréteur embarqué de Nagios et consommer ainsi moins de ressources.
Les dépendances de l'application sont donc :
Perf2Store utilise des fichiers de configuration pour faire correspondre les noms des indicateurs retournés par les plugins Nagios aux noms des indicateurs désirés dans la métrologie de StoreMe (fichiers RRDs). Ces fichiers de configuration sont en Perl, et doivent donc en respecter la syntaxe. Ils doivent tous être placés dans un dossier qui sera passé en paramètre au plugin, il doit y avoir un fichier par hôte supervisé, et le nom de ce fichier doit être composé du préfixe “perf-”, puis du nom de l'hôte, puis du suffixe ”.pm”. La syntaxe précise est détaillée dans le fichier d'exemple perf2store.conf.pm.dist.
/usr/lib/nagios/plugins)La configuration de Perf2Store se fait à deux endroits :
L'activation du gestionnaire de données de performances dans Nagios se fait en 3 étapes :
define command{
command_name process-service-perfdata
command_line /usr/lib/nagios/plugins/perf2store -p /etc/vigilo-perf2store/ -H '$HOSTNAME$' -s '$SERVICEDESC$' -a '$SERVICESTATE$' -t '$LASTSERVICECHECK$' -v '$SERVICEPERFDATA$'
}
define command{
command_name process-host-perfdata
command_line /usr/lib/nagios/plugins/perf2store -p /etc/vigilo-perf2store/ -H '$HOSTNAME$' -s 'HOST' -a '$HOSTSTATE$' -t '$LASTHOSTCHECK$' -v '$HOSTPERFDATA$'
}
process_performance_data=1 host_perfdata_command=process-host-perfdata service_perfdata_command=process-service-perfdata
Comme décrit précédemment, la correspondance entre les indicateurs Nagios et StoreMe se fait dans un dossier, contenant un fichier par hôte supervisé, et dont le nom est composé du préfixe “perf-”, du nome de l'hôte, et du suffixe ”.pm”.
Ces fichiers sont en Perl, et doivent donc en respecter la syntaxe. Un exemple de format est présenté dans le fichier “perf2store.conf.pm.dist”.
Un fichier d'hôte définit une tableau associatif contenant trois entrées :
<nom de l'hôte>/<nom de l'indicateur de métrologie encodé en base64> (voir le README.fr de StoreMe pour la raison de cet encodage).