2 Macros d'usuari

Vista general

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:

 {$MACRO}

Zabbix resol les macros segons la prioritat següent:

  1. Macros del nivell d'equip (marcades primer)
  2. macros definides per a plantilles d'equips de primer nivell (és a dir, plantilles enllaçades directament a l'equip), ordenades per ID de plantilla
  3. macros definides per a plantilles d'equips de segon nivell, ordenades per ID de plantilla
  4. macros definides per a plantilles d'equips de tercer nivell, ordenades per ID de plantilla, etc.
  5. macros globals (darrer marcada)

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:

  • el paràmetre clau de l'element
  • Intervals d'actualització d'elements i intervals flexibles
  • el nom i la descripció del trigger
  • paràmetres i constants de l'expressió activa (veieu exemples)
  • moltes altres ubicacions - veieu la llista sencera
Casos comuns d'usos de macros globals i d'equips
  • empreu una macro global a diversos llocs; tot seguit, canvieu el valor de la macro i apliqueu els canvis de configuració a totes les ubicacions amb un sol clic
  • Aprofiteu els patrons amb atributs específics de l'equip: mots de pas, nombres de port, noms de fitxers, expressions regulars, etc.

Configuració

Per definir macros d'usuari, aneu a la ubicació corresponent a la interfície:

  • per a macros globals, visiteu Administració → General → Macros
  • Per a les macros de nivell d'equip i plantilla, obriu les propietats de l'equip o de la plantilla i cerqueu la pestanya Macros

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.

Exemples

Exemple 1

Ú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.

Exemple 2

Ú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

Exemple 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().

Exemple 4

Sincronització de la condició de no disponibilitat de l'agent amb l'interval d'actualització de l'element:

  • definit la macro {$INTERVAL} i emprar-la a l'interval d'actualització de l'element;
  • emprar {$INTERVAL} com a paràmetre del trigger de no disponibilitat de l'agent :

nodata(/ca_001/agent.ping,{$INTERVAL})=1

Exemple 5

Centralitzar la configuració de les hores de feina:

  • crear una macro global {$WORKING_HOURS} igual a 1-5,09:00-18:00;
  • emprar-la al camp Horari laboral a AdministracióGeneralGUI;
  • emprar-la al camp Quan sigui actiu a AdministracióUsuariSuports;
  • emprar-la per configurar una consulta més freqüent d'elements durant l'horari laboral:

  • emprar-la an la condició d'acció Període;
  • ajustar el temps de treball a AdministracióGeneralMacros, si cal.
Exemple 6

Emprar la macro del prototip d'equip per configurar coses per als equips descoberts:

  • en un prototip d'equip, establiu la macro d'usuari {$SNMPVALUE} amb la macro {#SNMPVALUE} de descoberta de baix nivell com a valor:

  • assigneu la plantilla Generic SNMPv2 al prototip d'equip;
  • empreu {$SNMPVALUE} al camp SNMP OID dels elements de plantilla Generic SNMPv2.

Context de la macro d'usuari

Veieu macros d'usuari amb context.