2 Lietotāja makrosi
Pārskats
Lietotāja makro Zabbix ir atbalstīti, lai nodrošinātu lielāku elastību, papildus makro, kas ir atbalstīti pēc noklusējuma.
Lietotāja makro var definēt globālā, veidnes un hosta līmenī. Šiem makro ir īpaša sintakse:
{$MACRO}
Zabbix atrisina makro atbilstoši šādai prioritātei:
- Hosta līmeņa makro (pārbaudīti pirmie).
- Makro, kas definēti hosta pirmā līmeņa veidnēs (t. i., veidnēs, kas ir tieši saistītas ar hostu), sakārtoti pēc veidnes ID.
- Makro, kas definēti hosta otrā līmeņa veidnēs, sakārtoti pēc veidnes ID.
- Makro, kas definēti hosta trešā līmeņa veidnēs, sakārtoti pēc veidnes ID utt.
- Globālie makro (pārbaudīti pēdējie).
Citiem vārdiem sakot, ja makro hostam nepastāv, Zabbix mēģinās to atrast hosta veidnēs, palielinot dziļumu. Ja arī tad tas netiek atrasts, tiks izmantots globālais makro, ja tāds pastāv.
Ja vairākās saistītajās viena līmeņa veidnēs pastāv makro ar vienādu nosaukumu, tiks izmantots makro no veidnes ar zemāko ID. Tāpēc makro ar vienādu nosaukumu vairākās veidnēs ir konfigurācijas risks.
Ja Zabbix nevar atrast makro, makro netiks atrisināts.
Makro (tostarp lietotāja makro) pēc dizaina tiek atstāti neatrisināti sadaļā Konfigurācija (piemēram, trigeru sarakstā), lai sarežģītu konfigurāciju padarītu 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
- trigeris nosaukumā un aprakstā
- trigeris izteiksmes parametros un konstantēs (skatiet piemērus)
- daudzās citās vietās - skatiet pilnu 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.
- Hosts un veidnes līmeņa makro atveriet hosta vai veidnes īpašības un meklējiet 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 vairāk informācijas par šo makro. |
Konfigurējot lietotāja makro, ņemiet vērā šādu kontekstam specifisku 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 zema līmeņa atklāšanas noteikums ar hostu prototipiem, atklātie hosti pārmantos visus šajā hostā definētos lietotāja makro
Piemēri
Piemērs 1
Hosta līmeņa makro izmantošana vienuma atslēgā "Status of SSH daemon":
net.tcp.service[ssh,,{$SSH_PORT}]
Šo vienumu var piešķirt vairākiem hostiem, ja vien {$SSH_PORT} vērtība ir definēta šajos hostos.
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, kas ir vienāds ar1-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 aptauju darba laikā:

- izmantojiet to Time period darbības nosacījumā;
- pēc vajadzības 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.