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.