Macros
Une des fonctionalités disponibles dans Nagios est la possibilité d'utiliser des macros dans les définitions de commandes. Avant toute exécution de commande, Nagios remplacera toutes les macros dans la commande par les valeurs correspondantes. Cela vous permet de définir quelques commandes génériques que vous manipulerez à votre guise.
Validité des macros
Bien que les macros puissent être utilisées dans toutes les commandes que vous définissez, elles peuvent ne pas toutes être "valides" dans un type particulier de commande. Par exemple, certaines ne peuvent être valides que durant les commandes de notification de service, alors que d'autres ne peuvent l'être que lors des commandes de contrôle d'hôtes. Il y a neuf types de commandes que Nagios reconnaît et traite différemment. Ce sont les suivantes :
Le tableau ci-dessous donne la liste de toutes les macros actuellement disponibles dans Nagios, accompagnées d'une brève description de chacune et des types des commandes pour lesquelles elles sont valides. Si une macro est utilisée dans une commande pour laquelle elle est invalide, elle est remplacée par une chaîne vide. Il faut noter que les macros sont composées de lettres majuscules entourées par des caractères $.
Table de disponibilité des macros
Nom de la macro | Description de la macro | Contrôles de service | Notifications de service | Contrôles d'hôte | Notifications d'hôte | Gestionnaire d'évènements de services & gestionnaire global d'évènement de services & commande OCSP | Gestionnaires d'événements d'hôtes & gestionnaire global d'événement d'hôte |
Commandes de données liées aux performances de service |
Commandes de données liées aux performances d'hôte |
$CONTACTNAME$ | Nom court du contact (c.a.d "jdoe") auquel on envoie la notification d'un problème d'hôte ou de service | Non | Oui | Non | Oui | Non | Non | Non | Non |
$CONTACTALIAS$ | Nom long/description du contact (c.a.d "John Doe") auquel la notification est envoyée | Non | Oui | Non | Oui | Non | Non | Non | Non |
$CONTACTEMAIL$ | Adresse électronique du contact qui reçoit la notification | Non | Oui | Non | Oui | Non | Non | Non | Non |
$CONTACTPAGER$ | Numéro d'alphapage/adresse du contact qui reçoit la notification | Non | Oui | Non | Oui | Non | Non | Non | Non |
$HOSTNAME$ | Nom court de l'hôte (c.a.d "biglinuxbox"). Durant une notification de service, cela renvoie à l'hôte associé au service. | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$HOSTALIAS$ | Nom long/description de l'hôte (c.a.d "Big Linux Server") | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$HOSTADDRESS$ | Adresse IP de l'hôte | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
$HOSTSTATE$ | Etat actuel de l'hôte ("UP", "DOWN", ou "UNREACHABLE") | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$ARGn$ | Nième argument passé à la commande de contrôle de service. Lisez la documentation sur les définitions de service pour plus d'information. Nagios accepte jusqu'à 32 arguments pour les macros (de $ARG1$ à $ARG32$). | Oui | Non | Non | Non | Non | Non | Non | Non |
$SERVICEDESC$ | Nom long/description du service supervisé (c.a.d "Main Website") | Non | Oui | Non | Non | Oui | Non | Oui | Non |
$SERVICESTATE$ | Etat du service supervisé ("WARNING", "UNKNOWN", "CRITICAL", ou "OK") | Non | Oui | Non | Non | Oui | Non | Oui | Non |
$OUTPUT$ | Affichage du contrôle de service ou d'hôte (i.e "FTP ok - 1 second response time"). Pour les notifications de service et les gestionnaires d'événements, le texte provenant du contrôle de service sera inclus. Pour les notifications d'hôtes et les gestionnaires d'événements, le texte provenant du contrôle d'hôte sera inclus. | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$PERFDATA$ | Données liées aux performances qui peuvent avoir été retournées par le contrôle d'hôte ou de service. | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$EXECUTIONTIME$ | Nombre de secondes écoulées pour l'exécution du contrôle d'hôte ou de service (c.a.d la durée de l'exécution du contrôle). | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$LATENCY$ | Nombre de secondes écoulées entre l'heure à laquelle un contrôle de service était ordonnancé et sont exécution réelle. Par exemple, si un contrôle était ordonnancé à 03:04:15 et n'a été exécuté qu'à 03:14:17, la latence de contrôle serait de 2 secondes. | Non | Oui | Non | Non | Oui | Non | Oui | Non |
$NOTIFICATIONTYPE$ | Identifie le type de notification qui est envoyé ("PROBLEM", "RECOVERY", ou "ACKNOWLEDGEMENT"). | Non | Oui | Non | Oui | Non | Non | Non | Non |
$NOTIFICATIONNUMBER$ | Numéro de la notification courante pour le service ou l'hôte. Ce numéro de notification augmente de un (1) à chaque nouvelle notification émise pour un hôte ou un service (excepté pour les acquittements). Le numéro de notification est remis à 0 quand l'hôte ou le service se rétablit (après que la notification de rétablissement ait été émise). Les acquittements ne provoquent pas l'incrémentation du numéro de notification. | Non | Oui | Non | Oui | Non | Non | Non | Non |
$DATETIME$ | Horodatage (c.a.d Fri Oct 13 00:30:28 CDT 2000) | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$SHORTDATETIME$ | Horodatage (c.a.d 10-13-2000 00:30:28) | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$DATE$ | Horodatage (c.a.d 10-13-2000) | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$TIME$ | Horodatage (c.a.d 00:30:28) | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$TIMET$ | Horodatage au format time_t (secondes écoulées depuis l'époque UNIX [epoch]) | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$LASTCHECK$ | Horodatage au format time_t (secondes écoulées depuis l'époque UNIX [epoch]) indiquant le moment où lequel le dernier contrôle de service ou d'hôte a été effectué. | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$LASTSTATECHANGE$ | Horodatage au format time_t (secondes écoulées depuis l'époque UNIX [epoch]) indiquant le moment du dernier changement d'état d'un service ou d'un hôte. | Non | Oui | Non | Oui | Oui | Oui | Oui | Oui |
$ADMINEMAIL$ | Adresse électronique de l'administrateur local (ou de l'hôte qui supervise) | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
$ADMINPAGER$ | Numéro d'alphapage/adresse de l'administrateur local | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
$STATETYPE$ | Type d'état de l'actuel contrôle de service ou d'hôte ("HARD" or "SOFT"). Les états soft sont causés par un contrôle de service qui retourne un état non-OK et qui sont en cours de réessai. Les état hard sont causés par un service ou un hôte ayant été contrôlé le nombre maximal de fois spécifié. Les notifications sont envoyées seulement en cas de changement d'état hard. | Non | Non | Non | Non | Oui | Oui | Oui | Oui |
$SERVICEATTEMPT$ | Nombre courant de réessais de contrôle de service. Par exemple, si c'est la seconde fois que le service est recontrôlé, ce sera le nombre deux. Cette valeur n'est utile que pour écrire des gestionnaires d'évènement de service pour les états "soft" réalisant une action particulière en fonction du nombre de réessais du service. | Non | Non | Non | Non | Oui | Non | Oui | Non |
$HOSTATTEMPT$ | Nombre courant de réessais de contrôle d'hôte. Par exemple, si c'est la seconde fois que l'hôte est recontrôlé, ce sera le nombre deux. Cette valeur n'est utile que pour écrire des gestionnaires d'évènement d'hôte pour les états "soft" réalisant une action particulière en fonction du nombre de réessais de l'hôte. | Non | Non | Non | Non | Non | Oui | Non | Oui |
$USERn$ | Nième macro définissable par l'utilisateur. Les macros utilisateur peuvent être définies dans un ou plusieurs fichiers de ressources . Nagios supporte jusqu'à 32 macros utilisateur (de $USER1$ à $USER32$). | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |