Les macros d'usuari s'admeten a Zabbix per a una major flexibilitat, a més de les macros admeses de base.
Les macros d'usuari es poden definir a nivell global, model i equip. Aquestes macros tenen una sintaxi especial:
Zabbix resol les macros segons la prioritat següent:
En altres paraules, si una macro no existeix per a un equip, Zabbix intentarà trobar-la en plantilles d'equips de més profunditat. Si encara no es troba, s'emprarà una macro global, si existeix.
Si existeix una macro amb el mateix nom en diversos models enllaçats del mateix nivell, s'emprarà la macro del model amb l'identificador més baix. Per tant, tindre macros amb el mateix nom en diverses plantilles és un risc de configuració.
Si Zabbix no troba una macro, la macro no es resoldrà.
Les macros (incloses les macros d'usuari) es deixen sense resoldre a la secció Configuració (per exemple, a la llista de triggers) per disseny per fer que la configuració complexa sigui més transparent.
Les macros d'usuari es poden emprar a:
Per definir macros d'usuari, aneu a la ubicació corresponent a la interfície:
Si s'empra una macro d'usuari en elements o triggers d'una plantilla, es recomana afegir aquesta macro a la plantilla encara que sigui definida a nivell global. Així, si el tipus de macro és text, exportar el model a XML i importar-lo a un altre sistema farà que funcioni com s'esperava. Els valors de macro secretes no s'exporten (/manual/xml_export_import).
Una macro d'usuari té els atributs següents:
Paràmetre | Descripció |
---|---|
Macro | Nom de la macro. El nom ha d'anar entre claus i començar amb un signe de dòlar. Exemple: {$FRONTEND_URL}. Els caràcters següents es permeten als noms de macro: A-Z (només en majúscules), 0-9, _, . |
Valor | Valor de macro. S'admeten tres tipus de valors: Text (predeterminat) - valor de text sense format Text secret - el valor és emmascarat per asteriscs, que poden ésser útils per protegir la informació sensible, com ara mots de pas o claus compartides. Vault secret - el valor conté un camí de referència (com ara 'path:key', per exemple, "secret/zabbix: password") a un Vault Secret Tingueu en compte que encara que el valor d'una macro secreta sigui amagat, el valor es pot trobar mitjançant l'ús en objectes. Per exemple, en un script extern, es pot emprar una instrucció "eco" que fa referència a una macro secreta per revelar el valor de la macro a la interfície perquè el servidor Zabbix té accés al valor de la macro real. Per triar el tipus de valor, feu clic al botó al final del camp d'entrada de valor: la icona indica una macro de text; la icona indica una macro de text secreta. En passar el cursor, el camp de valor es converteix en un botó , que us permet introduir un valor nou de macro (per sortir sense desar un valor nou, feu clic a la fletxa enrere () . La icona indica una macro Vault Secret. < br>L'allargada màxima d'un valor de la macro d'usuari és de 2048 caràcters (255 caràcters en versions anteriors a la 5.2.0). |
Descripció | Camp de text emprat per proporcionar més informació sobre aquesta macro. |
Els URL que continguin una macro secreta no funcionaran perquè la macro que contenen es resoldrà en "******".
A les expressions triggers, les macros d'usuari es resoldran si fan referència a un paràmetre o una constant. NO es resoldran si es refereixen a un equip, clau d'element, funció, operador o una altra expressió trigger. Les macros secretes no es poden emprar en expressions de triggers.
Ús d'una macro a nivell d'equip a la clau d'element "estat del dimoni SSH":
net.tcp.service[ssh,,{$SSH_PORT}]
Aquest element es pot atribuir a diferents equips, amb la condició que el valor d'{$SSH_PORT} sigui definit a aquests equips.
Ús d'una macro d'equip al trigger "La càrrega del processador és molt alta":
last(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}
Aquest trigger es crearia a la plantilla, no es modificaria en equips individuals.
Si voleu emprar la quantitat de valors com a paràmetre de funció (per exemple, max(/host/key,#3)), incloeu el signe de lletra a la definició de macro com aquesta: SOME_PERIOD => #3
Ús de dues macros al trigger "La càrrega de CPU és molt alta":
min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}
Veieu que una macro es pot emprar com a paràmetre de la funció de trigger; en aquest exemple, la funció min().
Sincronització de la condició de no disponibilitat de l'agent amb l'interval d'actualització de l'element:
nodata(/ca_001/agent.ping,{$INTERVAL})=1
Centralitzar la configuració de les hores de feina:
1-5,09:00-18:00
;Emprar la macro del prototip d'equip per configurar coses per als equips descoberts:
Veieu macros d'usuari amb context.