Wymagania

Sprzęt

Pamięć

Zabbix wymaga zarówno pamięci fizycznej, jak i pamięci dyskowej. Wymagana ilość pamięci dyskowej zależy oczywiście od liczby hostów i parametrów, które są monitorowane. Jeśli planujesz przechowywać długą historię monitorowanych parametrów, powinieneś przewidzieć co najmniej kilka gigabajtów, aby mieć wystarczająco dużo miejsca na zapisanie historii w bazie danych. Każdy proces demona Zabbix wymaga kilku połączeń z serwerem bazy danych. Ilość pamięci przydzielonej dla połączenia zależy od konfiguracji silnika bazy danych.

Im więcej masz pamięci fizycznej, tym szybciej działa baza danych (a tym samym Zabbix).

CPU

Zabbix, a w szczególności baza danych Zabbix, może wymagać znacznych zasobów CPU w zależności od liczby monitorowanych parametrów i wybranego silnika bazy danych.

Inny sprzęt

Port komunikacji szeregowej oraz szeregowy modem GSM są wymagane do korzystania z obsługi powiadomień SMS w Zabbix. Konwerter USB-do-portu-szeregowego również będzie działać.

Przykłady konfiguracji sprzętowej

Tabela przedstawia przykłady konfiguracji sprzętowej przy założeniu platformy Linux/BSD/Unix.

Są to przykłady rozmiaru i konfiguracji sprzętowej na początek. Każda instalacja Zabbix jest unikalna. Przed wdrożeniem instalacji Zabbix do środowiska produkcyjnego należy koniecznie przeprowadzić testy wydajności systemu Zabbix w środowisku testowym lub deweloperskim, aby w pełni zrozumieć swoje wymagania.

Rozmiar instalacji Monitorowane metryki1 Rdzenie CPU/vCPU Pamięć
(GiB)
Baza danych Amazon EC22
Mała 1 000 2 8 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.large/m6g.large
Średnia 10 000 4 16 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
Duża 100 000 16 64 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.4xlarge/m6g.4xlarge
Bardzo duża 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.8xlarge/m6g.8xlarge

1 1 metryka = 1 pozycja + 1 wyzwalacz + 1 wykres
2 Przykład z użyciem instancji Amazon EC2 ogólnego przeznaczenia, z architekturą ARM64 lub x86_64; podczas oceny i testowania instalacji Zabbix, przed wdrożeniem do środowiska produkcyjnego, należy wybrać odpowiedni typ instancji, taki jak zoptymalizowany pod kątem mocy obliczeniowej/pamięci/pamięci masowej.

Rzeczywista konfiguracja w dużym stopniu zależy od liczby aktywnych pozycji i częstotliwości odświeżania (szczegóły znajdują się w sekcji rozmiar bazy danych na tej stronie). W przypadku dużych instalacji zdecydowanie zaleca się uruchamianie bazy danych na oddzielnym serwerze.

Obsługiwane platformy

Ze względu na wymagania bezpieczeństwa oraz krytyczny charakter serwera monitoringu, UNIX jest jedynym systemem operacyjnym, który może stale zapewniać wymaganą wydajność, odporność na awarie i niezawodność. Zabbix działa na wiodących na rynku wersjach systemów.

Komponenty Zabbix są dostępne i przetestowane dla następujących platform:

Platforma Serwer Agent Agent 2 Uwagi
Linux x x x
Windows - x x Agent Zabbix jest obsługiwany we wszystkich desktopowych i serwerowych wersjach systemu od Windows XP (64-bit)/Server 2003.

Agent Zabbix 2 jest obsługiwany we wszystkich desktopowych i serwerowych wersjach systemu od Windows 10 (32-bit)/Server 2016, ponieważ jest kompilowany wyłącznie przy użyciu obsługiwanej wersji Go, aby zapobiec krytycznym lukom bezpieczeństwa. Od Go 1.21 minimalne wymagane wersje Windows zostały podniesione, co sprawia, że Windows 10/Server 2016 jest minimalną wersją dla agenta Zabbix 2.
macOS x x -
IBM AIX x x - Agent Zabbix nie działa na platformach AIX w wersjach niższych niż 6.1 TL07 / 7.1 TL01.
FreeBSD x x -
OpenBSD x x -
Solaris x x -
NetBSD x x -
HP-UX x x -

Serwer/agent Zabbix może działać na innych systemach operacyjnych typu Unix.

Zabbix wyłącza zrzuty core, jeśli został skompilowany z obsługą szyfrowania, i nie uruchamia się, jeśli system nie pozwala na wyłączenie zrzutów core.

Wymagane oprogramowanie

Zabbix jest oparty na nowoczesnych serwerach WWW, wiodących silnikach baz danych oraz języku skryptowym PHP.

Oprogramowanie zewnętrzne firm trzecich

Jeśli jest to określone jako obowiązkowe, wymagane oprogramowanie/biblioteka jest bezwzględnie konieczna. Opcjonalne elementy są potrzebne do obsługi niektórych konkretnych funkcji.

Software Mandatory status Supported versions Comments
MySQL/Percona One of 8.4.0-9.7.X Wymagane, jeśli MySQL (lub Percona) jest używany jako baza danych backendowa Zabbix. Wymagany jest silnik InnoDB.

Zalecamy użycie biblioteki C API (libmysqlclient) do budowania serwer/proxy.
MariaDB 10.11.00-12.3.X Wymagany jest silnik InnoDB.

Zalecana wersja to 12.3.

Zalecamy użycie biblioteki MariaDB Connector/C do budowania serwer/proxy.

Zobacz także: Possible deadlocks with MariaDB oraz Access to UI elements with MariaDB 10.5.1-10.5.9.
PostgreSQL 15.0-18.X Wymagane, jeśli PostgreSQL jest używany jako baza danych backendowa Zabbix.
W zależności od rozmiaru instalacji może być konieczne zwiększenie właściwości konfiguracji PostgreSQL work_mem (domyślna wartość to 4MB), aby ilość pamięci używanej przez bazę danych dla określonej operacji była wystarczająca, a wykonanie zapytania nie trwało zbyt długo.
TimescaleDB for PostgreSQL 2.20.X-2.28.X Wymagane, jeśli TimescaleDB jest używany jako rozszerzenie bazy danych PostgreSQL. Upewnij się, że instalujesz TimescaleDB Community Edition, która obsługuje kompresję.

Szczegóły dotyczące zgodności wersji PostgreSQL i TimescaleDB znajdują się w dokumentacji TimescaleDB.
Elasticsearch 7.X Wymagane, jeśli Elasticsearch jest używany jako baza danych backendowa Zabbix.
Elasticsearch może być używany wyłącznie do przechowywania danych historycznych i jest obsługiwany tylko z serwerami Zabbix. Obsługa Elasticsearch jest obecnie eksperymentalna. Zobacz także wymagane oprogramowanie dla serwer/proxy.
ClickHouse 25.8.22.X-26.4.X Wymagane, jeśli ClickHouse jest używany jako baza danych backendowa Zabbix.
ClickHouse może być używany wyłącznie do przechowywania danych historycznych i jest obsługiwany tylko z serwerami Zabbix.
SQLite Optional 3.3.5-3.53.X SQLite jest obsługiwany wyłącznie z proxy Zabbix. Wymagany, jeśli SQLite jest używany jako baza danych proxy Zabbix.
smartmontools 7.1 or later Wymagane dla agent 2 Zabbix.
who Wymagane dla wtyczki zliczania użytkowników.
dpkg Wymagane dla wtyczki system.sw.packages.
pkgtool Wymagane dla wtyczki system.sw.packages.
rpm Wymagane dla wtyczki system.sw.packages.
pacman Wymagane dla wtyczki system.sw.packages.
q applets qlist i qsize, jako część q applets, są wymagane dla wtyczki system.sw.packages w Gentoo Linux.

Chociaż Zabbix może działać z bazami danych dostępnymi w systemach operacyjnych, dla najlepszych rezultatów zalecamy używanie baz danych zainstalowanych z oficjalnych repozytoriów dostawcy bazy danych.

Frontend

Minimalna obsługiwana szerokość ekranu dla frontend Zabbix wynosi 1200 px.

Jeśli coś jest określone jako obowiązkowe, oznacza to, że wymagane oprogramowanie/biblioteka jest bezwzględnie konieczne. Elementy opcjonalne są potrzebne do obsługi niektórych określonych funkcji.

Oprogramowanie Status obowiązkowości Obsługiwane wersje Uwagi
PHP Tak 8.2.0 - 8.5.X
Apache Jedno z 2.4 lub nowsza
Nginx 1.20 lub nowsza
MySQL Jedno z Zobacz Oprogramowanie zewnętrzne innych firm
PostgreSQL
Rozszerzenia PHP
mysqli Tak Wymagane, jeśli MySQL jest używany jako baza danych backend Zabbix.
pgsql Wymagane, jeśli PostgreSQL jest używany jako baza danych backend Zabbix.
bcmath php-bcmath (--enable-bcmath)
mbstring php-mbstring (--enable-mbstring)
sockets php-net-socket (--enable-sockets); wymagane do obsługi skryptów użytkownika.
gd 2.0.28 lub nowsza php-gd (jeśli dostarczane jako osobny pakiet przez dystrybutora); rozszerzenie PHP GD musi obsługiwać obrazy PNG (--with-png-dir), obrazy JPEG (--with-jpeg-dir) oraz FreeType 2 (--with-freetype-dir). Wersja 2.3.0 lub nowsza może być wymagana, aby uniknąć możliwego nakładania się tekstu na wykresach w przypadku niektórych języków frontend.
libxml 2.6.15 lub nowsza php-xml (jeśli dostarczane jako osobny pakiet przez dystrybutora)
xmlwriter php-xmlwriter (jeśli dostarczane jako osobny pakiet przez dystrybutora)
xmlreader php-xmlreader (jeśli dostarczane jako osobny pakiet przez dystrybutora)
ctype php-ctype (--enable-ctype)
session php-session (jeśli dostarczane jako osobny pakiet przez dystrybutora)
ldap Nie php-ldap; wymagane do uwierzytelniania LDAP.
openssl php-openssl; wymagane do uwierzytelniania SAML.
gettext php-gettext (--with-gettext); wymagane do tłumaczeń.
cURL 7.19.4 lub nowsza php-curl; wymagane dla Duo Universal Prompt MFA oraz uwierzytelniania SMTP.

Biblioteki frontend innych firm dostarczane wraz z Zabbix:

Biblioteka Status obowiązkowości Dostarczana wersja Uwagi
jQuery JavaScript Library Tak 3.6.0 Biblioteka JavaScript upraszczająca proces tworzenia aplikacji działających w różnych przeglądarkach.
jQuery UI 1.12.1 Zestaw interakcji interfejsu użytkownika, efektów, widżetów i motywów zbudowanych na bazie jQuery.
SAML PHP Toolkit 4.3.1 Zestaw narzędzi PHP, który dodaje obsługę uwierzytelniania SAML 2.0, umożliwiając logowanie do Zabbix.
Duo Universal PHP library 1.1.2 Biblioteka PHP, która dodaje do Zabbix obsługę uwierzytelniania wieloskładnikowego Duo Universal Prompt.
Symfony Yaml Component 5.1.0 Dodaje obsługę eksportu i importu elementów konfiguracji Zabbix w formacie YAML.

Zabbix może działać również z wcześniejszymi wersjami Apache, MySQL i PostgreSQL.

W przypadku czcionek innych niż domyślna DejaVu może być wymagana funkcja PHP imagerotate. Jeśli jej brakuje, czcionki te mogą być renderowane nieprawidłowo podczas wyświetlania wykresu. Ta funkcja jest dostępna tylko wtedy, gdy PHP jest skompilowane z dołączonym GD, co nie ma miejsca w Debianie i innych dystrybucjach.

Biblioteki innych firm używane do pisania i debugowania kodu frontend Zabbix:

Biblioteka Status obowiązkowości Wersja minimalna Opis
Composer Nie 2.4.1 Menedżer pakietów na poziomie aplikacji dla PHP, który zapewnia standardowy format zarządzania zależnościami oprogramowania PHP i wymaganymi bibliotekami.
PHPUnit 8.5.29 Framework testów jednostkowych PHP do testowania frontend Zabbix.
SASS 3.4.22 Język skryptowy preprocesora, który jest interpretowany i kompilowany do kaskadowych arkuszy stylów (CSS).
Przeglądarka internetowa po stronie klienta

Pliki cookie i JavaScript muszą być włączone.

Obsługiwane są najnowsze stabilne wersje Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari i Opera.

Stosowana jest polityka same-origin dla IFrame, co oznacza, że Zabbix nie może być osadzony w ramkach w innej domenie.

Jednak strony osadzone w ramce Zabbix będą miały dostęp do frontend Zabbix (przez JavaScript), jeśli strona osadzona w ramce i frontend Zabbix znajdują się w tej samej domenie. Strona taka jak http://secure-zabbix.com/cms/page.html, jeśli zostanie umieszczona na pulpitach w http://secure-zabbix.com/zabbix/, będzie miała pełny dostęp JS do Zabbix.

Server/proxy

Jeśli określono jako obowiązkowe, wymagane oprogramowanie/biblioteka jest bezwzględnie konieczne.
Opcjonalne są potrzebne do obsługi niektórych konkretnych funkcji.

Requirement Mandatory status Description
libpcre2 Yes Biblioteka PCRE2 jest wymagana do obsługi Perl Compatible Regular Expression (PCRE).
Obsługiwana jest wersja PCRE2 v10.x.
libevent Wymagana do komunikacji międzyprocesowej. Wersja 2.0.10 lub nowsza.
libevent-pthreads Wymagana do komunikacji międzyprocesowej.
libpthread Wymagana do obsługi mutexów i blokad odczytu-zapisu (może być częścią libc).
libresolv Wymagana do rozwiązywania nazw DNS (może być częścią libc).
libiconv Wymagana do kodowania/konwersji formatów tekstu (może być częścią libc). Obowiązkowa dla serwera Zabbix w systemie Linux.
libz Wymagana do obsługi kompresji.
libm Biblioteka matematyczna. Wymagana tylko przez serwer Zabbix.
libmysqlclient One of Wymagana, jeśli używany jest MySQL.
libmariadb Wymagana, jeśli używany jest MariaDB.
libpq5 Wymagana, jeśli używany jest PostgreSQL; wersja libpq5 musi być zgodna z wersją używanej bazy PostgreSQL lub od niej nowsza.
libsqlite3 Wymagana, jeśli używany jest SQLite. Wymagana tylko przez proxy Zabbix.
libOpenIPMI No Wymagana do obsługi IPMI. Wymagana tylko przez serwer Zabbix.
libssh2 or libssh Wymagana do sprawdzeń SSH. Wersja 1.8.0 lub nowsza (libssh2); 0.9.0 lub nowsza (libssh).
libcurl Wymagana dla następujących funkcji:
- Monitorowanie WWW, monitorowanie VMware oraz pozycje HTTP agent (dla wszystkich: wersja 7.19.1 lub nowsza);
- pozycje Zabbix agent web.page.* (wersja 7.19.1 lub nowsza; zobacz też wymagania dla agent);
- uwierzytelnianie SMTP (Basic: wersja 7.20.0 lub nowsza; OAuth: wersja 7.33 lub nowsza; zobacz też wymagania dla frontend);
- Elasticsearch (wersja 7.28.0 lub nowsza).
Zalecana jest wersja 7.28.0 lub nowsza dla wszystkich funkcji.
Aby korzystać z zaktualizowanych funkcji cURL dla pozycji web.page.*, uruchom ponownie serwer/proxy Zabbix.
Do uwierzytelniania SMTP w czasie działania użyj pakietu libcurl-full.
libxml2 Wymagana do monitorowania VMware oraz wstępnego przetwarzania XML XPath.
net-snmp Wymagana do obsługi SNMP. Wersja 5.3.0 lub nowsza.
Obsługa silnych protokołów szyfrowania (AES192/AES192C, AES256/AES256C) jest dostępna od biblioteki net-snmp w wersji 5.8; w systemach opartych na RHEL 8+ zaleca się używanie net-snmp 5.8.15 lub nowszej.
libunixodbc Wymagana do monitorowania bazy danych.
libgnutls or libopenssl Wymagana przy używaniu szyfrowania.
Minimalne wersje: libgnutls - 3.1.18, libopenssl - 1.0.1
libldap Wymagana do obsługi LDAP.
fping Wymagana do pozycji ICMP ping.
c-ares Wymagana do asynchronicznego rozwiązywania DNS, jeśli Zabbix jest skonfigurowany z opcją --with-ares. W przeciwnym razie używana będzie libevent.
Minimalna wersja: 1.16.0. Funkcja buforowania zapytań DNS i failoveru (bufor zapytań jest domyślnie włączony) wymaga c-ares 1.26.0 lub nowszej. W systemach, w których c-ares jest dostarczany przez pakiet systemowy OS, upewnij się, że zainstalowana biblioteka uruchomieniowa udostępnia funkcje resolvera wymagane do buforowania DNS i failoveru.
Agent
Requirement Mandatory status Description
libpcre2 Yes Biblioteka PCRE2 jest wymagana do obsługi Perl Compatible Regular Expression (PCRE).
Obsługiwana jest wersja PCRE2 v10.x.
Wymagana do monitorowania logów. Wymagana również w systemie Windows.
libpthread Wymagana do obsługi mutexów i blokad odczytu-zapisu (może stanowić część libc). Nie jest wymagana w systemie Windows.
libresolv Wymagana do rozwiązywania DNS (może stanowić część libc). Nie jest wymagana w systemie Windows.
libiconv Wymagana do konwersji kodowania/formatu tekstu do UTF-8 w pozycjach logów, zawartości plików, wyrażeniach regularnych plików oraz pozycjach regmatch (może stanowić część libc). Nie jest wymagana w systemie Windows.
libgnutls or libopenssl No Wymagana, jeśli używane jest szyfrowanie.
Minimalne wersje: libgnutls - 3.1.18, libopenssl - 1.0.1
W systemie Microsoft Windows wymagany jest OpenSSL 1.1.1 lub nowszy.
libldap Wymagana, jeśli używany jest LDAP. Nieobsługiwana w systemie Windows.
libcurl Wymagana do rozszerzonej obsługi pozycji Zabbix agent web.page.*.
Bez libcurl dostępna jest podstawowa funkcjonalność (np. web.page.get[http://example.com]). Z libcurl agent obsługuje dodatkowe funkcje, takie jak adresy URL HTTP z poświadczeniami (np. http://user:[email protected]) oraz adresy URL HTTPS.
Wymagana jest wersja 7.19.1 lub nowsza (zalecana jest 7.28.0 lub nowsza).
Aby korzystać z ulepszonych funkcji cURL, uruchom ponownie Zabbix agent.
libmodbus Wymagana tylko wtedy, gdy używane jest monitorowanie Modbus.
Wersja 3.0 lub nowsza.
Agent 2
Requirement Mandatory status Description
Go Yes Wymagane do zbudowania Zabbix agent 2 oraz jego wtyczek ze źródeł.
Obsługiwany jest Go 1.25 lub nowszy. Instrukcje instalacji znajdują się na stronie go.dev.
Biblioteki Go używane przez Zabbix agent 2 i jego wtyczki są wymienione w repozytorium Git Zabbix (biblioteki oznaczone jako indirect w repozytorium są zależnościami innych wymaganych bibliotek):
- Zabbix agent 2
- Plugin support
- PostgreSQL
- MongoDB
- MSSQL
- Ember+
- NVIDIA GPU
- Example plugin
libpcre2 Yes Biblioteka PCRE2 jest wymagana do obsługi Perl Compatible Regular Expression (PCRE).
Obsługiwana jest wersja PCRE2 v10.x.
Wymagana do monitorowania logów. Wymagana również w systemie Windows.
libopenssl No Wymagana podczas korzystania z szyfrowania.
Na platformach UNIX wymagana jest biblioteka OpenSSL 1.0.1 lub nowsza.
Biblioteka OpenSSL musi mieć włączoną obsługę PSK. LibreSSL nie jest obsługiwany.
W systemach Microsoft Windows wymagana jest biblioteka OpenSSL 1.1.1 lub nowsza.
Usługa web

Najnowsza stabilna wersja Google Chrome jest obsługiwana do generowania zaplanowanych raportów przy użyciu usługi web Zabbix.

Wymagana wersja Go do budowania usługi web jest taka sama jak ta używana dla Zabbix agent 2.

Java gateway

Jeśli pobrałeś Zabbix z repozytorium źródłowego lub z archiwum, wszystkie niezbędne zależności są już dołączone do drzewa źródeł.

Jeśli pobrałeś Zabbix z pakietu swojej dystrybucji, wszystkie niezbędne zależności są już dostarczane przez system pakietów.

W obu powyższych przypadkach oprogramowanie jest gotowe do użycia i nie są wymagane żadne dodatkowe pobrania.

Jeśli jednak chcesz dostarczyć własne wersje tych zależności (na przykład podczas przygotowywania pakietu dla jakiejś dystrybucji Linuksa), poniżej znajduje się lista wersji bibliotek, z którymi Java gateway jest znany jako działający. Zabbix może również działać z innymi wersjami tych bibliotek.

Poniższa tabela zawiera pliki JAR, które są obecnie dołączone do Java gateway w oryginalnym kodzie:

Library Mandatory status Bundled version Comments
android-json Yes 4.3r1 JSON (JavaScript Object Notation) to lekki format wymiany danych. Jest to zgodna z org.json implementacja dla Androida, wyodrębniona z Android SDK.
logback-classic 1.5.16
logback-core 1.5.16
slf4j-api 2.0.16

Java gateway można zbudować przy użyciu Oracle Java lub otwartoźródłowego OpenJDK (wersja 1.6 lub nowsza). Pakiety dostarczane przez Zabbix są kompilowane przy użyciu OpenJDK. Poniższa tabela zawiera pakiety OpenJDK używane do budowania pakietów Zabbix przez poszczególne dystrybucje:

Distribution OpenJDK package
AlmaLinux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
AlmaLinux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2)
Amazon Linux 2023 java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1)
CentOS Stream 9 java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3)
CentOS Stream 8 java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3)
CentOS 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Debian 12 default-jdk-headless (amd64, arm64: 2:1.17-74)
Debian 11 default-jdk-headless (amd64: 2:1.11-72)
OpenSUSE Leap 15 java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1)
Oracle Linux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1)
Oracle Linux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1)
Oracle Linux 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Raspberry Pi OS 12 default-jdk-headless (arm64, armhf: 2:1.17-74)
Raspberry Pi OS 11 default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4)
RHEL 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
RHEL 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2)
RHEL 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Rocky Linux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
Rocky Linux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2)
SLES 15 java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1)
Ubuntu 24.04 default-jdk-headless (amd64, arm64: 2:1.21-75+exp1)
Ubuntu 22.04 default-jdk-headless (amd64, arm64: 2:1.11-72build2)
Ubuntu 20.04 default-jdk-headless (amd64, arm64: 2:1.11-72)

Domyślne numery portów

Poniższa lista otwartych portów dla poszczególnych komponentów ma zastosowanie do konfiguracji domyślnej:

Komponent Zabbix Numer portu Protokół Typ połączenia
Zabbix agent 10050 TCP na żądanie
Zabbix agent 2 10050 TCP na żądanie
Zabbix serwer 10051 TCP na żądanie
Zabbix proxy 10051 TCP na żądanie
Zabbix Java gateway 10052 TCP na żądanie
Usługa internetowa Zabbix 10053 TCP na żądanie
Zabbix frontend 80 HTTP na żądanie
443 HTTPS na żądanie
Zabbix trapper 10051 TCP na żądanie

Numery portów powinny być otwarte w zaporze sieciowej, aby umożliwić komunikację Zabbix. Wychodzące połączenia TCP zwykle nie wymagają jawnych ustawień zapory sieciowej.

Rozmiar bazy danych

Dane konfiguracyjne Zabbix wymagają stałej ilości miejsca na dysku i nie rosną znacząco.

Rozmiar bazy danych Zabbix zależy głównie od poniższych zmiennych, które określają ilość przechowywanych danych historycznych:

  • Liczba przetwarzanych wartości na sekundę

Jest to średnia liczba nowych wartości, które serwer Zabbix otrzymuje co sekundę. Na przykład, jeśli mamy 3000 pozycji do monitorowania z częstotliwością odświeżania 60 sekund, liczba wartości na sekundę jest obliczana jako 3000/60 = 50.

Oznacza to, że co sekundę do bazy danych Zabbix dodawanych jest 50 nowych wartości.

  • Ustawienia housekeepera dla historii

Zabbix przechowuje wartości przez stały okres czasu, zwykle kilka tygodni lub miesięcy. Każda nowa wartość wymaga określonej ilości miejsca na dysku na dane i indeks.

Jeśli więc chcielibyśmy przechowywać historię przez 30 dni i otrzymujemy 50 wartości na sekundę, łączna liczba wartości wyniesie około (30*24*3600)* 50 = 129.600.000, czyli około 130M wartości.

W zależności od używanego silnika bazy danych, typu otrzymywanych wartości (liczby zmiennoprzecinkowe, liczby całkowite, ciągi znaków, pliki dziennika itp.) miejsce na dysku potrzebne do przechowania pojedynczej wartości może wynosić od 40 bajtów do setek bajtów. Zwykle jest to około 90 bajtów na wartość dla pozycji liczbowych2. W naszym przypadku oznacza to, że 130M wartości będzie wymagać 130M * 90 bajtów = 10.9GB miejsca na dysku.

Rozmiar wartości pozycji tekstowych/dziennika jest niemożliwy do dokładnego przewidzenia, ale można oczekiwać około 500 bajtów na wartość.

  • Ustawienie housekeepera dla trendów

Zabbix przechowuje zestaw wartości max/min/avg/count z okresu 1 godziny dla każdej pozycji w tabeli trends. Dane są używane do tworzenia trendów i wykresów długookresowych. Okres jednej godziny nie może być dostosowany.

Baza danych Zabbix, w zależności od typu bazy danych, wymaga około 90 bajtów na każdy total. Załóżmy, że chcielibyśmy przechowywać dane trendów przez 5 lat. Wartości dla 3000 pozycji będą wymagać 3000*24*365* 90 = 2.2GB rocznie, czyli 11GB przez 5 lat.

  • Ustawienia housekeepera dla zdarzeń

Każde zdarzenie Zabbix wymaga około 250 bajtów miejsca na dysku1. Trudno oszacować liczbę zdarzeń generowanych codziennie przez Zabbix. W najgorszym przypadku możemy założyć, że Zabbix generuje jedno zdarzenie na sekundę.

Dla każdego odzyskanego zdarzenia tworzony jest rekord event_recovery. Zwykle większość zdarzeń zostanie odzyskana, więc możemy założyć jeden rekord event_recovery na zdarzenie. Oznacza to dodatkowe 80 bajtów na zdarzenie.

Opcjonalnie zdarzenia mogą mieć tagi, a każdy rekord tagu wymaga około 100 bajtów miejsca na dysku1. Liczba tagów na zdarzenie (#tags) zależy od konfiguracji. Każdy z nich będzie więc wymagał dodatkowych #tags * 100 bajtów miejsca na dysku.

Oznacza to, że jeśli chcemy przechowywać zdarzenia przez 3 lata, będzie to wymagać 3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B miejsca na dysku2.

1 Więcej w przypadku nazw zdarzeń, tagów i wartości spoza ASCII.
2 Przybliżenia rozmiaru są oparte na MySQL i mogą się różnić w przypadku innych baz danych.

Tabela zawiera wzory, które można wykorzystać do obliczenia miejsca na dysku wymaganego przez system Zabbix:

Parameter Formula for required disk space (in bytes)
Zabbix configuration Fixed size. Normally 10MB or less.
History days*(items/refresh rate)*24*3600*bytes
items : number of items
days : number of days to keep history
refresh rate : average refresh rate of items
bytes : number of bytes required to keep single value, depends on database engine, normally ~90 bytes.
Trends days*(items/3600)*24*3600*bytes
items : number of items
days : number of days to keep history
bytes : number of bytes required to keep single trend, depends on the database engine, normally ~90 bytes.
Events days*events*24*3600*bytes
events : number of event per second. One (1) event per second in worst-case scenario.
days : number of days to keep history
bytes : number of bytes required to keep single event, depends on the database engine, normally ~330 + average number of tags per event * 100 bytes.

Zatem całkowite wymagane miejsce na dysku można obliczyć jako:

Konfiguracja + Historia + Trendy + Zdarzenia

Miejsce na dysku NIE będzie używane natychmiast po instalacji Zabbix. Rozmiar bazy danych będzie rósł, a następnie w pewnym momencie przestanie rosnąć, co zależy od ustawień housekeepera.

Synchronizacja czasu

Bardzo ważne jest, aby na serwerze, na którym działa Zabbix, czas systemowy był precyzyjnie ustawiony. ntpd to najpopularniejszy demon synchronizujący czas hosta z czasem innych maszyn. Zdecydowanie zaleca się utrzymywanie zsynchronizowanego czasu systemowego na wszystkich systemach, na których działają komponenty Zabbix.

Wymagania sieciowe

Poniższa lista otwartych portów dla poszczególnych komponentów ma zastosowanie do konfiguracji domyślnej.

Components Port
Frontend http na 80, https na 443
Server 10051 (do użycia z aktywnym proxy/agentami)
Active Proxy 10051
Passive Proxy 10051
Agent2 10050
Trapper
JavaGateway 10052
WebService 10053

Numery portów powinny być otwarte w zaporze sieciowej, aby umożliwić zewnętrzną komunikację z Zabbix. Wychodzące połączenia TCP zwykle nie wymagają jawnych ustawień zapory sieciowej.