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ą, naciskając przycisk Clone, a następnie zapisując ją pod inną nazwą.
Konfiguracja
Zakładka Pozycja zawiera ogólne atrybuty pozycji.

Wszystkie wymagane pola wejściowe są oznaczone czerwoną gwiazdką.
| Parametr | Opis |
|---|---|
| Name | Nazwa pozycji. Obsługiwane są makra użytkownika. |
| Type | Typ pozycji. Zobacz poszczególne sekcje typów pozycji. |
| Key | Klucz pozycji (do 2048 znaków). Obsługiwane klucze pozycji można znaleźć w sekcjach poszczególnych typów pozycji. Klucz musi być unikalny w obrębie pojedynczego 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 pozycji i przechowywania jej w bazie danych, również 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ść, ID zdarzenia logu); Text - długi tekst; Binary - liczba binarna (obsługiwana tylko dla pozycji zależnych); JSON - strukturalne dane JSON, przechowywane natywnie w bazie danych (nieobsługiwane dla pozycji obliczanych). Pozycje zwracające wartości typu danych binary lub JSON nie są obsługiwane w formułach pozycji obliczanych ani w wyrażeniach wyzwalaczy. Informacje o limitach przechowywania dla każdego typu danych i silnika bazy danych znajdują się w sekcji limity danych pozycji. Dla pozycji, 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 zwracają 64-bitową liczbę zmiennoprzecinkową, więc Numeric (float) jest wybierane automatycznie. |
| Host interface | Wybierz interfejs hosta. To pole jest dostępne podczas edycji pozycji na poziomie hosta. |
| Units | Jeśli ustawiono symbol jednostki, Zabbix stosuje przetwarzanie końcowe do odebranej wartości pozycji i wyświetla ją z określonym przyrostkiem jednostki. Obsługiwane symbole jednostek ze specjalnym formatowaniem (oraz przykłady odebranej wartości pozycji → wyświetlanej wartości): B - bajty (1024 → 1 KB) Bps - bajty na sekundę (1024 → 1 KBps) s - sekundy, wyświetlane z użyciem maksymalnie trzech największych niezerowych jednostek czasu (881764 → 10d 4h 56m) uptime - czas działania w formacie hh:mm:ss lub N dni, hh:mm:ss (881764 → 10 dni, 04:56:04) unixtime - znacznik czasu Unix, formatowany jako yyyy.mm.dd hh:mm:ss (881764 → 1970-01-11 04:56:04 AM); dla poprawnego formatowania odebrana wartość pozycji musi mieć typ Numeric (unsigned). Dla innych jednostek (takich jak Hz, W itp.), jeśli odebrana 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 prefiksem !, konwersja jednostki i dodawanie prefiksu 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 znajduje się w sekcji Sufiksy wartości pozycji. |
| Update interval | Pobieraj nową wartość dla tej pozycji 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. Pojedyncze makro musi wypełniać całe pole. Wiele makr w jednym polu lub makra zmieszane z tekstem nie są obsługiwane. 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”, a istnieje niestandardowy interwał (elastyczny lub harmonogram) z wartością różną od zera, pozycja będzie odpytywana w czasie trwania niestandardowego interwału. Uwaga, że pierwsze odpytanie pozycji po jej aktywacji lub po zmianie interwału aktualizacji może nastąpić wcześniej niż skonfigurowana wartość. Nowe pozycje będą sprawdzane w ciągu 60 sekund od ich utworzenia, chyba że mają harmonogram lub elastyczny interwał aktualizacji, a Update interval ustawiono na 0. Istniejącą pasywną pozycję można odpytać natychmiast, naciskając przycisk Execute now button. |
| 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 znajdują się w sekcji Niestandardowe interwały. W polu Interval obsługiwane są sufiksy czasu, np. 30s, 1m, 2h, 1d. Obsługiwane są makra użytkownika. Pojedyncze makro musi wypełniać całe pole. Wiele makr w jednym polu lub makra zmieszane z tekstem nie są obsługiwane. |
| Timeout | Ustaw limit czasu sprawdzania pozycji (dostępne dla obsługiwanych typów pozycji). Wybierz opcję limitu czasu: Global - używany jest globalny limit czasu/proxy (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 globalnych (jeśli proxy nie jest używany). Należy pamiętać, ż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 pozycji nie jest przechowywana. Przydatne dla pozycji nadrzędnych, jeśli tylko pozycje zależne mają zachowywać historię. Tego ustawienia nie można nadpisać globalnymi ustawieniami 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 housekeeper. Wartość jest przechowywana w sekundach. Obsługiwane są sufiksy czasu, np. 2h, 1d. Obsługiwane są makra użytkownika. Wartość Store up to może zostać nadpisana globalnie 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 dłużej przechowywać dane trendów. Zobacz także Historia i trendy. |
| Trends | Wybierz jedną z opcji: Do not store - trendy nie są przechowywane. Tego ustawienia nie można nadpisać globalnymi ustawieniami 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 housekeeper. Wartość jest przechowywana w sekundach. Obsługiwane są sufiksy czasu, np. 24h, 1d. Obsługiwane są makra użytkownika. Wartość Store up to może zostać nadpisana globalnie 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 Historia i trendy. |
| Value mapping | Zastosuj mapowanie wartości do tej pozycji. Mapowanie wartości nie zmienia odebranych wartości, służy wyłącznie do wyświetlania danych. Działa z pozycjami Numeric(unsigned), Numeric(float) i Character. Na przykład „Windows service states”. |
| Log time format | Dostępne tylko dla pozycji 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 pole pozostanie puste, znacznik czasu zostanie ustawiony na 0 w czasie Unix, co odpowiada 1 stycznia 1970 roku. Na przykład rozważmy następujący wiersz z pliku logu Zabbix agent: " 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211)." Zaczyna się on od sześciu pozycji znakowych dla PID, po których następują data, czas i reszta komunikatu. Format czasu logu dla tego wiersza to „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ą pozycji. Będzie to działać, jeśli dla hosta włączone jest automatyczne wypełnianie inwentarza oraz dla pozycji Numeric(unsigned), Numeric(float), Character i Text. |
| Description | Wprowadź opis pozycji. Obsługiwane są makra użytkownika. |
| Enabled | Zaznacz pole wyboru, aby włączyć pozycję, dzięki czemu będzie przetwarzana. Po wyłączeniu pozycji jest ona natychmiast usuwana z pamięci podręcznej historii (z wyjątkiem jej ostatniej wartości, która jest zachowywana dla logów). |
| Latest data | Kliknij łącze, aby wyświetlić najnowsze dane dla pozycji. To łącze jest dostępne tylko podczas edycji już istniejącej pozycji. |
Pola specyficzne dla typu pozycji są opisane na odpowiednich stronach.
Podczas edycji istniejącej pozycji na poziomie szablonu z poziomu hosta część pól jest tylko do odczytu. Możesz użyć łącza w nagłówku formularza, przejść do poziomu szablonu i edytować je tam, pamiętając, że zmiany na poziomie szablonu zmienią pozycję dla wszystkich hostów, do których ten szablon jest podłączony.
Zakładka Tags umożliwia definiowanie tagów na poziomie pozycji.

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. Jeśli czas na serwerze 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 jest ona poprawnie skonfigurowana, uzyskanie w odpowiedzi rzeczywistej wartości. Testowanie może odbywać się jeszcze przed zapisaniem pozycji.
Testowanie jest dostępne dla pozycji hosta i szablonu, prototypów pozycji oraz reguł wykrywania niskiego poziomu. Testowanie nie jest dostępne dla pozycji aktywnych.
Testowanie pozycji jest dostępne dla następujących typów pozycji pasywnych:
- agent Zabbix
- agent SNMP (v1, v2, v3)
- agent IPMI
- kontrole SSH
- kontrole Telnet
- agent JMX
- proste kontrole (z wyjątkiem pozycji
icmpping*,vmware.*) - wewnętrzne Zabbix
- pozycje kalkulowane
- kontrole zewnętrzne
- monitor bazy danych
- agent HTTP
- skrypt
- przeglądarka
Aby przetestować pozycję, kliknij przycisk Test na dole formularza konfiguracji pozycji. Pamiętaj, że przycisk Test będzie wyłączony dla pozycji, których nie można testować (takich jak kontrole aktywne, wykluczone proste kontrole).

Formularz testowania pozycji zawiera pola dla 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 uzupełniane, gdy jest to możliwe, tj. dla pozycji wymagających agent, poprzez pobranie informacji z wybranego interfejsu agent hosta.
- Wartości muszą być wprowadzane ręcznie dla pozycji szablonu.
- Wartości makr w postaci zwykłego tekstu są rozwijane.
- Pola, w których wartość (lub część wartości) jest tajnym makrem lub makrem Vault, są puste i muszą zostać uzupełnione ręcznie. Jeśli dowolny parametr pozycji zawiera wartość tajnego makra, wyświetlany jest następujący komunikat ostrzegawczy: „Pozycja zawiera makra użytkownika z tajnymi wartościami. Wartości tych makr należy wprowadzić ręcznie.”
- 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 kalkulowanych)
Aby przetestować pozycję, kliknij Get value. Jeśli wartość zostanie pomyślnie pobrana, wypełni pole Value, przenosząc bieżącą wartość (jeśli istnieje) do pola Previous value, jednocześnie obliczając pole Prev. time, tj. różnicę czasu między dwiema wartościami (kliknięciami), oraz próbując wykryć sekwencję EOL i przełączyć na CRLF po wykryciu "\n\r" w pobranej wartości.
Kliknij Get value and test, aby przetestować preprocessing.

Wartości pobrane z hosta i wyniki testów są obcinane do maksymalnego rozmiaru 512KB podczas wysyłania do frontend. Jeśli wynik testu zostanie obcięty, wyświetlana jest ikona ostrzeżenia; najedź na nią kursorem, aby zobaczyć szczegóły. Jeśli wartość zostanie obcię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. Pamiętaj, że dane większe niż 512KB 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 silnika bazy danych.
Wartości numeryczne (unsigned) 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 od 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:
| Baza danych | Typ informacji | ||
|---|---|---|---|
| Znakowy | Log | Tekst | |
| MySQL | 255 znaków | 65536 bajtów | 65536 bajtów |
| PostgreSQL | 255 znaków | 65536 znaków | 65536 znaków |
| SQLite (tylko Zabbix proxy) | 255 znaków | 65536 znaków | 65536 znaków |
Wartości binarne są ograniczone do 16MiB (16777216 bajtów). Wartości przekraczające ten limit są odrzucane, a odpowiedni błąd jest wyświetlany we frontend.
Wartości z typem danych JSON są ograniczone do 128MiB (134217728 bajtów).
Wartości przekraczające ten limit są odrzucane, a odpowiedni błąd jest wyświetlany we frontend.
W przypadku MySQL/MariaDB należy rozważyć skonfigurowanie dziennych partycji dla tabeli history_json (używanej do przechowywania wartości JSON), ponieważ może ona szybko rosnąć i blokować housekeeper przez dłuższy czas.
Jeśli Twój przypadek użycia obejmuje duże wartości JSON (1MiB lub więcej), zobacz, jak skonfigurować system pod kątem obsługi dużych wartości JSON.
Gdy Zabbix zapisuje jakiekolwiek dane pozycji do bazy danych, używa zapytań INSERT i rejestruje je w logach (jeśli DebugLevel jest ustawiony na 4 lub 5).
Duże wpisy logów są obcinane do 64KB.
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 i oznaczeniem go jako nieudanego.
Po osiągnięciu limitu czasu sprawdzanie jest przerywane, nawet jeśli pobieranie danych nie zostało zakończone. Jeśli dane zostaną odebrane częściowo, pozycja stanie się nieobsługiwana, a komunikat o błędzie zostanie zapisany w logu (na przykład, jeśli podczas sprawdzania SNMP dane zostaną pomyślnie zebrane tylko dla jednego z wielu OID).
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, zachowując jednocześnie niskie limity czasu dla innych pozycji.
Priorytet limitów czasu
- Limit czasu pojedynczej pozycji ma pierwszeństwo przed wszystkimi innymi limitami czasu.
- Limity czasu na poziomie proxy mają pierwszeństwo przed globalnymi limitami czasu.
Limit czasu z konfiguracji Zabbix serwer lub proxy nie odgrywa żadnej roli w sprawdzaniach, dla których ustawiono elastyczne limity czasu.
Obsługa elastycznych limitów czasu
Elastyczne limity czasu pozycji są obsługiwane dla następujących typów pozycji:
- agent Zabbix (zarówno dla sprawdzeń pasywnych, jak i aktywnych)
- agent SNMP (z wyjątkiem starszych sprawdzeń SNMP1)
- Proste sprawdzenie (z wyjątkiem
icmpping*i pozycji VMware2) - agent SSH
- agent Telnet
- Sprawdzenie zewnętrzne
- Monitor bazy danych
- Skrypt
- agent HTTP
-
1 W przypadku starszych sprawdzeń SNMP (odpytanie pojedynczego OID) stosowane są ustawienia limitu czasu z konfiguracji serwer lub proxy.
2 W przypadku pozycjiicmpping*wartość limitu czasu jest określana bezpośrednio w kluczu pozycji; obowiązuje również zakodowany na stałe maksymalny 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).
. Po najechaniu na nią kursorem wyświetlany jest komunikat ostrzegawczy, np. Overridden by global housekeeper settings (1d).






