5 Makra wykrywania niskiego poziomu
Przegląd
Istnieje typ makra używanego w funkcji low-level discovery (LLD):
{#MACRO}
Jest to makro używane w regule LLD, które zwraca rzeczywiste wartości nazwy systemu plików, interfejsu sieciowego, SNMP OID itp.
Te makra mogą być używane do tworzenia prototypów encji (pozycja, wyzwalacz, wykres, reguła LLD, prototyp hosta i grupy hostów). Podczas wykrywania rzeczywistych systemów plików, interfejsów sieciowych, maszyn wirtualnych itp. makra te są zastępowane rzeczywistymi wartościami i stanowią podstawę do tworzenia rzeczywistych encji.
Niektóre makra low-level discovery są dostarczane „w pakiecie” z funkcją LLD w Zabbix — {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Jednak podczas tworzenia niestandardowej reguły low-level discovery nie ma obowiązku stosowania tych nazw. Możesz wtedy użyć dowolnej innej nazwy makra LLD i odwoływać się do tej nazwy.
Obsługiwane typy danych
Podczas definiowania niestandardowych reguł wykrywania wartości właściwości zwracane w obiektach JSON dla makr LLD muszą być jednym z następujących typów prostych:
- string
- number
- boolean
Tablice, obiekty i wartości null nie są obsługiwane.
Każde makro LLD odwołujące się do takiej wartości pozostanie nierozwinięte i będzie wyświetlane dosłownie (np. '{#MY_MACRO}') podczas wstępnego przetwarzania i tworzenia pozycji.
Obsługiwane lokalizacje
Makra LLD mogą być używane:
- w filtrze reguły wykrywania niskiego poziomu
- w zagnieżdżonych regułach wykrywania niskiego poziomu, w
- parametrach przetwarzania wstępnego JSONPath
- polu JSONPath dla niestandardowych makr LLD
- dla prototypów pozycji i prototypów wykrywania w
- nazwie
- parametrach klucza
- jednostce
- interwale aktualizacji1
- limicie czasu1
- okresie przechowywania historii1
- okresie przechowywania trendów1
- krokach przetwarzania wstępnego wartości pozycji
- OID SNMP
- polu sensora IPMI
- wyrażeniu pozycji obliczanej/agregowanej, w:
- stałych wyrażenia i parametrach funkcji
- parametrach klucza pozycji
- warunkach filtra pozycji agregowanej (nazwa grupy hostów i nazwa tagu)
- skrypcie SSH i skrypcie Telnet
- zapytaniu SQL monitorowania bazy danych
- polu endpointu pozycji JMX
- opisie
- polu URL agenta HTTP
- polu pól zapytania HTTP agenta HTTP
- polu treści żądania agenta HTTP
- polu wymaganych kodów statusu agenta HTTP
- kluczu i wartości pola nagłówków agenta HTTP
- polu nazwy użytkownika uwierzytelniania HTTP agenta HTTP
- polu hasła uwierzytelniania HTTP agenta HTTP
- polu proxy HTTP agenta HTTP
- polu pliku certyfikatu SSL HTTP agenta HTTP
- polu pliku klucza SSL HTTP agenta HTTP
- polu hasła klucza SSL HTTP agenta HTTP
- tagach
- dla prototypów wyzwalaczy w
- nazwie
- danych operacyjnych
- wyrażeniu (tylko w stałych i parametrach funkcji)
- URL
- opisie
- tagach
- dla prototypów wykresów w
- nazwie
- dla prototypów hostów w
- nazwie
- widocznej nazwie
- niestandardowych polach interfejsu: IP, DNS, port, społeczność SNMP v1/v2, nazwa kontekstu SNMP v3, nazwa zabezpieczeń SNMP v3, hasło uwierzytelniania SNMP v3, hasło prywatności SNMP v3
- nazwie prototypu grupy hostów
- wartości tagu hosta
- wartości makra hosta
- (zobacz pełną listę)
We wszystkich tych miejscach, z wyjątkiem filtra reguły wykrywania niskiego poziomu, makra LLD mogą być używane wewnątrz statycznego kontekstu makra użytkownika.
Używanie funkcji makr
Funkcje makr są obsługiwane w makrach low-level discovery (z wyjątkiem filtra reguły low-level discovery), umożliwiając wyodrębnienie określonej części wartości makra przy użyciu wyrażenia regularnego.
Na przykład możesz chcieć wyodrębnić nazwę klienta i numer interfejsu z następującego makra LLD na potrzeby tagowania zdarzeń:
{#IFALIAS}=customername_1
Aby to zrobić, można użyć funkcji makra regsub z makrem w polu wartości tagu zdarzenia prototypu wyzwalacza:

Należy pamiętać, że przecinki nie są dozwolone w nieujętych w cudzysłów parametrach klucza pozycji, dlatego parametr zawierający funkcję makra musi być ujęty w cudzysłów.
Znaku ukośnika odwrotnego (\) należy używać do poprzedzania podwójnych cudzysłowów wewnątrz parametru.
Przykład:
net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]
Więcej informacji o składni funkcji makr znajduje się tutaj: Funkcje makr
Funkcje makr są obsługiwane w makrach low-level discovery od wersji Zabbix 4.0.
Prototypy pozycji bez parametrów klucza
Gdy parametry klucza pozycji nie są używane, umieść makro LLD wewnątrz nawiasów parametrów klucza pozycji [...], aby było traktowane jako parametr i zastępowane podczas wykrywania:
v_[{#MACRO}]
Przypisy
1 W polach oznaczonych 1 pojedyncze makro musi wypełniać całe pole. Wiele makr w polu lub makra zmieszane z tekstem nie są obsługiwane.