Les macros utilisateur sont prises en charge dans Zabbix pour une plus grande flexibilité, en plus des macros supportées prêtes à l'emploi.
Les macros utilisateur peuvent être définies au niveau global, au niveau modèle et de l'hôte. Ces macros ont une syntaxe spéciale :
Zabbix résout les macros selon la priorité suivante :
En d'autres termes, si une macro n'existe pas pour un hôte, Zabbix essaiera de la trouver dans les modèles d'hôte de profondeur croissante. Si elle n'est toujours pas trouvée, une macro globale sera utilisée, si elle existe.
Si une macro avec le même nom existe sur plusieurs modèles liés du même niveau, la macro du modèle avec l'ID le plus bas sera utilisée. Ainsi, avoir des macros avec le même nom dans plusieurs modèles est un risque de configuration.
Si Zabbix ne parvient pas à trouver une macro, la macro ne sera pas résolue.
Les macros (y compris les macros utilisateur) sont laissées non résolues dans la section Configuration (par exemple, dans la liste des déclencheurs) par conception pour rendre la configuration complexe plus transparente.
Les macros utilisateur peuvent être utilisées dans :
Pour définir des macros utilisateur, rendez-vous à l'emplacement correspondant dans l'interface :
Si une macro utilisateur est utilisée dans des éléments ou des déclencheurs dans un modèle, il est suggéré d'ajouter cette macro au modèle même si elle est définie au niveau global. Ainsi, si le type de macro est texte, l'exportation du modèle vers XML et son importation dans un autre système lui permettront toujours de fonctionner comme prévu. Les valeurs des macros secrètes ne sont pas exportées.
Une macro utilisateur possède les attributs suivants :
Paramètre | Description |
---|---|
Macro | Nom de la macro. Le nom doit être entouré d'accolades et commencer par un signe dollar. Exemple : {$FRONTEND_URL}. Les caractères suivants sont autorisés dans les noms de macro : A-Z (majuscules uniquement) , 0-9 , _ , . |
Valeur | Valeur de la macro. Trois types de valeurs sont pris en charge : Texte (par défaut) - valeur en texte brut Texte secret - la valeur est masquée par des astérisques, ce qui peut être utile pour protéger des informations sensibles telles que les mots de passe ou des clés partagées. Secret du coffre-fort - la valeur contient un chemin de référence (comme 'path:key', par exemple "secret/zabbix:password") vers un Secret du coffre-fort Notez que même si la valeur d'une macro secrète est cachée, la valeur peut être révélée par l'utilisation dans les objets. Par exemple, dans un script externe, une instruction 'echo' faisant référence à une macro secrète peut être utilisée pour révéler la valeur de la macro à l'interface car le serveur Zabbix a accès à la valeur réelle de la macro. Pour sélectionner le type de valeur, cliquez sur sur le bouton à la fin du champ de saisie de valeur : l'icône indique une macro de texte ; l'icône indique une macro de texte secrète. Au survol, le champ valeur se transforme en bouton , qui permet de saisir une nouvelle valeur de la macro (pour sortir sans enregistrer une nouvelle valeur, cliquer sur la flèche vers l'arrière (). l'icône indique une macro Secret du coffre-fort. La longueur maximale d'une valeur de macro utilisateur est de 2 048 caractères (255 caractères dans les versions antérieures à 5.2.0). |
Description | Champ de texte utilisé pour fournir plus d'informations sur cette macro. |
Les URL qui contiennent une macro secrète ne fonctionneront pas car la macro qu'elles contiennent sera résolue comme "******".
Dans les expressions de déclencheur, les macros utilisateur seront résolues si elles font référence à un paramètre ou à une constante. Ils ne seront PAS résolus s'ils font référence à un hôte, une clé d'élément, une fonction, un opérateur ou une autre expression de déclencheur. Les macros secrètes ne peuvent pas être utilisées dans les expressions de déclencheur.
Utilisation d'une macro au niveau de l'hôte dans la clé d'élément "État du démon SSH" :
net.tcp.service[ssh,,{$SSH_PORT}]
Cet élément peut être attribué à plusieurs hôtes, à condition que la valeur de {$SSH_PORT} soit définie sur ces hôtes.
Utilisation de la macro au niveau de l'hôte dans le déclencheur "La charge du processeur est trop élevée" :
last(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}
Un tel déclencheur serait créé sur le modèle, et non modifié sur des hôtes individuels.
Si vous souhaitez utiliser la quantité de valeurs comme paramètre de fonction (pour exemple, max(/host/key,#3)), incluez le signe dièse dans la définition de la macro comme ceci : SOME_PERIOD => #3
Utilisation de deux macros dans le déclencheur "La charge CPU est trop élevée" :
min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}
Notez qu'une macro peut être utilisée comme paramètre de la fonction de déclenchement, dans cet exemple la fonction min().
Synchronisez la condition d'indisponibilité de l'agent avec l'intervalle de mise à jour de l'élément :
nodata(/ca_001/agent.ping,{$INTERVAL})=1
Centralisez la configuration des heures de travail :
1-5,09:00-18:00
;Utilisez la macro de prototype d'hôte pour configurer des éléments pour les hôtes découverts :