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:
- Hosts līmeņa makro (tiek pārbaudīti vispirms).
- 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.
- Makro, kas definēti hosts otrā līmeņa veidnēs, sakārtoti pēc veidnes ID.
- Makro, kas definēti hosts trešā līmeņa veidnēs, sakārtoti pēc veidnes ID utt.
- 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 ir1-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:
- Hosts prototipā definējiet lietotāja makro
{$SNMPVALUE}, kā vērtību izmantojot zema līmeņa atklāšanas makro{#SNMPVALUE}:

- Piešķiriet Generic SNMPv2 veidni hosts prototipam.
- Izmantojiet
{$SNMPVALUE}lauka SNMP OID vērtībā Generic SNMPv2 veidnes vienumiem.
Lietotāja makro konteksts
Skatiet lietotāja makro ar kontekstu.