Table des matières
Les utilisateurs demandent souvent que de nouvelles variables puissent être ajoutées aux définitions d'hôtes, de services et de contacts. Ceci inclut des variables comme la communauté du protocole SNMP
l'adresse MAC, le nom d'utilisateur AIM, le numéro Skype ou une simple adresse. Le problème que je vois à faire ça est que Nagios devient alors moins générique et plus spécifique à un type d'infrasctructure. Nagios a été prévu pour être flexible, ce qui sous-entend que les choses doivent être pensées de façon générique. Par exemple, les définitions d'hôtes dans Nagios ont une variable générique address qui peut contenir n'importe quoi; de la simple adresse IP à l'adresse complète de type FQDN; quoique soit d'approprié à l'utilisateur.
Pourtant, il y a bien un besoin pour les administrateurs d'avoir la possibilité de stocker des informations à propos des composants de leur infrastructure dans la configuration de Nagios sans imposer un ensemble de variables spécifiques pour les autres. Nagios essaie de solutionner ce problème en autorisant les utilisateurs à définir des variables personnalisées dans leurs définitions d'objets. Les variables personnalisées permettent aux utilisateurs de définir des propriétés supplémentaires pour leurs hôtes, services et définitions de contacts et d'utiliser leurs valeurs dans les notifications, les gestionnaires d'événements et les contrôles d'hôtes et de services.
Il y a quelques points importants que vous devriez connaître sur les variables personnalisées :
Les noms de variables personnalisées doivent commencer par un underscore (_) pour prévenir tout conflit avec les variables standards.
Les noms de variables personnalisées sont insensibles à la casse
Les variables personnalisées sont héritées des gabarits d'objets comme n'importe quelle variable standard
Les scripts peuvent référencer des valeurs de variables personnalisées avec les variables d'environnement et les macros
Voici un exemple de la façon dont peuvent être définies les variables personnalisées dans différents types de définitions d'objets
define host { host_name linuxserver _mac_address 00:06:5B:A6:AD:AA ; <-- Custom MAC_ADDRESS variable _rack_number R32 ; <-- Custom RACK_NUMBER variable ... }
define service { host_name linuxserver description Memory Usage _SNMP_community public ; <-- Custom SNMP_COMMUNITY variable _TechContact Jane Doe ; <-- Custom TECHCONTACT variable ... }
define contact { contact_name john _AIM_username john16 ; <-- Custom AIM_USERNAME variable _YahooID john32 ; <-- Custom YAHOOID variable ... }
Les variables personnalisées peuvent être référencées dans des scripts et exécutables que Nagios utilisent pour exécuter les contrôles, notifications, etc… en utilisant les macros ou variables d'environnement.
Pour éviter tous conflits de noms parmi les variables personnalisées de différents types d'objets, Nagios ajoute _HOST, _SERVICE ou _CONTACT au début des variables personnalisées d'hôtes, de services et de contacts des macros et des variables d'environnement. Le tableau ci-dessous montre la correspondance entre les variables personnalisées et leur macro ou variable d'environnement respectives pour les variables personnalisées définies dans l'exemple précédent.
Type d'objet |
Nom de la variable |
Nom de la macro |
Variable d'environnement |
---|---|---|---|
Hôte |
MAC_ADDRESS |
$_HOSTMAC_ADDRESS$ |
NAGIOS__HOSTMAC_ADDRESS |
Hôte |
RACK_NUMBER |
$_HOSTRACK_NUMBER$ |
NAGIOS__HOSTRACK_NUMBER |
Service |
SNMP_COMMUNITY |
$_SERVICESNMP_COMMUNITY$ |
NAGIOS__SERVICESNMP_COMMUNITY |
Service |
TECHCONTACT |
$_SERVICETECHCONTACT$ |
NAGIOS__SERVICETECHCONTACT |
Contact |
AIM_USERNAME |
$_CONTACTAIM_USERNAME$ |
NAGIOS__CONTACTAIM_USERNAME |
Contact |
YAHOOID |
$_CONTACTYAHOOID$ |
NAGIOS__CONTACTYAHOOID |
Les variables personnalisées d'objets peuvent être héritées comme n'importe quelle variable standard d'hôte, de service ou de contact.