1 Tworzenie pozycji

Przegląd

Aby utworzyć pozycję w frontendzie Zabbix, wykonaj następujące czynności:

  • Przejdź do: Data collection > Hosts
  • Kliknij Items w wierszu hosta
  • Kliknij Create item w prawym górnym rogu ekranu
  • Wprowadź parametry pozycji w formularzu

Możesz również utworzyć pozycję, otwierając istniejącą, klikając przycisk Clone, a następnie zapisując ją pod inną nazwą.

Konfiguracja

Karta Item zawiera ogólne atrybuty itemu.

Wszystkie wymagane pola wejściowe są oznaczone czerwoną gwiazdką.

Parameter Description
Name Nazwa itemu.
Obsługiwane są makra użytkownika.
Type Typ itemu. Zobacz odpowiednie sekcje typów itemów.
Key Klucz itemu (do 2048 znaków).
Obsługiwane klucze itemów można znaleźć w poszczególnych sekcjach typów itemów.
Klucz musi być unikalny w obrębie jednego hosta.
Jeśli typ klucza to 'Zabbix agent', 'Zabbix agent (active)' lub 'Simple check', wartość klucza musi być obsługiwana przez Zabbix agent lub Zabbix serwer.
Zobacz także: poprawny format klucza.
Type of information Typ danych używany do walidacji wartości itemu i zapisu jej w bazie danych, zarówno po wszelkich konwersjach:
Numeric (unsigned) - 64-bitowa liczba całkowita bez znaku;
Numeric (float) - 64-bitowa liczba zmiennoprzecinkowa;
Character - krótki tekst;
Log - długi tekst z właściwościami logu lub bez nich (znacznik czasu, źródło, ważność, identyfikator zdarzenia logu);
Text - długi tekst;
Binary - liczba binarna (obsługiwane tylko dla itemów zależnych);
JSON - strukturalne dane JSON, przechowywane natywnie w bazie danych (nieobsługiwane dla itemów obliczanych).
Itemy zwracające wartości w typie danych binary lub JSON nie są obsługiwane w formułach itemów obliczanych ani w wyrażeniach wyzwalaczy.
Zobacz limity danych itemu, aby poznać limity przechowywania dla poszczególnych typów danych i backendu bazy danych.
W przypadku itemów, które zwracają dane w jednym określonym formacie, odpowiedni typ danych jest wybierany automatycznie — na przykład system.cpu.load i system.cpu.util oba zwracają 64-bitową liczbę zmiennoprzecinkową, więc automatycznie wybierany jest Numeric (float).
Host interface Wybierz interfejs hosta. To pole jest dostępne podczas edycji itemu na poziomie hosta.
Units Jeśli ustawiono symbol jednostki, Zabbix stosuje przetwarzanie końcowe do otrzymanej wartości itemu i wyświetla ją z określonym sufiksem jednostki.
Obsługiwane symbole jednostek ze specjalnym formatowaniem (oraz przykłady otrzymanej wartości itemu → wyświetlanej wartości):
B - bajty (1024 → 1 KB)
Bps - bajty na sekundę (1024 → 1 KBps)
s - sekundy, wyświetlane z użyciem do trzech największych niezerowych jednostek czasu (881764 → 10d 4h 56m)
uptime - czas, który upłynął, w formacie hh:mm:ss lub N days, hh:mm:ss (881764 → 10 days, 04:56:04)
unixtime - znacznik czasu Unix, formatowany jako yyyy.mm.dd hh:mm:ss (881764 → 1970-01-11 04:56:04 AM); aby formatowanie było poprawne, otrzymana wartość itemu musi mieć typ Numeric (unsigned).
Dla innych jednostek (takich jak Hz, W itd.), jeśli otrzymana wartość przekracza 1000, jest dzielona przez 1000 i wyświetlana z odpowiednim prefiksem (5000 → 5 KHz, 881764 → 881.76 KW).
Jeśli symbol jednostki jest poprzedzony !, konwersja jednostek i dodawanie prefiksów są wyłączone (1024 !B → 1024 B, 61 !s → 61 s).
Więcej przykładów i szczegółów dotyczących symboli jednostek oraz konwersji jednostek można znaleźć w sekcji Sufiksy wartości itemów.
Update interval Pobieraj nową wartość dla tego itemu co N sekund. Maksymalny dozwolony interwał aktualizacji to 86400 sekund (1 dzień).
Obsługiwane są sufiksy czasu, np. 30s, 1m, 2h, 1d.
Obsługiwane są makra użytkownika.
Jedno makro musi wypełniać całe pole. Nie są obsługiwane wiele makr w jednym polu ani makra połączone z tekstem.
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 zaplanowany) z wartością różną od zera, item będzie odpytywany przez czas trwania niestandardowego interwału.
Uwaga: pierwsze odpytywanie itemu po jego aktywacji lub po zmianie interwału aktualizacji może nastąpić wcześniej niż skonfigurowana wartość.
Nowe itemy zostaną sprawdzone w ciągu 60 sekund od utworzenia, chyba że mają interwał aktualizacji Scheduling lub Flexible i Update interval jest ustawiony na 0.
Istniejący pasywny item można odpytać o wartość natychmiast, naciskając przycisk Execute now button.
Custom intervals Możesz utworzyć niestandardowe reguły sprawdzania itemu:
Flexible - utwórz wyjątek od Update interval (interwał o innej częstotliwości).
Scheduling - utwórz niestandardowy harmonogram odpytywania.
Szczegółowe informacje znajdują się w sekcji Custom intervals.
Obsługiwane są sufiksy czasu w polu Interval, np. 30s, 1m, 2h, 1d.
Obsługiwane są makra użytkownika.
Jedno makro musi wypełniać całe pole. Nie są obsługiwane wiele makr w jednym polu ani makra połączone z tekstem.
Timeout Ustaw limit czasu sprawdzania itemu (dostępne dla obsługiwanych typów itemów). 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 łącza Timeouts umożliwia skonfigurowanie limitów czasu proxy lub limitów czasu globalnych (jeśli proxy nie jest używany). Zwróć uwagę, że łącze Timeouts jest widoczne tylko dla użytkowników typu Super admin z uprawnieniami do sekcji frontend Administration > General lub Administration > Proxies.
History Wybierz jedną z opcji:
Do not store - historia itemu nie jest przechowywana. Przydatne dla itemów nadrzędnych, jeśli tylko itemy zależne muszą zachowywać historię.
To ustawienie nie może zostać nadpisane przez globalne ustawienia housekeepera.
Store up to - określ czas przechowywania szczegółowej historii w bazie danych (od 1 godziny do 25 lat). Starsze dane zostaną usunięte przez housekeepera. Wartość przechowywana w sekundach.
Obsługiwane są sufiksy czasu, np. 2h, 1d. Obsługiwane są makra użytkownika.
Wartość Store up to może zostać globalnie nadpisana w Administration > Housekeeping.
Jeśli istnieje globalne ustawienie nadpisujące, wyświetlana jest pomarańczowa ikona informacji . Po najechaniu na nią kursorem wyświetlany jest komunikat ostrzegawczy, np. Overridden by global housekeeper settings (1d).
Zaleca się przechowywanie zarejestrowanych wartości przez możliwie najkrótszy czas, aby zmniejszyć rozmiar historii wartości w bazie danych. Zamiast przechowywać długą historię wartości, można przechowywać dłuższe dane trendów.
Zobacz także History and trends.
Trends Wybierz jedną z opcji:
Do not store - trendy nie są przechowywane.
To ustawienie nie może zostać nadpisane przez globalne ustawienia housekeepera.
Store up to - określ czas przechowywania zagregowanej historii (godzinowe min, max, avg, count) w bazie danych (od 1 dnia do 25 lat). Starsze dane zostaną usunięte przez housekeepera. Wartość przechowywana w sekundach.
Obsługiwane są sufiksy czasu, np. 24h, 1d. Obsługiwane są makra użytkownika.
Wartość Store up to może zostać globalnie nadpisana w Administration > Housekeeping.
Jeśli istnieje globalne ustawienie nadpisujące, wyświetlana jest pomarańczowa ikona informacji . Po najechaniu na nią kursorem wyświetlany jest komunikat ostrzegawczy, np. Overridden by global housekeeper settings (7d).
Uwaga: Przechowywanie trendów nie jest dostępne dla danych nienumerycznych - character, log i text.
Zobacz także History and trends.
Value mapping Zastosuj mapowanie wartości do tego itemu. Mapowanie wartości nie zmienia otrzymanych wartości, służy wyłącznie do wyświetlania danych.
Działa z itemami Numeric(unsigned), Numeric(float) i Character.
Na przykład „Windows service states”.
Log time format Dostępne tylko dla itemów typu Log. Obsługiwane symbole zastępcze:
y: Rok (1970-2038).
M: Miesiąc (01-12).
d: Dzień (01-31).
h: Godzina (00-23).
m: Minuta (00-59).
s: Sekunda (00-59).
Jeśli pozostanie puste, znacznik czasu zostanie ustawiony na 0 w czasie Unix, co odpowiada 1 stycznia 1970.
Na przykład rozważ następującą linię z pliku dziennika Zabbix agent:
" 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211)."
Zaczyna się ona od sześciu pozycji znakowych dla PID, po których następują data, czas i reszta komunikatu.
Format czasu logu dla tej linii byłby następujący: "pppppp:yyyyMMdd:hhmmss".
Zwróć uwagę, że znaki "p" i ":" są symbolami zastępczymi i mogą być dowolnymi znakami z wyjątkiem "yMdhms".
Populates host inventory field Możesz wybrać pole inwentarza hosta, które zostanie wypełnione wartością itemu. Będzie to działać, jeśli dla hosta włączone jest automatyczne uzupełnianie inwentarza oraz dla itemów typu Numeric(unsigned), Numeric(float), Character i Text.
Description Wprowadź opis itemu. Obsługiwane są makra użytkownika.
Enabled Zaznacz pole wyboru, aby włączyć item i umożliwić jego przetwarzanie.
Po wyłączeniu itemu jest on natychmiast usuwany z pamięci podręcznej historii (z wyjątkiem ostatniej wartości, która jest zachowywana dla logów).
Latest data Kliknij łącze, aby wyświetlić najnowsze dane dla itemu.
To łącze jest dostępne tylko podczas edycji już istniejącego itemu.

Pola specyficzne dla typu itemu są opisane na odpowiednich stronach.

Podczas edycji istniejącego itemu na poziomie szablonu na poziomie hosta, wiele pól jest tylko do odczytu. Możesz użyć łącza w nagłówku formularza i przejść do poziomu szablonu, aby edytować je tam, pamiętając, że zmiany na poziomie szablonu spowodują zmianę itemu dla wszystkich hostów, do których szablon jest podłączony.

Karta Tags umożliwia definiowanie tagów na poziomie itemu.

Wstępne przetwarzanie wartości pozycji

Zakładka Preprocessing umożliwia zdefiniowanie reguł transformacji dla otrzymanych wartości.

Testowanie pozycji

Aby przeprowadzić testowanie pozycji, upewnij się, że czas systemowy na serwerze i proxy jest zsynchronizowany. W przypadku gdy czas serwera jest opóźniony, testowanie pozycji może zwrócić komunikat o błędzie "The task has been expired." Ustawienie różnych stref czasowych na serwerze i proxy nie wpłynie jednak na wynik testu.

Możliwe jest przetestowanie pozycji i, jeśli została poprawnie skonfigurowana, uzyskanie w odpowiedzi rzeczywistej wartości. Testowanie może odbyć się nawet przed zapisaniem pozycji.

Testowanie jest dostępne dla pozycji hosta i szablonu, prototypów pozycji oraz reguł niskopoziomowego wykrywania. Testowanie nie jest dostępne dla aktywnych pozycji.

Testowanie pozycji jest dostępne dla następujących pasywnych typów pozycji:

  • Zabbix agent
  • SNMP agent (v1, v2, v3)
  • IPMI agent
  • SSH checks
  • Telnet checks
  • JMX agent
  • Simple checks (except icmpping*, vmware.* items)
  • Zabbix internal
  • Calculated items
  • External checks
  • Database monitor
  • HTTP agent
  • Script
  • Browser

Aby przetestować pozycję, kliknij przycisk Test u dołu formularza konfiguracji pozycji. Zwróć uwagę, że przycisk Test będzie wyłączony dla pozycji, których nie można testować (takich jak aktywne sprawdzenia, wykluczone simple checks).

Formularz testowania pozycji zawiera pola wymaganych parametrów hosta (adres hosta, port, test z serwerem/proxy (nazwa proxy)) oraz szczegóły specyficzne dla pozycji (takie jak community SNMPv2 lub poświadczenia bezpieczeństwa SNMPv3). Pola te są zależne od kontekstu:

  • Wartości są wstępnie wypełniane, gdy to możliwe, tj. dla pozycji wymagających agenta, na podstawie informacji z wybranego interfejsu agenta hosta.
  • Wartości muszą zostać wprowadzone ręcznie dla pozycji szablonu.
  • Wartości makr w postaci zwykłego tekstu są rozwijane.
  • Pola, w których wartość (lub jej część) jest sekretem lub makrem Vault, są puste i muszą zostać wprowadzone ręcznie. Jeśli dowolny parametr pozycji zawiera wartość makra sekretnego, wyświetlany jest następujący komunikat ostrzegawczy: "Item contains user-defined macros with secret values. Values of these macros should be entered manually."
  • Pola są wyłączone, gdy nie są potrzebne w kontekście typu pozycji (np. pole adresu hosta i pole proxy są wyłączone dla pozycji obliczanych)

Aby przetestować pozycję, kliknij Get value. Jeśli wartość zostanie pobrana pomyślnie, zostanie wpisana do pola Value, a bieżąca wartość (jeśli istnieje) zostanie przeniesiona do pola Previous value; jednocześnie zostanie obliczone pole Prev. time, tj. różnica czasu między dwiema wartościami (kliknięciami), oraz nastąpi próba wykrycia sekwencji EOL i przełączenia na CRLF, jeśli w pobranej wartości zostanie wykryte "\n\r".

Kliknij Get value and test, aby przetestować preprocessing.

Wartości pobrane z hosta oraz wyniki testów są przycinane do maksymalnego rozmiaru 512 KB podczas wysyłania do frontend. Jeśli wynik testu zostanie przycięty, wyświetlana jest ikona ostrzeżenia; najedź na nią, aby zobaczyć szczegóły. Jeśli wartość zostanie przycięta, może nie przejść walidacji typu danych w kolejnych testach porównujących duże wartości (np. JSON); w takich przypadkach wyświetlany jest komunikat o błędzie. Zwróć uwagę, że dane większe niż 512 KB są nadal w pełni przetwarzane przez serwer Zabbix.

Jeśli konfiguracja jest nieprawidłowa, wyświetlany jest komunikat o błędzie opisujący możliwą przyczynę.

Pomyślnie pobrana wartość z hosta może być również użyta do testowania kroków preprocessing.

Przyciski formularza

Przyciski na dole formularza umożliwiają wykonanie kilku operacji.

Dodaj pozycję. Ten przycisk jest dostępny tylko dla nowych pozycji.
Zaktualizuj właściwości pozycji.
Utwórz kolejną pozycję na podstawie właściwości bieżącej pozycji.
Natychmiast wykonaj sprawdzenie nowej wartości pozycji. Obsługiwane tylko dla sprawdzeń pasywnych (zobacz więcej szczegółów).
Uwaga: podczas natychmiastowego sprawdzania wartości pamięć podręczna konfiguracji nie jest aktualizowana, dlatego wartość nie będzie odzwierciedlać bardzo niedawnych zmian w konfiguracji pozycji.
Przetestuj, czy konfiguracja pozycji jest poprawna, pobierając wartość.
Usuń historię i trendy pozycji.
Usuń pozycję.
Anuluj edycję właściwości pozycji.

Limity danych pozycji

Limity danych pozycji zależą od typu danych pozycji oraz backendu bazy danych.

Wartości numeryczne (bez znaku) są przechowywane bez zmian. Jeśli zostanie odebrana wartość zmiennoprzecinkowa, zapisywana jest tylko część całkowita (np. 1.23 → 1).

Wartości numeryczne (float) są przechowywane bez zmian i obsługują około 15 do 17 cyfr precyzji, w zakresie około -1.79E+308 do 1.79E+308. Obsługiwane są również wartości w notacji naukowej (np. 1.23E+7, 1e308, 1.1E-4).

Wartości tekstowe są obcinane przed zapisaniem, aby odpowiadały limitowi typu wartości w bazie danych:

Database Type of information
Character Log Text
MySQL 255 characters 65536 bytes 65536 bytes
PostgreSQL 255 characters 65536 characters 65536 characters
SQLite (only Zabbix proxy) 255 characters 65536 characters 65536 characters

Wartości binarne są ograniczone do 16 MiB (16777216 bajtów). Wartości przekraczające ten limit są odrzucane, a odpowiedni błąd jest wyświetlany we frontendzie.

Wartości typu JSON są ograniczone do 128 MiB (134217728 bajtów). Wartości przekraczające ten limit są odrzucane, a odpowiedni błąd jest wyświetlany we frontendzie. W przypadku MySQL/MariaDB warto rozważyć skonfigurowanie dziennych partycji dla tabeli history_json (używanej do przechowywania wartości JSON), ponieważ może ona szybko się rozrastać i blokować housekeeper na dłuższy czas. Jeśli Twój przypadek użycia obejmuje duże wartości JSON (1 MiB lub więcej), zobacz, jak skonfigurować system pod kątem obsługi dużych wartości JSON.

Gdy Zabbix zapisuje dowolne dane pozycji do bazy danych, używa zapytań INSERT i rejestruje je (jeśli DebugLevel ma ustawioną wartość 4 lub 5). Duże wpisy dziennika są obcinane do 64 KB.

Limit skryptu niestandardowego

Dostępna długość skryptu niestandardowego zależy od używanej bazy danych:

Baza danych Limit znaków Limit bajtów
MySQL 65535 65535
PostgreSQL 65535 bez ograniczeń
SQLite (tylko Zabbix proxy) 65535 bez ograniczeń

Limit czasu pozycji

Limit czasu pozycji określa, jak długo Zabbix powinien czekać przed przerwaniem sprawdzania jako nieudanego.

Po osiągnięciu limitu czasu sprawdzanie zostaje przerwane, nawet jeśli pobieranie danych nie zostało zakończone. Jeśli dane zostaną odebrane częściowo, pozycja staje się niewspierana, a w dzienniku zostaje zapisany komunikat o błędzie (na przykład, jeśli dane zostały pomyślnie pobrane tylko dla jednego z wielu OID-ów w sprawdzeniu SNMP).

Dla wielu typów pozycji można ustawić elastyczne limity czasu pozycji:

  • dla pojedynczej pozycji
  • dla typu pozycji (na poziomie proxy)
  • dla typu pozycji (na poziomie globalnym)

Niestandardowy limit czasu dla pojedynczej pozycji jest przydatny, jeśli chcesz określić dłuższy limit czasu dla konkretnej pozycji, jednocześnie utrzymując niskie limity czasu dla pozostałych pozycji.

Priorytet limitów czasu

  1. Limit czasu pojedynczej pozycji ma pierwszeństwo przed innymi limitami czasu.
  2. Limity czasu na poziomie proxy mają pierwszeństwo przed globalnymi limitami czasu.

Limit czasu z konfiguracji serwer Zabbix lub proxy nie ma znaczenia dla sprawdzeń, dla których ustawiono elastyczne limity czasu.

Obsługa elastycznego limitu czasu

Elastyczne limity czasu dla pozycji są obsługiwane dla następujących typów pozycji:

  • Zabbix agent (zarówno dla kontroli pasywnych, jak i aktywnych)
  • SNMP agent (z wyjątkiem starszych kontroli SNMP1)
  • Simple check (z wyjątkiem icmpping* i pozycji VMware2)
  • SSH agent
  • Telnet agent
  • External check
  • Database monitor
  • Script
  • HTTP agent
  • Browser

    1 W przypadku starszych kontroli SNMP (odpytywanie pojedynczego OID) obowiązują ustawienia limitu czasu z konfiguracji serwer lub proxy.
    2 Dla pozycji icmpping* wartość limitu czasu jest określana bezpośrednio w kluczu pozycji; obowiązuje również zakodowany na stałe maksymalny możliwy limit czasu wynoszący 600 sekund. Pozycje monitorowania VMware używają własnego parametru VMwareTimeout z konfiguracji serwer lub proxy.

Nieobsługiwane pozycje

Nieobsługiwane pozycje są zgłaszane ze statusem Nieobsługiwane i nadal są ponownie sprawdzane zgodnie z ich standardowym Interwałem aktualizacji.

Pozycja staje się nieobsługiwana, jeśli z jakiegoś powodu nie można pobrać jej wartości (np. błąd połączenia, brak skonfigurowanych pollerów do przetwarzania pozycji). Dodatkowo pozycje, które nie otrzymują danych historycznych, pozostają w statusie Nieobsługiwane. Jest to oczekiwane zachowanie — pozycja przechodzi do statusu Normalny dopiero wtedy, gdy otrzyma nowe, prawidłowe dane historyczne.

Podobnie jak problemy, nieobsługiwane pozycje są ponownie oceniane tylko wtedy, gdy nadejdą nowe dane — nawet jeśli dla danej pozycji nie są już dostępne żadne dane historyczne. Innymi słowy, pozycje i wyzwalacze zmieniają swój stan wyłącznie po otrzymaniu nowych danych. Jednak jeśli wyrażenie wyzwalacza zawiera funkcję date and time i/lub nodata(), wyzwalacz będzie przeliczany co 30 sekund (szczegóły znajdują się w czasie obliczania wyzwalaczy).