5 Zema līmeņa atklāšanas makrosi
Pārskats
Pastāv makro veids, kas tiek izmantots zemā līmeņa atklāšanas (LLD) funkcijā:
{#MACRO}
Tas ir makro, kas tiek izmantots LLD kārtulā un atgriež reālās failu sistēmas nosaukuma, tīkla saskarnes, SNMP OID u.c. vērtības.
Šos makro var izmantot, lai izveidotu entītiju prototipus (vienuma, trigera, grafika, LLD kārtulas, hosta un hostu grupas prototipus). Atklājot reālas failu sistēmas, tīkla saskarnes, virtuālās mašīnas u.c., šie makro tiek aizstāti ar reālām vērtībām un kalpo par pamatu reālu entītiju izveidei.
Daži zemā līmeņa atklāšanas makro tiek piegādāti kopā ar LLD funkciju Zabbix sistēmā — {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Tomēr, veidojot pielāgotu zemā līmeņa atklāšanas kārtulu, šo nosaukumu ievērošana nav obligāta. Tādā gadījumā varat izmantot jebkuru citu LLD makro nosaukumu un atsaukties uz šo nosaukumu.
Atbalstītie datu tipi
Definējot pielāgotus atklāšanas noteikumus, JSON objektos atgrieztajām īpašību vērtībām LLD makro jābūt vienam no šiem primitīvajiem tipiem:
- string
- number
- boolean
Masīvi, objekti un null vērtības netiek atbalstītas.
Jebkurš LLD makro, kas atsaucas uz šādu vērtību, paliks neaizvietots un tiks attēlots burtiski (piemēram, '{#MY_MACRO}') vienuma priekšapstrādes un izveides laikā.
Atbalstītās vietas
LLD makrosus var izmantot:
- zema līmeņa atklāšanas kārtulas filtrā
- ligzdotās zema līmeņa atklāšanas kārtulās, šeit:
- JSONPath priekšapstrādes parametros
- JSONPath laukā pielāgotiem LLD makrosiem
- vienumu prototipiem un atklāšanas prototipiem, šeit:
- nosaukumā
- atslēgas parametros
- mērvienībā
- atjaunināšanas intervālā1
- noildzē1
- vēstures glabāšanas periodā1
- tendenču glabāšanas periodā1
- vienuma vērtības priekšapstrādes soļos
- SNMP OID
- IPMI sensora laukā
- aprēķinātā/agregētā vienuma izteiksmē, šeit:
- izteiksmes konstantēs un funkciju parametros
- vienuma atslēgas parametros
- agregētā vienuma filtra nosacījumos (hostu grupas nosaukums un birkas nosaukums)
- SSH skriptā un Telnet skriptā
- datubāzes uzraudzības SQL vaicājumā
- JMX vienuma galapunkta laukā
- aprakstā
- HTTP aģenta URL laukā
- HTTP aģenta HTTP vaicājuma lauku laukā
- HTTP aģenta pieprasījuma pamatteksta laukā
- HTTP aģenta nepieciešamo statusa kodu laukā
- HTTP aģenta galveņu lauka atslēgā un vērtībā
- HTTP aģenta HTTP autentifikācijas lietotājvārda laukā
- HTTP aģenta HTTP autentifikācijas paroles laukā
- HTTP aģenta HTTP starpniekservera laukā
- HTTP aģenta HTTP SSL sertifikāta faila laukā
- HTTP aģenta HTTP SSL atslēgas faila laukā
- HTTP aģenta HTTP SSL atslēgas paroles laukā
- birkās
- trigeru prototipiem, šeit:
- nosaukumā
- darbības datos
- izteiksmē (tikai konstantēs un funkciju parametros)
- URL
- aprakstā
- birkās
- grafiku prototipiem, šeit:
- nosaukumā
- hostu prototipiem, šeit:
- nosaukumā
- redzamajā nosaukumā
- pielāgotajos saskarnes laukos: IP, DNS, ports, SNMP v1/v2 kopiena, SNMP v3 konteksta nosaukums, SNMP v3 drošības nosaukums, SNMP v3 autentifikācijas parole, SNMP v3 privātuma parole
- hostu grupas prototipa nosaukumā
- hosta birkas vērtībā
- hosta makrosa vērtībā
- (skatiet pilnu sarakstu)
Visās šajās vietās, izņemot zema līmeņa atklāšanas kārtulas filtru, LLD makrosus var izmantot statiskā lietotāja makrosa kontekstā.
Makro funkciju izmantošana
Makro funkcijas tiek atbalstītas zema līmeņa atklāšanas makros (izņemot zema līmeņa atklāšanas kārtulas filtrā), ļaujot izvilkt noteiktu makro vērtības daļu, izmantojot regulāro izteiksmi.
Piemēram, iespējams, vēlēsieties izvilkt klienta nosaukumu un saskarnes numuru no šāda ZLA makro notikumu marķēšanas vajadzībām:
{#IFALIAS}=customername_1
Lai to izdarītu, var izmantot regsub makro funkciju ar makro trigera prototipa notikuma taga vērtības laukā:

Ņemiet vērā, ka neiekļautiem vienuma atslēgas parametriem komati nav atļauti, tāpēc parametrs, kas satur makro funkciju, ir jāliek pēdiņās.
Atpakaļvērstās slīpsvītras rakstzīme (\) jāizmanto, lai parametrā atsoļotu dubultpēdiņas.
Piemērs:
net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]
Plašāku informāciju par makro funkciju sintaksi skatiet: Makro funkcijas
Makro funkcijas zema līmeņa atklāšanas makros tiek atbalstītas kopš Zabbix 4.0.
Vienumu prototipi bez atslēgas parametriem
Ja vienuma atslēgas parametri netiek izmantoti, ievietojiet LLD makrosu vienuma atslēgas parametra iekavās [...], lai tas tiktu apstrādāts kā parametrs un aizstāts atklāšanas laikā:
v_[{#MACRO}]
Piezīmes
1 Laukos, kas atzīmēti ar 1, vienai makrokomandai ir jāaizpilda viss lauks. Vairākas makrokomandas vienā laukā vai makrokomandas kopā ar tekstu netiek atbalstītas.