2 Lietotāja makrosi
Pārskats
Lietotāja makrosi tiek atbalstīti Zabbix, lai nodrošinātu lielāku elastību, papildus makrosiem, kas tiek atbalstīti pēc noklusējuma.
Lietotāja makrosus var definēt globālā, veidnes un hosta līmenī. Šiem makrosiem ir īpaša sintakse:
{$MACRO}
Zabbix apstrādā makrosus saskaņā ar šādu prioritātes secību:
- hosta līmeņa makrosi (tiek pārbaudīti vispirms)
- makrosi, kas definēti hosta pirmā līmeņa veidnēm (t.i., veidnēm, kas ir tieši piesaistītas hostam), sakārtoti pēc veidnes ID
- makrosi, kas definēti hosta otrā līmeņa veidnēm, sakārtoti pēc veidnes ID
- makrosi, kas definēti hosta trešā līmeņa veidnēm, sakārtoti pēc veidnes ID utt.
- globālie makrosi (tiek pārbaudīti pēdējie)
Citiem vārdiem sakot, ja makross hostam nepastāv, Zabbix mēģinās to atrast hosta veidnēs ar pieaugošu dziļumu. Ja tas joprojām netiek atrasts, tiks izmantots globālais makross, ja tāds pastāv.
Ja makross ar vienādu nosaukumu pastāv vairākās piesaistītās viena un tā paša līmeņa veidnēs, tiks izmantots makross no veidnes ar zemāko ID. Tādējādi makrosu ar vienādu nosaukumu izmantošana vairākās veidnēs rada konfigurācijas risku.
Ja Zabbix nevar atrast makrosu, tas netiks apstrādāts.
Makrosi (tostarp lietotāja makrosi) pēc paredzētā principa paliek neatrisināti sadaļā Configuration (piemēram, trigeru sarakstā), lai padarītu sarežģītu konfigurāciju pārskatāmāku.
Lietotāja makrosus 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 hostu makrosus globālo makrosu vietā, jo globālo makrosu pievienošana, atjaunināšana vai dzēšana piespiež veikt inkrementālu konfigurācijas atjaunināšanu visiem hostiem. Plašāku informāciju skatiet sadaļā Pasīvās un aktīvās aģenta pārbaudes.
Konfigurācija
Lai definētu lietotāja makrosus, dodieties uz atbilstošo vietu lietotāja saskarnē:
- globālajiem makrosiem atveriet Administrēšana → Makrosi
- hosta un veidnes līmeņa makrosiem atveriet hosta vai veidnes rekvizītus un meklējiet cilni Makrosi
Lietotāja makrosam ir šādi atribūti:

| Parametrs | Apraksts |
|---|---|
| Macro | Makrosa nosaukums. Nosaukumam jābūt ietvertam figūriekavās un jāsākas ar dolāra zīmi. Piemērs: {$FRONTEND_URL}. Makrosu nosaukumos ir atļautas šādas rakstzīmes: A-Z (tikai lielie burti), 0-9, _, . |
| Value | Makrosa 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. Lietotāja makrosa vērtības maksimālais garums ir 2048 rakstzīmes. |
| Description | Teksta lauks, ko izmanto, lai sniegtu vairāk informācijas par šo makrosu. |
Konfigurējot lietotāja makrosus, ņemiet vērā šādu kontekstam specifisku darbību:
- ja lietotāja makrosi tiek izmantoti veidnes vienumos vai trigeros, apsveriet iespēju pievienot šos makrosus arī veidnei (pat ja tie ir definēti globāli); tādā veidā Text tipa makrosi darbosies, kā paredzēts, pēc veidnes eksportēšanas uz XML un importēšanas citā sistēmā (slepeno makrosu vērtības netiek eksportētas)
- ja lietotāja makrosi tiek izmantoti trigeru izteiksmēs, šie makrosi 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 trigera izteiksmi (slepenos makrosus nevar izmantot trigeru izteiksmēs)
- ja lietotāja makrosi tiek izmantoti hostā, kuram ir zema līmeņa atklāšanas kārtula ar hostu prototipiem, atklātie hosti mantos visus šajā hostā definētos lietotāja makrosus
Piemēri
Piemērs 1
Hosta līmeņa makrosa izmantošana vienuma atslēgā "SSH dēmona statuss":
net.tcp.service[ssh,,{$SSH_PORT}]
Šo vienumu var piešķirt vairākiem hostiem, ja šajos hostos ir definēta {$SSH_PORT} vērtība.
Piemērs 2
Hosta līmeņa makrosa izmantošana trigerī "CPU load is too high":
last(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}
Šāds trigeris tiktu izveidots veidnē, nevis rediģēts atsevišķos hostos.
Ja vēlaties izmantot vērtību skaitu kā funkcijas parametru (piemēram, max(/host/key,#3)), iekļaujiet restītes zīmi makrosa definīcijā šādi: SOME_PERIOD => #3
Piemērs 3
Divu makrosu izmantošana trigerī "CPU load is too high":
min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}
Ņemiet vērā, ka makrosu var izmantot kā trigera funkcijas parametru, šajā piemērā funkcijā min().
Piemērs 4
Sinhronizējiet aģents nepieejamības nosacījumu ar vienums atjaunināšanas intervālu:
- definējiet {$INTERVAL} makrosu un izmantojiet to vienums atjaunināšanas intervālā;
- izmantojiet {$INTERVAL} kā aģents nepieejamības trigeris parametru:
nodata(/ca_001/agent.ping,{$INTERVAL})=1
Piemērs 5
Centralizējiet darba laika konfigurāciju:
- izveidojiet globālu {$WORKING_HOURS} makro ar vērtību
1-5,09:00-18:00; - izmantojiet to laukā Working time sadaļā Administration → General → GUI;
- izmantojiet to laukā When active sadaļā Users → Users, lietotāja cilnē Media;
- izmantojiet to, lai iestatītu biežāku vienumu aptaujāšanu darba laikā:

- izmantojiet to darbības nosacījumā Time period;
- ja nepieciešams, pielāgojiet darba laiku sadaļā Administration → Macros.
Piemērs 6
Izmantojiet hosta prototipa makrosu, lai konfigurētu vienumus atklātajiem hostiem:
- hosta prototipā definējiet lietotāja makrosu {$SNMPVALUE} ar {#SNMPVALUE} zemā līmeņa atklāšanas makrosu kā vērtību:

- piešķiriet hosta prototipam veidni Generic SNMPv2;
- izmantojiet {$SNMPVALUE} veidnes Generic SNMPv2 vienumu laukā SNMP OID.
Lietotāja makro konteksts
Skatiet lietotāja makro ar kontekstu.