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:

  • nom de l'element
  • 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.

És recomanable emprar macros d'equip en lloc de macros globals perquè afegir, actualitzar o esborrar macros globals obliga a l'actualització incremental de la configuració per a tots els equips. Per obtindre més informació, veieu verificacions d'agent passives i actives.

Configuració

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

  • per a macros globals, visiteu Administració → 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.

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 amb asteriscs
Vault secret - el valor conté un camí de referència a un Vault Secret

Per canviar el valor feu clic al botó al final del camp d'entrada de valor

L'allargada màxima d'un valor de la macro d'usuari és de 2048 caràcters.
Descripció Camp de text emprat per proporcionar més informació sobre aquesta macro.

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 UsuarisUsuariSuports d'un usuari;
  • emprar-la per configurar una consulta més freqüent d'elements durant l'horari laboral:

  • emprar-la a la condició d'acció Període;
  • ajustar el temps de treball a AdministracióMacros, 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.