HowToUseMacros/fr
From Wiki Centreon
Utiliser les macros dans Centreon et Nagios
Dans les pages de configuration, vous avez sûrement vu l'onglet "Macros". Il est disponible pour les hôtes, les services, les modèles d'hôtes et de services. Les Macros fournissent des "variables" à Nagios et aident à l'auto-configuration des hôtes et des services.
Supposons qu'on ait trois communautés SNMP à gérer : PUBLIC, TELCO et PRIVATE. Par défaut, Centreon va passer la valeur de la communauté par défaut aux scripts. Cette valeur est stockée dans les "Grosses valeurs par défaut de Nagios" (à savoir les variables $USER1$ à $USER32$) définies dans Configuration/Nagios/Ressources. Malheureusement, il ne semble pas possible de surcharger la valeur de cette variable au niveau de l'hôte ou du service.
Il va falloir créer une variable (macro) : SNMPCOMMUNITY et on définira sa valeur soit dans les hôtes/services soit dans les modèles d'hôtes ou de services.
Allez dans Configuration/Hôtes/Modèles/generic-host/Onglet Macro et ajouter une nouvelle macro, nommez-la SNMPCOMMUNITY and réglez sa valeur à PUBLIC.
Le nom que vous indiquez ici va être modifié par Centreon et Nagios, c'est le but premier de ce HowTo.
Nagios permet de définir des macros mais leur nom doit commencer par un caractère souligné "_" (ou "tiret 8" ou "underscore") pour éviter une confusion avec les macros "système". Centreon VA ajouter ce souligné. Si vous l'ajoutez vous-même et nommez la variable "_SNMPCOMMUNITY", Nagios la verra comme "__SNMPCOMMUNITY" (avec 2 soulignés).
Ensuite le cas Nagios : quand vous définissez une macro à l'intérieur d'une définition d'hote, son nom final aura le mot HOST inséré après le souligné, si c'est un service, c'est le mot SERVICE qui sera inséré : défini dans un hôte (ou un modèle d'hôte), notre variable sera vue comme "_HOSTSNMPCOMMUNITY".
Dupliquez le modèle "generic-host" et modifiez la valeur de la macro en TELCO. Dupliquez une dernière fois et réglez la communauté à PRIVATE.
Maintenant vous devez modifier les commandes ou les services (ou modèle) pour utiliser la nouvelle variable. Par exemple, la ligne de commande pour la commande check_centreon_memory pourrait devenir :
$USER1$/check_centreon_snmp_memory -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -v 1 -w 80 -c 90
Si la communauté est transmise via des paramètres, il suffit de substituer $USER2$ par $_HOSTSNMPCOMMUNITY$ dans la chaîne "arguments" du service. Par exemple, la chaîne pour "SNMP-DISK-/" pourrait être :
!/!80!90!$_HOSTSNMPCOMMUNITY$!1!
Pour aller plus loin (en anglais) :

