- 2 Wstępne przetwarzanie wartości pozycji
- Przegląd
- Konfiguracja
- Obsługiwane transformacje
- Wyrażenie regularne
- Zamień
- Przytnij
- Przycinanie z prawej strony
- Przycinanie z lewej
- XML XPath
- Ścieżka JSON
- CSV do JSON
- XML do JSON
- Wartość SNMP walk
- SNMP walk do JSON
- Wartość SNMP get
- Mnożnik niestandardowy
- Zmiana prosta
- Zmiana na sekundę
- Wartość logiczna na dziesiętną
- Ósemkowy na dziesiętny
- Szesnastkowy na dziesiętny
- JavaScript
- W zakresie
- Pasuje do wyrażenia regularnego
- Nie pasuje do wyrażenia regularnego
- Sprawdzenie błędu w JSON
- Sprawdzenie błędu w XML
- Sprawdzenie błędu za pomocą wyrażenia regularnego
- Sprawdzenie nieobsługiwanej wartości
- Odrzuć niezmienione
- Odrzuć niezmienione z heartbeat
- Wzorzec Prometheus
- Prometheus do JSON
- Obsługa makr
- Testowanie
2 Wstępne przetwarzanie wartości pozycji
Przegląd
Wstępne przetwarzanie umożliwia stosowanie przekształceń do odebranych wartości pozycji przed zapisaniem ich do bazy danych. Te przekształcenia/kroki wstępnego przetwarzania są wykonywane przez serwer Zabbix lub proxy (jeśli pozycje są monitorowane przez proxy).
Ta funkcja obsługuje różne przypadki użycia, takie jak:
- konwersja bajtów na bity (np. mnożenie wartości ruchu sieciowego przez „8”);
- obliczanie statystyk na sekundę dla wartości rosnących przyrostowo;
- stosowanie wyrażeń regularnych do wyodrębniania lub modyfikowania wartości;
- wykonywanie niestandardowych skryptów na wartościach;
- odrzucanie niezmienionych wartości w celu optymalizacji przechowywania danych w bazie.
Dla pozycji można skonfigurować jeden lub więcej kroków wstępnego przetwarzania. Kroki te są wykonywane w kolejności, w jakiej zostały skonfigurowane.
Jeśli krok wstępnego przetwarzania zakończy się niepowodzeniem, pozycja stanie się nieobsługiwana.
Można tego uniknąć dzięki obsłudze błędów Custom on fail (dostępnej dla większości przekształceń), która pozwala odrzucać wartości lub ustawiać wartości niestandardowe.
W przypadku pozycji logów metadane logu (bez wartości) zawsze zresetują stan nieobsługiwanej pozycji, przywracając jej stan obsługiwany.
Dzieje się tak nawet wtedy, gdy początkowy błąd wystąpił po odebraniu wartości logu od agent.
Wszystkie wartości przekazywane do wstępnego przetwarzania są początkowo traktowane jako ciągi znaków. Konwersja do żądanego typu wartości (zgodnie z definicją w konfiguracji pozycji) jest wykonywana na końcu potoku wstępnego przetwarzania. Jednak określone kroki wstępnego przetwarzania mogą wymuszać wcześniejsze konwersje, jeśli jest to wymagane. Szczegółowe informacje techniczne można znaleźć w sekcji Szczegóły wstępnego przetwarzania.
Aby upewnić się, że konfiguracja wstępnego przetwarzania działa zgodnie z oczekiwaniami, możesz ją przetestować.
Zobacz także: Przykłady wstępnego przetwarzania
Konfiguracja
Kroki przetwarzania wstępnego są definiowane na karcie Preprocessing formularza konfiguracji pozycji.

Kliknij Add, aby wybrać obsługiwaną transformację.
Pole Type of information jest wyświetlane na dole karty, gdy zdefiniowano co najmniej jeden krok przetwarzania wstępnego. W razie potrzeby można zmienić typ informacji bez opuszczania karty Preprocessing. Szczegółowy opis parametrów znajduje się w sekcji Tworzenie pozycji.
Obsługiwane transformacje
Wszystkie obsługiwane transformacje są wymienione poniżej. Kliknij nazwę transformacji, aby zobaczyć jej pełny opis.
| Nazwa | Opis | Typ |
|---|---|---|
| Wyrażenie regularne | Dopasuj wartość do wyrażenia regularnego i zastąp ją wymaganym wynikiem. | Tekst |
| Zamień | Znajdź wyszukiwany ciąg i zastąp go innym (lub niczym). | |
| Przytnij | Usuń określone znaki z początku i końca wartości. | |
| Przytnij z prawej | Usuń określone znaki z końca wartości. | |
| Przytnij z lewej | Usuń określone znaki z początku wartości. | |
| XML XPath | Wyodrębnij wartość lub fragment z danych XML przy użyciu funkcji XPath. | Dane strukturalne |
| JSON Path | Wyodrębnij wartość lub fragment z danych JSON przy użyciu funkcji JSONPath. | |
| CSV do JSON | Konwertuj dane pliku CSV do formatu JSON. | |
| XML do JSON | Konwertuj dane w formacie XML do JSON. | |
| Wartość SNMP walk | Wyodrębnij wartość według określonej nazwy OID/MIB i zastosuj opcje formatowania. | SNMP |
| SNMP walk do JSON | Konwertuj wartości SNMP do JSON. | |
| Wartość SNMP get | Zastosuj opcje formatowania do wartości SNMP get. | |
| Mnożnik niestandardowy | Pomnóż wartość przez określoną liczbę całkowitą lub zmiennoprzecinkową. | Arytmetyka |
| Prosta zmiana | Oblicz różnicę między bieżącą a poprzednią wartością. | Zmiana |
| Zmiana na sekundę | Oblicz szybkość zmiany wartości na sekundę (różnicę między bieżącą a poprzednią wartością). | |
| Wartość logiczna na dziesiętną | Konwertuj wartość z formatu logicznego na dziesiętny. | Systemy liczbowe |
| Ósemkowy na dziesiętny | Konwertuj wartość z formatu ósemkowego na dziesiętny. | |
| Szesnastkowy na dziesiętny | Konwertuj wartość z formatu szesnastkowego na dziesiętny. | |
| JavaScript | Wprowadź kod JavaScript. | Skrypty niestandardowe |
| W zakresie | Zdefiniuj zakres, w którym powinna znajdować się wartość. | Walidacja |
| Pasuje do wyrażenia regularnego | Określ wyrażenie regularne, do którego wartość musi pasować. | |
| Nie pasuje do wyrażenia regularnego | Określ wyrażenie regularne, do którego wartość nie może pasować. | |
| Sprawdź błąd w JSON | Sprawdź komunikat błędu na poziomie aplikacji znajdujący się pod JSONPath. | |
| Sprawdź błąd w XML | Sprawdź komunikat błędu na poziomie aplikacji znajdujący się pod XPath. | |
| Sprawdź błąd przy użyciu wyrażenia regularnego | Sprawdź komunikat błędu na poziomie aplikacji przy użyciu wyrażenia regularnego. | |
| Sprawdź nieobsługiwaną wartość | Sprawdź, czy nie udało się pobrać żadnej wartości pozycji. | |
| Odrzuć niezmienione | Odrzuć wartość, jeśli nie uległa zmianie. | Ograniczanie częstotliwości |
| Odrzuć niezmienione z heartbeat | Odrzuć wartość, jeśli nie uległa zmianie w zdefiniowanym okresie czasu. | |
| Wzorzec Prometheus | Użyj poniższego zapytania, aby wyodrębnić wymagane dane z metryk Prometheus. | Prometheus |
| Prometheus do JSON | Konwertuj wymagane metryki Prometheus do JSON. |
Należy pamiętać, że dla kroków preprocessing typu Zmiana i Ograniczanie częstotliwości Zabbix musi zapamiętać ostatnią wartość, aby obliczyć/porównać nową wartość zgodnie z wymaganiami. Te poprzednie wartości są obsługiwane przez menedżera preprocessing. Jeśli serwer Zabbix lub proxy zostanie zrestartowany albo zostaną wprowadzone jakiekolwiek zmiany w krokach preprocessing, ostatnia wartość odpowiedniej pozycji zostanie zresetowana, co skutkuje:
- dla kroków Prosta zmiana, Zmiana na sekundę — następna wartość zostanie zignorowana, ponieważ nie ma poprzedniej wartości, na podstawie której można obliczyć zmianę;
- dla kroków Odrzuć niezmienione, Odrzuć niezmienione z heartbeat — następna wartość nigdy nie zostanie odrzucona, nawet jeśli powinna zostać odrzucona zgodnie z regułami odrzucania.
Wyrażenie regularne
Dopasuj wartość do wyrażenia regularnego i zastąp ją wymaganym wynikiem.
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.
Uwagi:
- Brak dopasowania wartości wejściowej spowoduje, że pozycja stanie się nieobsługiwana;
- Wyrażenie regularne obsługuje wyodrębnienie maksymalnie 10 przechwyconych grup za pomocą sekwencji \N;
- 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.
W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
- Przykłady można znaleźć w sekcji regular expressions.
Zamień
Znajdź wyszukiwany ciąg i zastąp go innym ciągiem (lub niczym).
Parametry:
- wyszukiwany ciąg - ciąg do znalezienia i zastąpienia, z rozróżnianiem wielkości liter (wymagane);
- zamiennik - ciąg, którym zostanie zastąpiony wyszukiwany ciąg. Ciąg zamiennika może być również pusty, co w praktyce pozwala usunąć wyszukiwany ciąg po jego znalezieniu.
Uwagi:
- Wszystkie wystąpienia wyszukiwanego ciągu zostaną zastąpione;
- 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";
- Escapowanie znaków nowej linii, powrotu karetki i tabulatorów jest wykonywane automatycznie podczas wykrywania niskiego poziomu.
Przytnij
Usuń określone znaki z początku i końca wartości.
Przycinanie z prawej strony
Usuń określone znaki z końca wartości.
Przycinanie z lewej
Usuń określone znaki z początku wartości.
XML XPath
Wyodrębnij wartość lub fragment z danych XML przy użyciu funkcji XPath.
Uwagi:
- Aby ta opcja działała, serwer Zabbix (lub Zabbix proxy) musi być skompilowany z obsługą libxml;
- Przestrzenie nazw nie są obsługiwane;
- Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
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>
Ścieżka JSON
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. W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
CSV do JSON
Konwertuj dane pliku CSV do formatu JSON.
Aby uzyskać więcej informacji, zobacz: Wstępne przetwarzanie CSV do JSON.
XML do JSON
Konwertuj dane w formacie XML do JSON.
Więcej informacji znajduje się tutaj: Zasady serializacji.
Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku nieudanego kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Wartość SNMP walk
Wyodrębnij wartość według określonej nazwy OID/MIB i zastosuj opcje formatowania:
- Bez zmian — zwróć ciąg szesnastkowy jako nieescapowany ciąg szesnastkowy (uwaga: wskazówki wyświetlania są nadal stosowane);
- UTF-8 z hex-STRING — przekonwertuj ciąg szesnastkowy na ciąg UTF-8;
- MAC z hex-STRING — zweryfikuj ciąg szesnastkowy jako adres MAC i zwróć poprawny ciąg adresu MAC (gdzie
' 'są zastępowane przez':'); - Liczba całkowita z BITS — przekonwertuj 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żna określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. W przypadku nieudanego kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
SNMP walk do JSON
Konwertuj wartości SNMP do formatu 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.
Uwagi:
- Dostępne są opcje formatowania wartości podobne do tych w kroku Wartość SNMP walk;
- Możesz użyć tego kroku przetwarzania wstępnego do wykrywania SNMP OID;
- Jeśli zaznaczysz pole wyboru Custom on fail, możliwe będzie określenie niestandardowych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Wartość SNMP get
Zastosuj opcje formatowania do wartości SNMP get:
- UTF-8 from Hex-STRING — konwertuje ciąg szesnastkowy na ciąg UTF-8;
- MAC from Hex-STRING — sprawdza poprawność ciągu szesnastkowego jako adresu MAC i zwraca prawidłowy ciąg adresu MAC (gdzie
' 'są zastępowane przez':'); - Integer from BITS — konwertuje 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 o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Mnożnik niestandardowy
Pomnóż wartość przez określoną liczbę całkowitą lub zmiennoprzecinkową.
Uwagi:
- Użyj tej opcji, aby konwertować wartości otrzymywane w KB, MBps itp. na B, Bps.
W przeciwnym razie Zabbix nie będzie mógł poprawnie ustawić prefiksów (K, M, G itd.).
- Należy pamiętać, że jeśli typ informacji pozycji to Numeric (unsigned), przychodzące wartości z częścią ułamkową zostaną obcięte (tj. „0.9” stanie się „0”) przed zastosowaniem mnożnika niestandardowego;
- Jeśli używasz mnożnika niestandardowego lub przechowujesz wartość jako Change per second dla pozycji z typem informacji ustawionym na Numeric (unsigned), a wynikowa obliczona wartość jest w rzeczywistości liczbą zmiennoprzecinkową, obliczona wartość nadal jest akceptowana jako poprawna po obcięciu części dziesiętnej i zapisaniu wartości jako liczby całkowitej;
- Obsługiwane: notacja naukowa, na przykład
1e+70; makra użytkownika i makra LLD; ciągi znaków zawierające makra, na przykład{#MACRO}e+10,{$MACRO1}e+{$MACRO2}. Makra muszą zostać rozwinięte do liczby całkowitej lub zmiennoprzecinkowej. - 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 o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Zmiana prosta
Oblicza różnicę między bieżącą a poprzednią wartością.
Uwagi:
- Ten krok może być przydatny do pomiaru stale rosnącej wartości;
- Obliczane jako value-prev_value, gdzie value — wartość bieżąca; prev_value — poprzednio odebrana wartość;
- Dozwolona jest tylko jedna operacja zmiany na pozycja („Zmiana prosta” lub „Zmiana na sekundę”);
- Jeśli bieżąca wartość jest mniejsza od poprzedniej, Zabbix odrzuca tę różnicę (nic nie zapisuje) i czeka na kolejną wartość;
- Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. W przypadku nieudanego kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Zmiana na sekundę
Oblicza szybkość zmiany wartości (różnicę między bieżącą a poprzednią wartością) na sekundę.
Uwagi:
- Ten krok jest przydatny do obliczania szybkości na sekundę dla stale rosnącej wartości;
- Ponieważ to obliczenie może dawać liczby zmiennoprzecinkowe, zaleca się ustawienie pola „Type of information” na Numeric (float), nawet jeśli przychodzące surowe wartości są liczbami całkowitymi.
Jest to szczególnie istotne w przypadku małych liczb, gdzie część dziesiętna ma znaczenie.
Jeśli wartości zmiennoprzecinkowe są duże i mogą przekroczyć długość pola „float”, co może spowodować utratę całej wartości, zaleca się użycie Numeric (unsigned), a tym samym obcięcie jedynie części dziesiętnej.
- Obliczane jako (value-prev_value)/(time-prev_time), gdzie value — bieżąca wartość; prev_value — poprzednio odebrana wartość; time — bieżący znacznik czasu; prev_time — znacznik czasu poprzedniej wartości;
- Dozwolona jest tylko jedna operacja zmiany na pozycja („Simple change” lub „Change per second”);
- Jeśli bieżąca wartość jest mniejsza od poprzedniej, Zabbix odrzuca tę różnicę (nic nie zapisuje) i oczekuje na kolejną wartość.
Pomaga to poprawnie działać na przykład w przypadku zawijania (przepełnienia) 32-bitowych liczników SNMP.
- Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Wartość logiczna na dziesiętną
Konwertuje wartość z formatu logicznego na dziesiętny.
Uwagi:
- Reprezentacja tekstowa jest tłumaczona odpowiednio na 0 lub 1.
W związku z tym „TRUE” jest zapisywane jako 1, a „FALSE” jako 0.
Wszystkie wartości są dopasowywane bez rozróżniania wielkości liter.
Obecnie rozpoznawane wartości to, dla TRUE — true, t, yes, y, on, up, running, enabled, available, ok, master; dla FALSE — false, f, no, n, off, down, unused, disabled, unavailable, err, slave.
Dodatkowo każda niezerowa wartość liczbowa jest uznawana za TRUE, a zero jest uznawane za FALSE.
- Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku nieudanego kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Ósemkowy na dziesiętny
Konwertuje wartość z formatu ósemkowego na dziesiętny.
Jeśli zaznaczysz pole wyboru Niestandardowo w przypadku błędu, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Szesnastkowy na dziesiętny
Konwertuje wartość z formatu szesnastkowego na dziesiętny.
Jeśli zaznaczysz pole wyboru Custom on fail, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
JavaScript
Wprowadź kod JavaScript w modalnym edytorze, który otwiera się po kliknięciu w polu parametru lub ikonie ołówka obok niego.
Nie używaj niezadeklarowanych przypisań w kodzie JavaScript przetwarzania wstępnego.
Użyj var, aby zadeklarować zmienne lokalne.
Uwagi:
- Dostępna długość kodu JavaScript zależy od używanej bazy danych;
- Więcej informacji można znaleźć tutaj: Przetwarzanie wstępne JavaScript.
W zakresie
Zdefiniuj zakres, w którym powinna znajdować się wartość, określając wartości minimalne/maksymalne (włącznie).
Uwagi:
- Akceptowane są wartości liczbowe (w tym dowolna liczba cyfr, opcjonalna część dziesiętna i opcjonalna część wykładnicza, wartości ujemne);
- Wartość minimalna powinna być mniejsza od wartości maksymalnej;
- Musi istnieć co najmniej jedna wartość;
- Można używać makr użytkownika i makr wykrywania niskiego poziomu;
- Jeśli zaznaczysz pole wyboru Niestandardowo w przypadku błędu, można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku nieudanego kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Pasuje do wyrażenia regularnego
Określ wyrażenie regularne, do którego wartość musi pasować.
Jeśli zaznaczysz pole wyboru Niestandardowe przy błędzie, 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 o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Nie pasuje do wyrażenia regularnego
Określ wyrażenie regularne, do którego wartość nie może pasować.
Jeśli zaznaczysz pole wyboru Niestandardowo w przypadku błędu, 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 o błędzie. W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Sprawdzenie błędu w JSON
Sprawdza komunikat błędu na poziomie aplikacji znajdujący się pod JSONPath. Przetwarzanie zostanie zatrzymane, jeśli operacja się powiedzie, a komunikat nie będzie pusty; w przeciwnym razie przetwarzanie będzie kontynuowane z wartością sprzed tego kroku przetwarzania wstępnego.
Uwagi:
- Te błędy usług zewnętrznych są zgłaszane użytkownikowi w niezmienionej postaci, bez dodawania informacji o kroku przetwarzania wstępnego;
- W przypadku niepowodzenia parsowania nieprawidłowego JSON nie zostanie zgłoszony żaden błąd;
- Jeśli zaznaczysz pole wyboru Custom on fail, możliwe jest określenie własnych opcji obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu błędu. W przypadku nieudanego kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Sprawdzenie błędu w XML
Sprawdza komunikat błędu na poziomie aplikacji znajdujący się pod XPath. Przetwarzanie zostanie zatrzymane, jeśli zakończy się powodzeniem i komunikat nie jest pusty; w przeciwnym razie przetwarzanie będzie kontynuowane z wartością sprzed tego kroku wstępnego przetwarzania.
Uwagi:
- Błędy tych 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. W przypadku nieudanego kroku wstępnego przetwarzania pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Sprawdzenie błędu za pomocą wyrażenia regularnego
Sprawdź komunikat błędu na poziomie aplikacji za pomocą wyrażenia regularnego. Zatrzymaj przetwarzanie, jeśli zakończy się powodzeniem i komunikat nie jest pusty; w przeciwnym razie kontynuuj przetwarzanie z wartością, która była przed tym krokiem przetwarzania wstępnego.
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.
Uwagi:
- Te błędy usług zewnętrznych są zgłaszane użytkownikowi w niezmienionej postaci, bez dodawania informacji o kroku przetwarzania wstępnego;
- 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. W przypadku niepowodzenia kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
Sprawdzenie nieobsługiwanej wartości
Sprawdź, czy nie udało się pobrać żadnej wartości pozycji. Określ, jak przetworzyć błąd, na podstawie analizy zwróconego komunikatu o błędzie.
Parametry:
- scope — wybierz zakres przetwarzania błędu:
dowolny błąd — dowolny błąd;
błąd pasuje — tylko błąd pasujący do wyrażenia regularnego określonego w pattern;
błąd nie pasuje — tylko błąd, który nie pasuje do wyrażenia regularnego określonego w pattern - pattern — wyrażenie regularne, do którego ma pasować błąd.
Jeśli w parametrze scope wybrano dowolny błąd, to pole to nie jest wyświetlane.
Jeśli jest wyświetlane, to pole jest wymagane.
Uwagi:
- Zwykle brak wartości lub niepowodzenie pobrania wartości powoduje, że pozycja staje się nieobsługiwana. Ten krok preprocessing umożliwia zmianę tego zachowania. Jeśli zaznaczysz pole wyboru Custom on fail (dla tego kroku preprocessing zawsze zaznaczone i wyszarzone), można określić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie. W przypadku niepowodzenia kroku preprocessing pozycja nie stanie się nieobsługiwana, jeśli wybrano opcję odrzucenia wartości lub ustawienia określonej wartości.
- Ten krok preprocessing sprawdza tylko, czy nie udało się pobrać wartości pozycji. Nie sprawdza na przykład, czy typ pobranej wartości (np. string) odpowiada typowi informacji pozycji (np. numeric); szczegóły znajdują się w Przykładach preprocessing. Jeśli występuje niezgodność typów, pozycja może nadal stać się nieobsługiwana po wykonaniu wszystkich kroków preprocessing. Aby sprawdzić niezgodność typów, można użyć na przykład kroku preprocessing Custom multiplier; zobacz Przykłady preprocessing.
- Przechwytywanie grup wyrażeń regularnych jest obsługiwane w polach Set value to lub Set error to. Użyj \N (gdzie N=1…9), aby pobrać N-tą dopasowaną grupę; użyj \0, aby pobrać dopasowany tekst;
- Te kroki są zawsze wykonywane jako pierwsze kroki preprocessing i po zapisaniu zmian w pozycji są umieszczane nad wszystkimi pozostałymi;
- Obsługiwanych jest wiele kroków Check for not supported value, w określonej kolejności. Krok dla dowolny błąd zostanie automatycznie umieszczony jako ostatni krok w tej grupie.
Odrzuć niezmienione
Odrzuć wartość, jeśli nie uległa zmianie.
Uwagi:
- Jeśli wartość zostanie odrzucona, nie jest zapisywana w bazie danych, a serwer Zabbix nie ma wiedzy o tym, że ta wartość została odebrana.
Wyrażenia wyzwalaczy nie będą oceniane, w rezultacie nie zostaną utworzone/rozwiązane żadne problemy dla powiązanych wyzwalaczy.
Funkcje będą działać wyłącznie na podstawie danych, które są faktycznie zapisane w bazie danych.
Ponieważ trendy są tworzone na podstawie danych w bazie danych, jeśli przez godzinę nie zostanie zapisana żadna wartość, to dla tej godziny również nie będzie danych trendów.
- Dla jednej pozycji można określić tylko jedną opcję ograniczania.
Odrzuć niezmienione z heartbeat
Odrzuć wartość, jeśli nie zmieniła się w zdefiniowanym okresie czasu (w sekundach).
Uwagi:
- Obsługiwane są dodatnie wartości całkowite do określenia liczby sekund (minimum — 1 sekunda);
- Można używać sufiksów czasu (np. 30s, 1m, 2h, 1d);
- Można używać makr użytkownika i makr wykrywania niskiego poziomu;
- Jeśli wartość zostanie odrzucona, nie jest zapisywana w bazie danych, a serwer Zabbix nie ma informacji, że ta wartość została odebrana.
Żadne wyrażenia wyzwalaczy nie będą obliczane, w rezultacie nie zostaną utworzone/rozwiązane żadne problemy dla powiązanych wyzwalaczy.
Funkcje będą działać wyłącznie na podstawie danych, które są faktycznie zapisane w bazie danych.
Ponieważ trendy są tworzone na podstawie danych w bazie danych, jeśli przez godzinę nie zostanie zapisana żadna wartość, to również nie będzie danych trendów dla tej godziny.
- Dla jednej pozycji można określić tylko jedną opcję ograniczania.
Wzorzec Prometheus
Użyj następującego zapytania, aby wyodrębnić wymagane dane z metryk Prometheus.
Więcej szczegółów znajduje się w sekcji sprawdzanie Prometheus.
Prometheus do JSON
Konwertuj wymagane metryki Prometheus do formatu JSON.
Więcej informacji znajduje się w sekcji Prometheus checks.
Obsługa makr
Makra użytkownika oraz makra użytkownika z kontekstem są obsługiwane w:
- parametrach kroku przetwarzania wstępnego, w tym w kodzie JavaScript;
- parametrach niestandardowej obsługi błędów (pola Ustaw wartość na i Ustaw błąd na).
Kontekst makra jest ignorowany, gdy makro jest zastępowane swoją wartością. Wartość makra jest wstawiana do kodu w postaci niezmienionej; nie ma możliwości dodania dodatkowego escapingu przed umieszczeniem wartości w kodzie JavaScript. Należy pamiętać, że w niektórych przypadkach może to powodować błędy JavaScript.
Testowanie
Zobacz testowanie preprocessing.