Lietotāja makro

Pārskats

Lielākai elastībai Zabbix atbalsta lietotāja makro papildus makro, kas tiek atbalstīti jau pēc noklusējuma.

Lietotāja makro var definēt globālā, veidnes un hosts līmenī. Šiem makro ir īpaša sintakse:

{$MACRO}

Zabbix makro atrisina atbilstoši tālāk norādītajai prioritātei:

  1. Hosts līmeņa makro (tiek pārbaudīti vispirms).
  2. Makro, kas definēti hosts pirmā līmeņa veidnēs (t. i., veidnēs, kas tieši piesaistītas hosts), sakārtoti pēc veidnes ID.
  3. Makro, kas definēti hosts otrā līmeņa veidnēs, sakārtoti pēc veidnes ID.
  4. Makro, kas definēti hosts trešā līmeņa veidnēs, sakārtoti pēc veidnes ID utt.
  5. Globālie makro (tiek pārbaudīti pēdējie).

Citiem vārdiem, ja hosts makro nepastāv, Zabbix mēģinās to atrast hosts veidnēs, sākot ar mazāko ligzdošanas dziļumu. Ja makro joprojām netiek atrasts, tiks izmantots globālais makro, ja tāds pastāv.

Ja vairāku viena līmeņa piesaistīto veidņu makro ir ar vienādu nosaukumu, tiks izmantots makro no veidnes ar mazāko ID. Tāpēc vienāda nosaukuma makro izmantošana vairākās veidnēs rada konfigurācijas risku.

Ja Zabbix nevar atrast makro, makro netiks atrisināts.

Makro (tostarp lietotāja makro) sadaļā Configuration netiek atrisināti (piemēram, trigeru sarakstā), lai pēc noklusējuma padarītu sarežģītu konfigurāciju pārskatāmāku.

Lietotāja makro var izmantot:

  • vienuma nosaukumā
  • vienuma atslēgas parametrā
  • vienuma atjaunināšanas intervālos un elastīgajos intervālos
  • trigera nosaukumā un aprakstā
  • trigera izteiksmes parametros un konstantēs (skatiet piemērus)
  • daudzās citās vietās — skatiet pilno sarakstu
Globālo un hostu makrosu biežākie lietošanas gadījumi
  • izmantot globālu makrosu vairākās vietās; pēc tam mainīt makrosa vērtību un ar vienu klikšķi piemērot konfigurācijas izmaiņas visām vietām
  • izmantot veidņu priekšrocības ar hostam specifiskiem atribūtiem: paroles, portu numuri, failu nosaukumi, regulārās izteiksmes utt.

Ieteicams izmantot hosta makro globālo makro vietā, jo globālo makro pievienošana, atjaunināšana vai dzēšana piespiež veikt pakāpenisku konfigurācijas atjaunināšanu visiem hostiem. Papildinformāciju skatiet Pasīvie un aktīvie aģenta pārbaudes.

Konfigurācija

Lai definētu lietotāja makro, dodieties uz atbilstošo vietu lietotāja saskarnē:

  • Globālajiem makro atveriet Administration > Macros.
  • Host un veidnes līmeņa makro atveriet hosta vai veidnes rekvizītus un atrodiet cilni Macros.

Lietotāja makro ir šādi atribūti:

Parameter Description
Macro Makro nosaukums. Nosaukumam jābūt ietvertam figūriekavās un jāsākas ar dolāra zīmi.
Piemērs: {$FRONTEND_URL}. Makro nosaukumos ir atļautas šādas rakstzīmes: A-Z (tikai lielie burti), 0-9, _, .
Value Makro vērtība. Tiek atbalstīti trīs vērtību tipi:
Text (noklusējums) - vienkārša teksta vērtība
Secret text - vērtība tiek maskēta ar zvaigznītēm
Vault secret - vērtība satur ceļu/vaicājumu uz vault secret.

Lai mainītu vērtības tipu, noklikšķiniet uz pogas vērtības ievades lauka beigās.

Maksimālais lietotāja makro vērtības garums ir 2048 rakstzīmes.
Description Teksta lauks, ko izmanto, lai sniegtu papildu informāciju par šo makro.

Konfigurējot lietotāja makro, ņemiet vērā šādu no konteksta atkarīgu uzvedību:

  • ja lietotāja makro tiek izmantoti veidnes vienumos vai trigeros, apsveriet iespēju pievienot šos makro arī veidnei (pat ja tie ir definēti globāli); tādā veidā Text tipa makro darbosies, kā paredzēts, pēc veidnes eksportēšanas uz XML un importēšanas citā sistēmā (slepeno makro vērtības netiek eksportētas)
  • ja lietotāja makro tiek izmantoti trigeru izteiksmēs, šie makro tiks atrisināti tikai tad, ja tie atsaucas uz parametru vai konstanti; tie NETIKS atrisināti, ja tie atsaucas uz hostu, vienuma atslēgu, funkciju, operatoru vai citu trigeru izteiksmi (slepenos makro nevar izmantot trigeru izteiksmēs)
  • ja lietotāja makro tiek izmantoti hostā, kuram ir zemā līmeņa atklāšanas noteikums ar hostu prototipiem, atklātie hosti pārmantos visus šajā hostā definētos lietotāja makro

Piemēri

1. piemērs

Hosts līmeņa makro izmantošana vienuma “SSH dēmona statuss” atslēgā:

net.tcp.service[ssh,,{$SSH_PORT}]

Šo vienumu var piešķirt vairākiem hostiem, ja vien šajos hostos ir definēta {$SSH_PORT} vērtība.

2. piemērs

Hosts līmeņa makro izmantošana trigerī “CPU slodze ir pārāk augsta”:

last(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}

Šāds trigeris tiktu izveidots veidnē, nevis rediģēts atsevišķos hosts.

Ja vēlaties izmantot vērtību skaitu kā funkcijas parametru (piemēram, max(/host/key,#3)), makro definīcijā iekļaujiet restītes simbolu, piemēram: SOME_PERIOD => #3.

3. piemērs

Divu makro izmantošana trigerī “CPU slodze ir pārāk augsta”:

min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}

Ņemiet vērā, ka makro var izmantot kā trigeru funkcijas parametru, šajā piemērā — funkcijas min() parametru.

4. piemērs

Sinhronizējiet aģenta nepieejamības nosacījumu ar vienuma atjaunināšanas intervālu:

  • definējiet makro {$INTERVAL} un izmantojiet to vienuma atjaunināšanas intervālā;
  • izmantojiet {$INTERVAL} kā aģenta nepieejamības trigera parametru:

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

5. piemērs

Centralizējiet darba laika konfigurāciju:

  • izveidojiet globālo makro {$WORKING_HOURS}, kura vērtība ir 1-5,09:00-18:00;
  • izmantojiet to laukā Darba laiks sadaļā Administrēšana > Vispārīgi > Lietotāja saskarne;
  • izmantojiet to lietotāja cilnes Multivide laukā Kad aktīvs sadaļā Lietotāji > Lietotāji;
  • izmantojiet to, lai iestatītu biežāku vienumu aptauju darba laikā:

  • izmantojiet to darbības nosacījumā Laika periods;
  • ja nepieciešams, pielāgojiet darba laiku sadaļā Administrēšana > Makro.
6. piemērs

Izmantojiet hosts prototipa makro, lai konfigurētu vienumus atklātajiem hostiem:

  1. Hosts prototipā definējiet lietotāja makro {$SNMPVALUE}, kā vērtību izmantojot zema līmeņa atklāšanas makro {#SNMPVALUE}:

  1. Piešķiriet Generic SNMPv2 veidni hosts prototipam.
  2. Izmantojiet {$SNMPVALUE} lauka SNMP OID vērtībā Generic SNMPv2 veidnes vienumiem.

Lietotāja makro konteksts

Skatiet lietotāja makro ar kontekstu.