Zema līmeņa atklāšanas makro
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 atrašanās vietas
LLD makro var izmantot:
- zema līmeņa atklāšanas noteikuma filtrā
- ligzdotos zema līmeņa atklāšanas noteikumos:
- JSONPath priekšapstrādes parametros
- JSONPath laukā pielāgotajiem LLD makro
- vienumu prototipos un atklāšanas prototipos:
- nosaukumā
- atslēgas parametros
- mērvienībā
- atjaunināšanas intervālā1
- taimautā1
- vēstures glabāšanas periodā1
- tendenču glabāšanas periodā1
- vienuma vērtības priekšapstrādes darbībās
- SNMP OID
- IPMI sensora laukā
- aprēķinātā/kopējā vienuma izteiksmē:
- izteiksmes konstantēs un funkciju parametros
- vienuma atslēgas parametros
- kopējā vienuma filtra nosacījumos (hostu grupas nosaukumā un taga nosaukumā)
- 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 atslēgas un vērtības laukā
- 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ā
- tagos
- trigeru prototipos:
- nosaukumā
- darbības datos
- izteiksmē (tikai konstantēs un funkciju parametros)
- URL
- aprakstā
- tagos
- grafiku prototipos:
- nosaukumā
- hostu prototipos:
- nosaukumā
- redzamajā nosaukumā
- pielāgotās saskarnes laukos: IP, DNS, ports, SNMPv1/SNMPv2 kopienas virkne, SNMPv2/SNMPv3 maksimālais atkārtojumu skaits, SNMPv1/SNMPv2/SNMPv3 atkārtojumu skaits, SNMPv3 konteksta nosaukums, SNMPv3 drošības nosaukums, SNMPv3 autentifikācijas ieejas frāze, SNMPv3 privātuma ieejas frāze
- hostu grupas prototipa nosaukumā
- hosta taga vērtībā
- hosta makro vērtībā
- (skatiet pilno sarakstu)
Visās šajās vietās, izņemot zema līmeņa atklāšanas noteikuma filtru, LLD makro var izmantot statiskā lietotāja makro 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 noteikuma filtrā), ļaujot, izmantojot regulāro izteiksmi, iegūt noteiktu makro vērtības daļu.
Piemēram, notikumu marķēšanai var būt nepieciešams iegūt klienta nosaukumu un saskarnes numuru no tālāk norādītā LLD makro:
{#IFALIAS}=customername_1
Lai to izdarītu, trigerim prototipa notikuma taga vērtības laukā kopā ar makro var izmantot regsub makro funkciju:

Ņemiet vērā, ka neiekļautiem vienuma atslēgas parametriem komati nav atļauti, tāpēc parametrs, kas satur makro funkciju, ir jāiekļauj pēdiņās.
Lai parametra iekšpusē aizsargātu dubultpēdiņas, jāizmanto atpakaļvērstā slīpsvītra (\).
Piemērs:
net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]
Plašāku informāciju par makro funkciju sintaksi skatiet šeit: 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.