3 Odkrywanie niskiego poziomu
Przegląd
Low-level discovery (LLD) zapewnia sposób automatycznego tworzenia pozycji, wyzwalaczy i wykresów dla różnych encji na hoście. Na przykład Zabbix może automatycznie rozpocząć monitorowanie systemów plików lub interfejsów sieciowych na Twojej maszynie, bez konieczności ręcznego tworzenia pozycji dla każdego systemu plików lub interfejsu sieciowego. LLD może również tworzyć hosty, na przykład w celu uzupełnienia listy maszyn wirtualnych wykrytych na hiperwizorze, a także zagnieżdżone reguły wykrywania, umożliwiające wielopoziomowe wykrywanie. Dodatkowo możliwe jest skonfigurowanie Zabbix tak, aby automatycznie usuwał niepotrzebne encje na podstawie rzeczywistych wyników okresowo wykonywanego wykrywania.
Użytkownik może zdefiniować własne typy wykrywania, pod warunkiem że są zgodne z określonym protokołem JSON.
Ogólna architektura procesu wykrywania wygląda następująco.
Najpierw użytkownik tworzy regułę wykrywania w Data collection > Templates, w kolumnie Discovery. Reguła wykrywania składa się z (1) pozycji, która wykrywa wymagane encje (na przykład systemy plików lub interfejsy sieciowe), oraz (2) prototypów pozycji, wyzwalaczy i wykresów, które mają zostać utworzone na podstawie wartości tej pozycji.
Pozycja wykrywająca wymagane encje jest podobna do zwykłej pozycji spotykanej w innych miejscach: serwer żąda od agenta Zabbix (lub innego komponentu, zależnie od ustawionego typu pozycji) wartości tej pozycji, a agent odpowiada wartością tekstową. Różnica polega na tym, że wartość zwracana przez agenta powinna zawierać listę wykrytych encji w formacie JSON. Chociaż szczegóły tego formatu są istotne tylko dla implementatorów niestandardowych kontroli wykrywania, warto wiedzieć, że zwracana wartość zawiera listę par makro → wartość. Na przykład pozycja "net.if.discovery" może zwrócić dwie pary: "{#IFNAME}" → "lo" oraz "{#IFNAME}" → "eth0".
Te makra są używane w nazwach, kluczach i innych polach prototypów, gdzie są następnie zastępowane otrzymanymi wartościami w celu utworzenia rzeczywistych pozycji, wyzwalaczy, wykresów, a nawet hostów dla każdej wykrytej encji. Zobacz pełną listę opcji użycia makr LLD.
Gdy serwer otrzyma wartość dla pozycji wykrywania, analizuje pary makro → wartość i dla każdej pary generuje rzeczywiste pozycje, wyzwalacze i wykresy na podstawie ich prototypów. W powyższym przykładzie z "net.if.discovery" serwer wygenerowałby jeden zestaw pozycji, wyzwalaczy i wykresów dla interfejsu pętli zwrotnej "lo" oraz drugi zestaw dla interfejsu "eth0".
Należy pamiętać, że od Zabbix 4.2 zmienił się format JSON zwracanego przez reguły low-level discovery. Nie oczekuje się już, że JSON będzie zawierał obiekt "data". Low-level discovery akceptuje teraz zwykły JSON zawierający tablicę, aby obsługiwać nowe funkcje, takie jak preprocessing wartości pozycji oraz niestandardowe ścieżki do wartości makr low-level discovery w dokumencie JSON.
Wbudowane klucze wykrywania zostały zaktualizowane tak, aby zwracały tablicę wierszy LLD w katalogu głównym dokumentu JSON.
Zabbix automatycznie wyodrębni makro i wartość, jeśli pole tablicy używa składni {#MACRO} jako klucza.
Wszelkie nowe natywne kontrole wykrywania będą używać nowej składni bez elementów "data".
Podczas przetwarzania wartości low-level discovery najpierw lokalizowany jest katalog główny (tablica pod $. lub $.data).
Chociaż element "data" został usunięty ze wszystkich natywnych pozycji związanych z wykrywaniem, ze względu na zgodność wsteczną Zabbix nadal będzie akceptował notację JSON z elementem "data", choć jej użycie nie jest zalecane.
Jeśli JSON zawiera obiekt tylko z jednym elementem tablicy "data", zawartość tego elementu zostanie automatycznie wyodrębniona przy użyciu JSONPath $.data.
Low-level discovery akceptuje teraz opcjonalne makra LLD zdefiniowane przez użytkownika z niestandardową ścieżką określoną w składni JSONPath.
W rezultacie powyższych zmian nowsze agenty nie będą już mogły współpracować ze starszym serwerem Zabbix.
Zobacz także: Wykryte encje
Konfigurowanie wykrywania niskiego poziomu
Przedstawimy wykrywanie niskiego poziomu na przykładzie wykrywania systemów plików.
Aby skonfigurować wykrywanie, wykonaj następujące czynności:
- Przejdź do: Zbieranie danych > Szablony lub Hosty.
- Kliknij Wykrywanie w wierszu odpowiedniego szablonu/hosta.

- Kliknij Utwórz regułę wykrywania w prawym górnym rogu ekranu.
- Uzupełnij formularz reguły wykrywania, podając wymagane informacje.
Reguła wykrywania
Formularz reguły wykrywania zawiera pięć zakładek, które od lewej do prawej przedstawiają przepływ danych podczas wykrywania:
- Reguła wykrywania — określa przede wszystkim wbudowaną pozycję lub niestandardowy skrypt służący do pobierania danych wykrywania.
- Przetwarzanie wstępne — stosuje przetwarzanie wstępne do wykrytych danych.
- Makra LLD — umożliwia wyodrębnienie wartości makr do użycia w wykrytych pozycjach, wyzwalaczach itd.
- Filtry — umożliwia filtrowanie wykrytych wartości.
- Nadpisania — umożliwia modyfikację pozycji, wyzwalaczy, wykresów lub prototypów hostów podczas stosowania do określonych wykrytych obiektów.
Zakładka Reguła wykrywania zawiera klucz pozycji używany do wykrywania (a także niektóre ogólne atrybuty reguły wykrywania):

Wszystkie wymagane pola wejściowe są oznaczone czerwoną gwiazdką.
| Parameter | Description |
|---|---|
| Name | Nazwa reguły wykrywania. |
| Type | Typ sprawdzenia używanego do wykrywania. W tym przykładzie używamy typu pozycji Zabbix agent. Reguła wykrywania może być także pozycją zależną, zależną od zwykłej pozycji. Nie może zależeć od innej reguły wykrywania. W przypadku pozycji zależnej wybierz odpowiedni typ (Dependent item) i określ pozycję nadrzędną w polu „Master item”. Pozycja nadrzędna musi istnieć. |
| Key | Wprowadź klucz pozycji wykrywania (do 2048 znaków). Na przykład możesz użyć wbudowanego klucza pozycji „vfs.fs.discovery”, aby zwrócić ciąg JSON z listą systemów plików obecnych na komputerze, ich typami i opcjami montowania. Zwróć uwagę, że inną opcją wykrywania systemów plików jest użycie wyników wykrywania przez klucz agenta „vfs.fs.get” (zobacz przykład). |
| Update interval | To pole określa, jak często Zabbix wykonuje wykrywanie. Na początku, gdy dopiero konfigurujesz wykrywanie systemów plików, możesz chcieć ustawić krótki interwał, ale gdy już wiesz, że działa, możesz ustawić 30 minut lub więcej, ponieważ systemy plików zwykle nie zmieniają się zbyt często. Obsługiwane są sufiksy czasu, np. 30s, 1m, 2h, 1d. Obsługiwane są makra użytkownika. Uwaga: Interwał aktualizacji można ustawić na „0” tylko wtedy, gdy istnieją niestandardowe interwały z wartością różną od zera. Jeśli ustawiono „0” i istnieje niestandardowy interwał (elastyczny lub harmonogram) z wartością różną od zera, pozycja będzie odpytywana w czasie trwania niestandardowego interwału. Nowe reguły wykrywania zostaną sprawdzone w ciągu 60 sekund od ich utworzenia, chyba że mają Harmonogram lub Elastyczny interwał aktualizacji, a Update interval jest ustawiony na 0. Uwaga, że w przypadku istniejącej reguły wykrywania wykrywanie można wykonać natychmiast, naciskając przycisk Execute now. |
| Custom intervals | Możesz utworzyć niestandardowe reguły sprawdzania pozycji: Flexible — utwórz wyjątek od Update interval (interwał z inną częstotliwością) Scheduling — utwórz niestandardowy harmonogram odpytywania. Szczegółowe informacje można znaleźć w sekcji Custom intervals. |
| Timeout | Ustaw limit czasu sprawdzenia wykrywania. Wybierz opcję limitu czasu: Global — używany jest limit czasu proxy/globalny (wyświetlany w wyszarzonym polu Timeout); Override — używany jest niestandardowy limit czasu (ustawiany w polu Timeout; dozwolony zakres: 1 - 600s). Obsługiwane są sufiksy czasu, np. 30s, 1m, oraz makra użytkownika. Kliknięcie odnośnika Timeouts umożliwia skonfigurowanie limitów czasu proxy lub limitów globalnych (jeśli proxy nie jest używany). Zwróć uwagę, że odnośnik Timeouts jest widoczny tylko dla użytkowników typu Super admin z uprawnieniami do sekcji frontend Administration > General lub Administration > Proxies. |
| Delete lost resources | Określ, jak szybko wykryta jednostka zostanie usunięta, gdy jej status wykrywania zmieni się na „Not discovered anymore”: Never — nie zostanie usunięta; Immediately — zostanie usunięta natychmiast; After — zostanie usunięta po określonym czasie. Wartość musi być większa niż wartość Disable lost resources. Obsługiwane są sufiksy czasu, np. 2h, 1d. Obsługiwane są makra użytkownika. Uwaga: Używanie opcji „Immediately” nie jest zalecane, ponieważ nawet błędna edycja filtra może spowodować usunięcie jednostki wraz ze wszystkimi danymi historycznymi. Zwróć uwagę, że zasoby wyłączone ręcznie nie zostaną usunięte przez wykrywanie niskiego poziomu. |
| Disable lost resources | Określ, jak szybko wykryta jednostka zostanie wyłączona, gdy jej status wykrywania zmieni się na „Not discovered anymore”: Never — nie zostanie wyłączona; Immediately — zostanie wyłączona natychmiast; After — zostanie wyłączona po określonym czasie. Wartość powinna być większa niż interwał aktualizacji reguły wykrywania. Zwróć uwagę, że zasoby wyłączone automatycznie zostaną ponownie włączone, jeśli zostaną ponownie wykryte przez wykrywanie niskiego poziomu. Zasoby wyłączone ręcznie nie zostaną ponownie włączone po ponownym wykryciu. To pole nie jest wyświetlane, jeśli Delete lost resources jest ustawione na „Immediately”. Obsługiwane są sufiksy czasu, np. 2h, 1d. Obsługiwane są makra użytkownika. |
| Description | Wprowadź opis. |
| Enabled | Jeśli zaznaczone, reguła będzie przetwarzana. |
Historia reguły wykrywania nie jest zachowywana.
Wstępne przetwarzanie
Zakładka Wstępne przetwarzanie umożliwia zdefiniowanie reguł transformacji stosowanych do wyniku wykrywania. Na tym etapie możliwa jest jedna lub wiele transformacji. Transformacje są wykonywane w kolejności, w jakiej zostały zdefiniowane. Całe wstępne przetwarzanie jest wykonywane przez serwer Zabbix.
Zobacz także:

| Type | ||
|---|---|---|
| Transformacja | Opis | |
| Text | ||
| Wyrażenie regularne | Dopasuj otrzymaną wartość do wyrażenia regularnego <pattern> i zastąp wartość wyodrębnionym <output>. Wyrażenie regularne obsługuje wyodrębnianie maksymalnie 10 przechwyconych grup za pomocą sekwencji \N. Parametry: pattern - wyrażenie regularne output - szablon formatowania danych wyjściowych. Sekwencja ucieczki \N (gdzie N=1…9) jest zastępowana N-tą dopasowaną grupą. Sekwencja ucieczki \0 jest zastępowana dopasowanym tekstem. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Zastąp | Znajdź wyszukiwany ciąg i zastąp go innym (lub niczym). Wszystkie wystąpienia wyszukiwanego ciągu zostaną zastąpione. Parametry: search string - ciąg do znalezienia i zastąpienia, z rozróżnianiem wielkości liter (wymagane) replacement - ciąg, którym zostanie zastąpiony wyszukiwany ciąg. Ciąg zastępujący może być również pusty, co w praktyce pozwala usunąć wyszukiwany ciąg po jego znalezieniu. Możliwe jest użycie sekwencji ucieczki do wyszukiwania lub zastępowania znaków nowej linii, powrotu karetki, tabulatorów i spacji: "\n \r \t \s"; ukośnik odwrotny można zapisać jako "\\", a sekwencje ucieczki można zapisać jako "\\n". Uciekanie znaków nowej linii, powrotu karetki i tabulatorów jest wykonywane automatycznie podczas wykrywania niskiego poziomu. |
|
| Structured data | ||
| JSONPath | Wyodrębnij wartość lub fragment z danych JSON przy użyciu funkcjonalności JSONPath. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| XML XPath | Wyodrębnij wartość lub fragment z danych XML przy użyciu funkcjonalności XPath. Aby ta opcja działała, serwer Zabbix musi być skompilowany z obsługą libxml. Przykłady: number(/document/item/value) wyodrębni 10 z <document><item><value>10</value></item></document>number(/document/item/@attribute) wyodrębni 10 z <document><item attribute="10"></item></document>/document/item wyodrębni <item><value>10</value></item> z <document><item><value>10</value></item></document>Pamiętaj, że przestrzenie nazw nie są obsługiwane. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| CSV do JSON | Konwertuj dane pliku CSV do formatu JSON. Więcej informacji znajdziesz tutaj: Wstępne przetwarzanie CSV do JSON. |
|
| XML do JSON | Konwertuj dane w formacie XML do JSON. Więcej informacji znajdziesz tutaj: Reguły serializacji. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| SNMP | ||
| Wartość SNMP walk | Wyodrębnij wartość według określonej nazwy OID/MIB i zastosuj opcje formatowania: Unchanged - zwróć Hex-STRING jako nieuciekany ciąg szesnastkowy (uwaga: wskazówki wyświetlania są nadal stosowane); UTF-8 from Hex-STRING - konwertuj Hex-STRING do ciągu UTF-8; MAC from Hex-STRING - konwertuj Hex-STRING do ciągu adresu MAC (w którym ' ' zostanie zastąpione przez ':');Integer from BITS - konwertuj pierwsze 8 bajtów ciągu bitowego wyrażonego jako sekwencja znaków szesnastkowych (np. "1A 2B 3C 4D") na 64-bitową liczbę całkowitą bez znaku. W ciągach bitowych dłuższych niż 8 bajtów kolejne bajty zostaną zignorowane. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| SNMP walk do JSON | Konwertuj wartości SNMP do JSON. Określ nazwę pola w JSON oraz odpowiadającą jej ścieżkę SNMP OID. Wartości pól zostaną wypełnione wartościami z określonej ścieżki SNMP OID. Możesz użyć tego kroku wstępnego przetwarzania do wykrywania SNMP OID. Dostępne są podobne opcje formatowania wartości jak w kroku Wartość SNMP walk. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Wartość SNMP get | Zastosuj opcje formatowania do wartości pobranej przez SNMP get: UTF-8 from Hex-STRING - konwertuj Hex-STRING do ciągu UTF-8; MAC from Hex-STRING - konwertuj Hex-STRING do ciągu adresu MAC (w którym ' ' zostanie zastąpione przez ':');Integer from BITS - konwertuj pierwsze 8 bajtów ciągu bitowego wyrażonego jako sekwencja znaków szesnastkowych (np. "1A 2B 3C 4D") na 64-bitową liczbę całkowitą bez znaku. W ciągach bitowych dłuższych niż 8 bajtów kolejne bajty zostaną zignorowane. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Custom scripts | ||
| JavaScript | Wprowadź kod JavaScript w modalnym edytorze, który otwiera się po kliknięciu w polu parametru lub ikonie ołówka obok niego. Pamiętaj, że dostępna długość kodu JavaScript zależy od używanej bazy danych. Więcej informacji znajdziesz tutaj: Wstępne przetwarzanie JavaScript |
|
| Validation | ||
| Nie pasuje do wyrażenia regularnego | Określ wyrażenie regularne, do którego wartość nie może pasować. Np. Error:(.*?)\.Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Sprawdź błąd w JSON | Sprawdź komunikat błędu na poziomie aplikacji znajdujący się pod JSONPath. Zatrzymaj przetwarzanie, jeśli operacja się powiedzie i komunikat nie jest pusty; w przeciwnym razie kontynuuj przetwarzanie z wartością sprzed tego kroku wstępnego przetwarzania. Pamiętaj, że te błędy usług zewnętrznych są zgłaszane użytkownikowi w niezmienionej postaci, bez dodawania informacji o kroku wstępnego przetwarzania. Np. $.errors. Jeśli zostanie odebrany JSON taki jak {"errors":"e1"}, następny krok wstępnego przetwarzania nie zostanie wykonany.Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Sprawdź błąd w XML | Sprawdź komunikat błędu na poziomie aplikacji znajdujący się pod XPath. Zatrzymaj przetwarzanie, jeśli operacja się powiedzie i komunikat nie jest pusty; w przeciwnym razie kontynuuj przetwarzanie z wartością sprzed tego kroku wstępnego przetwarzania. Pamiętaj, że te błędy usług zewnętrznych są zgłaszane użytkownikowi w niezmienionej postaci, bez dodawania informacji o kroku wstępnego przetwarzania. W przypadku niepowodzenia parsowania nieprawidłowego XML nie zostanie zgłoszony żaden błąd. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Pasuje do wyrażenia regularnego | Określ wyrażenie regularne, do którego wartość musi pasować. Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. |
|
| Throttling | ||
| Odrzuć niezmienione z heartbeat | Odrzuć wartość, jeśli nie zmieniła się w zdefiniowanym okresie czasu (w sekundach). Obsługiwane są dodatnie wartości całkowite określające sekundy (minimum - 1 sekunda). W tym polu można używać sufiksów czasu (np. 30s, 1m, 2h, 1d). W tym polu można używać makr użytkownika i makr wykrywania niskiego poziomu. Dla discovery item można określić tylko jedną opcję ograniczania częstotliwości. Np. 1m. Jeśli identyczny tekst zostanie przekazany do tej reguły dwa razy w ciągu 60 sekund, zostanie odrzucony.Uwaga: Zmiana prototypów pozycji nie resetuje ograniczania częstotliwości. Ograniczanie częstotliwości jest resetowane tylko wtedy, gdy zmienią się kroki wstępnego przetwarzania. |
|
| Prometheus | ||
| Prometheus do JSON | Konwertuj wymagane metryki Prometheus do JSON. Szczegóły znajdziesz w sekcji Kontrole Prometheus. |
|
Pamiętaj, że jeśli reguła wykrywania została zastosowana do hosta przez szablon, zawartość tej zakładki jest tylko do odczytu.
Makra niestandardowe
Zakładka Makra LLD umożliwia określenie niestandardowych makr wykrywania niskiego poziomu.
Makra niestandardowe są przydatne w przypadkach, gdy zwrócony JSON nie ma już zdefiniowanych wymaganych makr. Na przykład:
- Natywny klucz
vfs.fs.discoverydo wykrywania systemów plików zwraca JSON z pewnymi wstępnie zdefiniowanymi makrami LLD, takimi jak {#FSNAME}, {#FSTYPE}. Te makra mogą być używane bezpośrednio w prototypach pozycji i wyzwalaczy (zobacz kolejne sekcje strony); definiowanie makr niestandardowych nie jest potrzebne; - Pozycja agenta
vfs.fs.getrównież zwraca JSON z danymi systemu plików, ale bez żadnych wstępnie zdefiniowanych makr LLD. W takim przypadku możesz samodzielnie zdefiniować makra i odwzorować je na wartości w JSON za pomocą JSONPath:

Wyodrębnione wartości mogą być używane w wykrytych pozycjach, wyzwalaczach itd. Pamiętaj, że wartości będą wyodrębniane z wyniku wykrywania oraz wszystkich dotychczasowych kroków przetwarzania wstępnego.
| Parameter | Description |
|---|---|
| Makro LLD | Nazwa makra wykrywania niskiego poziomu, z użyciem następującej składni: {#MACRO}. |
| JSONPath | Ścieżka używana do wyodrębnienia wartości makra LLD z wiersza LLD, z użyciem składni JSONPath. Wartości wyodrębnione ze zwróconego JSON są używane do zastępowania makr LLD w polach prototypów pozycji, wyzwalaczy itd. JSONPath można określić przy użyciu notacji kropkowej lub notacji nawiasowej. Notacja nawiasowa powinna być używana w przypadku znaków specjalnych i Unicode, na przykład $['unicode + special chars #1']['unicode + special chars #2'].Na przykład $.foo wyodrębni „bar” i „baz” z tego JSON: [{"foo":"bar"}, {"foo":"baz"}]Zwróć uwagę, że $.foo wyodrębni „bar” i „baz” również z tego JSON: {"data":[{"foo":"bar"}, {"foo":"baz"}]} ponieważ pojedynczy obiekt „data” jest przetwarzany automatycznie (dla zgodności wstecznej z implementacją wykrywania niskiego poziomu w wersjach Zabbix wcześniejszych niż 4.2). |
Filtr
Filtr może być użyty do generowania rzeczywistych pozycji, wyzwalaczy i wykresów tylko dla encji spełniających kryteria. Karta Filtry zawiera definicje filtrów reguły wykrywania, umożliwiające filtrowanie wartości wykrywania:

| Parametr | Opis |
|---|---|
| Typ obliczania | Dostępne są następujące opcje obliczania filtrów: And - wszystkie filtry muszą zostać spełnione; Or - wystarczy, jeśli jeden filtr zostanie spełniony; And/Or - używa And dla różnych nazw makr i Or dla tej samej nazwy makra; Custom expression - oferuje możliwość zdefiniowania własnego sposobu obliczania filtrów. Formuła musi zawierać wszystkie filtry z listy. Ograniczenie do 255 znaków. |
| Filtry | Dostępne są następujące operatory warunków filtra: matches, does not match, exists, does not exist. Operatory matches i does not match oczekują wyrażenia regularnego zgodnego z Perl (PCRE). Na przykład, jeśli interesują Cię tylko systemy plików C:, D: i E:, możesz wpisać {#FSNAME} w polu „Macro”, a wyrażenie regularne "\C|\D|\E" w polu tekstowym „Regular expression”. Filtrowanie jest również możliwe według typów systemów plików przy użyciu makra {#FSTYPE} (np. "\ext|\reiserfs") oraz według typów dysków (obsługiwane tylko przez agent Windows) przy użyciu makra {#FSDRIVETYPE} (np. "fixed"). W polu „Regular expression” można wprowadzić wyrażenie regularne lub odwołać się do globalnego wyrażenia regularnego. Aby przetestować wyrażenie regularne, można użyć „grep -E”, na przykład: ````for f in ext2 nfs reiserfs smbfs; do echo $f | grep -E 'ext|^reiserfs' || echo "SKIP: $f"; done```` Operatory exists i does not exist umożliwiają filtrowanie encji na podstawie obecności lub braku określonego makra LLD w odpowiedzi. Zwróć uwagę, że jeśli makro z filtra nie występuje w odpowiedzi, znaleziona encja zostanie zignorowana, chyba że dla tego makra określono warunek „does not exist”. Wyświetlone zostanie ostrzeżenie, jeśli brak makra wpływa na wynik wyrażenia. Na przykład, jeśli brakuje {#B} w: {#A} matches 1 and {#B} matches 2 - spowoduje ostrzeżenie {#A} matches 1 or {#B} matches 2 - bez ostrzeżenia |
Błąd lub literówka w wyrażeniu regularnym użytym w regule LLD (na przykład nieprawidłowe wyrażenie regularne „File systems for discovery”) może spowodować usunięcie tysięcy elementów konfiguracji, wartości historycznych i zdarzeń dla wielu hostów.
Baza danych Zabbix w MySQL musi zostać utworzona z rozróżnianiem wielkości liter, jeśli nazwy systemów plików różniące się wyłącznie wielkością liter mają być wykrywane poprawnie.
Nadpisanie
Karta Overrides umożliwia ustawienie reguł modyfikujących listę prototypów pozycji, wyzwalaczy, wykresów, hostów i wykrywania lub ich atrybuty dla wykrytych obiektów spełniających podane kryteria.

Nadpisania (jeśli istnieją) są wyświetlane na liście z możliwością zmiany kolejności metodą przeciągnij i upuść i są wykonywane w kolejności, w jakiej zostały zdefiniowane. Aby skonfigurować szczegóły nowego nadpisania, kliknij
w bloku Overrides.
Aby edytować istniejące nadpisanie, kliknij nazwę nadpisania.
Otworzy się wyskakujące okno umożliwiające edycję szczegółów reguły nadpisania.

Wszystkie obowiązkowe parametry są oznaczone czerwonymi gwiazdkami.
| Parameter | Description |
|---|---|
| Name | Unikalna (w obrębie reguły LLD) nazwa nadpisania. |
| If filter matches | Określa, czy kolejne nadpisania powinny być przetwarzane po spełnieniu warunków filtra: Continue overrides - kolejne nadpisania będą przetwarzane. Stop processing - operacje z poprzednich nadpisań (jeśli istnieją) oraz z tego nadpisania zostaną wykonane, a kolejne nadpisania zostaną zignorowane dla pasujących wierszy LLD. |
| Filters | Określa, do których wykrytych encji ma zostać zastosowane nadpisanie. Filtry nadpisania są przetwarzane po filtrach reguły wykrywania i mają tę samą funkcjonalność. |
| Operations | Operacje nadpisania są wyświetlane z następującymi szczegółami: Condition - typ obiektu i warunek, który musi zostać spełniony dla nazwy obiektu; na przykład: Prototyp wyzwalacza nie jest równy Disk space is low (used > 50%). Actions - wyświetlane są odnośniki do edycji i usunięcia operacji. |
Konfigurowanie operacji
Aby skonfigurować szczegóły nowej operacji, kliknij
w bloku Operations.
Aby edytować istniejącą operację, kliknij
obok operacji.
Otworzy się wyskakujące okno, w którym można edytować szczegóły operacji.

| Parameter | Description | ||
|---|---|---|---|
| Object | Dostępnych jest pięć typów obiektów: Prototyp pozycji Prototyp wyzwalacza Prototyp wykresu Prototyp hosta Prototyp wykrywania |
||
| Condition | Umożliwia filtrowanie encji, do których operacja ma zostać zastosowana. | ||
| Operator | Obsługiwane operatory: equals - zastosuj do tego prototypu does not equal - zastosuj do wszystkich prototypów oprócz tego contains - zastosuj, jeśli nazwa prototypu zawiera ten ciąg does not contain - zastosuj, jeśli nazwa prototypu nie zawiera tego ciągu matches - zastosuj, jeśli nazwa prototypu pasuje do wyrażenia regularnego does not match - zastosuj, jeśli nazwa prototypu nie pasuje do wyrażenia regularnego |
||
| Pattern | Wyrażenie regularne lub ciąg do wyszukania. | ||
| Object: Item prototype | |||
| Create enabled | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu pozycji: Yes - pozycja zostanie dodana w stanie włączonym. No - pozycja zostanie dodana do wykrytej encji, ale w stanie wyłączonym. |
||
| Discover | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu pozycji: Yes - pozycja zostanie dodana. No - pozycja nie zostanie dodana. |
||
| Update interval | Po zaznaczeniu pola wyboru pojawią się dwie opcje umożliwiające ustawienie innego interwału dla pozycji: Delay - interwał aktualizacji pozycji. Obsługiwane są makra użytkownika i sufiksy czasu (np. 30s, 1m, 2h, 1d). Należy ustawić na 0, jeśli używany jest Custom interval. Custom interval - kliknij , aby określić elastyczne/planowane interwały. Szczegółowe informacje można znaleźć w sekcji Custom intervals. |
||
| History | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające ustawienie innego okresu przechowywania historii dla pozycji: Do not store - jeśli wybrane, historia nie będzie przechowywana. Store up to - jeśli wybrane, po prawej stronie pojawi się pole wejściowe do określenia okresu przechowywania. Obsługiwane są makra użytkownika i makra LLD. |
||
| Trends | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające ustawienie innego okresu przechowywania trendów dla pozycji: Do not store - jeśli wybrane, trendy nie będą przechowywane. Store up to - jeśli wybrane, po prawej stronie pojawi się pole wejściowe do określenia okresu przechowywania. Obsługiwane są makra użytkownika i makra LLD. |
||
| Tags | Po zaznaczeniu pola wyboru pojawi się nowy blok umożliwiający określenie par tag-wartość. Te tagi zostaną dołączone do tagów określonych w prototypie pozycji, nawet jeśli nazwy tagów są takie same. |
||
| Object: Trigger prototype | |||
| Create enabled | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu wyzwalacza: Yes - wyzwalacz zostanie dodany w stanie włączonym. No - wyzwalacz zostanie dodany do wykrytej encji, ale w stanie wyłączonym. |
||
| Discover | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu wyzwalacza: Yes - wyzwalacz zostanie dodany. No - wyzwalacz nie zostanie dodany. |
||
| Severity | Po zaznaczeniu pola wyboru pojawią się przyciski ważności wyzwalacza, umożliwiające modyfikację ważności wyzwalacza. | ||
| Tags | Po zaznaczeniu pola wyboru pojawi się nowy blok umożliwiający określenie par tag-wartość. Te tagi zostaną dołączone do tagów określonych w prototypie wyzwalacza, nawet jeśli nazwy tagów są takie same. |
||
| Object: Graph prototype | |||
| Discover | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu wykresu: Yes - wykres zostanie dodany. No - wykres nie zostanie dodany. |
||
| Object: Host prototype | |||
| Create enabled | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu hosta: Yes - host zostanie utworzony w stanie włączonym. No - host zostanie utworzony w stanie wyłączonym. |
||
| Discover | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające nadpisanie oryginalnych ustawień prototypu hosta: Yes - host zostanie wykryty. No - host nie zostanie wykryty. |
||
| Link templates | Po zaznaczeniu pola wyboru pojawi się pole wejściowe do określenia szablonów. Zacznij wpisywać nazwę szablonu lub kliknij Select obok pola i wybierz szablony z listy w wyskakującym oknie. Szablony z tego nadpisania są dodawane do wszystkich szablonów już podłączonych do prototypu hosta. |
||
| Tags | Po zaznaczeniu pola wyboru pojawi się nowy blok umożliwiający określenie par tag-wartość. Te tagi zostaną dołączone do tagów określonych w prototypie hosta, nawet jeśli nazwy tagów są takie same. |
||
| Host inventory | Po zaznaczeniu pola wyboru pojawią się przyciski umożliwiające wybór innego trybu inwentarza dla prototypu hosta: Disabled - nie wypełniaj inwentarza hosta Manual - podaj szczegóły ręcznie Automated - automatycznie wypełnij dane inwentarza hosta na podstawie zebranych metryk. |
||
Przyciski formularza
Przyciski na dole formularza umożliwiają wykonanie kilku operacji.
![]() |
Dodaj regułę wykrywania. Ten przycisk jest dostępny tylko dla nowych reguł wykrywania. |
![]() |
Zaktualizuj właściwości reguły wykrywania. Ten przycisk jest dostępny tylko dla istniejących reguł wykrywania. |
![]() |
Utwórz kolejną regułę wykrywania na podstawie właściwości bieżącej reguły wykrywania. |
![]() |
Wykonaj wykrywanie natychmiast na podstawie reguły wykrywania. Reguła wykrywania musi już istnieć. Zobacz więcej szczegółów. Uwaga: podczas natychmiastowego wykonywania wykrywania pamięć podręczna konfiguracji nie jest aktualizowana, dlatego wynik nie będzie odzwierciedlał bardzo niedawnych zmian w konfiguracji reguły wykrywania. |
![]() |
Przetestuj konfigurację reguły wykrywania. Użyj tego przycisku, aby zweryfikować ustawienia konfiguracji (takie jak łączność i poprawność parametrów) bez trwałego stosowania jakichkolwiek zmian. |
![]() |
Usuń regułę wykrywania. |
![]() |
Anuluj edycję właściwości reguły wykrywania. |
Odkryte encje
Poniższe zrzuty ekranu ilustrują, jak odkryte pozycje, wyzwalacze i wykresy wyglądają w konfiguracji hosta. Odkryte encje są poprzedzone pomarańczowym odnośnikiem do reguły wykrywania, z której pochodzą.

Należy pamiętać, że odkryte encje nie zostaną utworzone, jeśli istnieją już encje o tych samych kryteriach unikalności, na przykład pozycja z takim samym kluczem lub wykres o tej samej nazwie. W takim przypadku w frontend jest wyświetlany komunikat o błędzie informujący, że reguła wykrywania niskiego poziomu nie mogła utworzyć niektórych encji. Sama reguła wykrywania nie stanie się jednak nieobsługiwana tylko dlatego, że nie udało się utworzyć jakiejś encji i trzeba było ją pominąć. Reguła wykrywania będzie nadal tworzyć/aktualizować inne encje.
Jeśli odkryta encja (host, system plików, interfejs itp.) przestanie być wykrywana (lub nie przejdzie już filtra), encje utworzone na jej podstawie mogą zostać automatycznie wyłączone, a ostatecznie usunięte.
Utracone zasoby mogą być automatycznie wyłączane na podstawie wartości parametru Disable lost resources. Dotyczy to utraconych hostów, pozycji i wyzwalaczy.
Utracone zasoby mogą być automatycznie usuwane na podstawie wartości parametru Delete lost resources. Dotyczy to utraconych hostów, grup hostów, pozycji, wyzwalaczy i wykresów.
Gdy odkryte encje przechodzą do stanu „Not discovered anymore”, na liście encji wyświetlany jest wskaźnik czasu życia. Po najechaniu na niego kursorem myszy zostanie wyświetlony komunikat zawierający szczegóły statusu.

Jeśli encje zostały oznaczone do usunięcia, ale nie zostały usunięte w oczekiwanym czasie (wyłączona reguła wykrywania lub host pozycji), zostaną usunięte przy następnym przetwarzaniu reguły wykrywania.
Encje zawierające inne encje oznaczone do usunięcia nie będą aktualizowane, jeśli zostaną zmienione na poziomie reguły wykrywania. Na przykład wyzwalacze oparte na LLD nie będą aktualizowane, jeśli zawierają pozycje oznaczone do usunięcia.


Inne typy wykrywania
Więcej szczegółów oraz instrukcje dotyczące innych gotowych typów wykrywania są dostępne w następujących sekcjach:
- wykrywanie interfejsów sieciowych
- wykrywanie procesorów i rdzeni CPU
- wykrywanie OID-ów SNMP
- wykrywanie obiektów JMX;
- wykrywanie przy użyciu zapytań SQL ODBC
- wykrywanie usług Windows
- wykrywanie interfejsów hosta w Zabbix
Więcej szczegółów na temat formatu JSON dla pozycji wykrywania oraz przykład implementacji własnego mechanizmu wykrywania systemu plików jako skryptu Perl można znaleźć w sekcji tworzenie niestandardowych reguł LLD.






