Important: Nagios peut être configuré de différentes manières pour traiter les données liées à la performance des contrôles. Cette documentation décrit comment configurer ce type de traitement si vous avez compilé Nagios avec le support par défaut pour ces données.(c.a.d en passant l'argument --with-default-perfdata au script configure).
Introduction
Quand vous compilez Nagios avec cette option, vous pouvez définir des commandes qui vont être exécutées pour traiter les données liées à la performance des contrôles, et ceci après chaque contrôle d'hôte ou de service. C'est la méthode la plus souple pour ce type de traitement, bien qu'elle impose une surcharge forte au système, puisqu'un processus fils est activé pour chaque commande exécutée.
Si vous prévoyez simplement de garder ces données dans un (ou des) fichier(s) pour un traitement ultérieur, je vous recommande plutôt de configurer et compiler Nagios avec la méthode basée sur des fichiers. L'écriture directement dans un fichier ou des fichiers est bien plus performante et nécessitera moins de puissance au niveau du système que la méthode présentée ici (qui nécessite de démarrer un nouveau processus pour chaque commande lancée)
Traitement des données liées à la performance des contrôles
Si vous désirez les traiter, vous devez ajouter la directive host_perfdata_command à votre fichier de configuration principal comme suit:
host_perfdata_command=<command_name>
Cette directive spécifie une commande qui doit être lancée après chaque contrôle d'hôte, pour traiter les données issues de ce contrôle. Un exemple se trouve ci-dessous:
host_perfdata_command=process-host-perfdata
Le nom de la commande spécifiée dans la directive host_perfdata_command doit être celui d'une commande valide que vous aurez définie dans votre fichier de configuration des objets. Dans la définition de la commande, vous pouvez utiliser toutes macros valides dans les commandes de traitement des performances de l'hôte.
Un exemple ajoutant simplement les données en questions (dernière date de contrôle, temps d'exécution, données de performances, etc ) dans un fichier se trouve ci-dessous. Les différentes données sont écrites dans un fichier dont les champs sont séparés par une tabulation (TAB)
define command{ command_name process-host-perfdata command_line /bin/echo -e "$LASTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$STATETYPE$\t$EXECUTIONTIME$\t$OUTPUT$\t$PERFDATA$" >> /usr/local/nagios/var/host-perfdata }
Traitement des données liées au contrôle des perfomances d'un service
Si vous désirez traiter de telles données, il vous faut ajouter la directive service_perfdata_command dans votre fichier de configuration principal comme suit:
service_perfdata_command=<command_name>
Cette directive ets utilisée pour spécifier une commande qui sera exécutée après chaque contrôle d'un service, pour traiter les données liées au contrôle de la performance. Un exemple de configuration de ce fichier vous est fourni ci -dessous:
service_perfdata_command=process-service-perfdata
Le nom de la commande spécifiée dans la directive service_perfdata_command doit être celui d'une commande valide que vous aurez définie dans votre fichier de configuration des objets. Dans la définition de la commande, vous pouvez utiliser toutes macros valides dans les commandes de traitement des performances de l'hôte.
Un exemple ajoutant simplement les données en questions (dernière date de contrôle du service, temps d'exécution, test du temps de latence, données de performances, etc ) dans un fichier se trouve ci-dessous. Les différentes données sont écrites dans un fichier dont les champs sont séparés par une tabulation (TAB)
define command{
command_name process-service-perfdata
command_line /bin/echo -e "$LASTCHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$STATETYPE$\t$EXECUTIONTIME$\t$LATENCY$\t$OUTPUT$\t$PERFDATA$" >> /usr/local/nagios/var/service-perfdata
}
Notes sur l'optimisation
Si vous utilisez la directive service_perfdata_command et également obsessing over services, vous pourrez désactiver l'option obsess_over_services et laisser votre directive service_perfdata_command faire les deux taches. Comme les commandes ocsp_command et service_perfdata_command sont toutes deux exécutées après chaque test de service, vous réduirez ainsi un peu la charge du système en rassemblant tout dans la commande service_perfdata_command.