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, od których można rozpocząć. Każda instalacja Zabbix jest unikalna. Pamiętaj, aby przeprowadzić testy wydajności systemu Zabbix w środowisku przejściowym lub deweloperskim, tak aby w pełni zrozumieć wymagania przed wdrożeniem instalacji Zabbix w środowisku produkcyjnym.
| 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 Na potrzeby określania rozmiaru 1 monitorowana metryka jest w przybliżeniu reprezentowana przez wzór: 1 metryka = 1 pozycja + 1 wyzwalacz + 1 wykres. Jest to wyłącznie reguła szacunkowa, a nie wzór do obliczania liczby monitorowanych metryk.
2 Przykład z ogólnego przeznaczenia instancji Amazon EC2, korzystających z architektury ARM64 lub x86_64. Podczas oceny i testowania instalacji Zabbix, przed zainstalowaniem jej w środowisku produkcyjnym, należy wybrać odpowiedni typ instancji, na przykład zoptymalizowany pod kątem obliczeń, pamięci lub pamięci masowej.
Rzeczywista konfiguracja w dużym stopniu zależy od liczby aktywnych pozycji i częstotliwości odświeżania (szczegółowe informacje zawiera sekcja Rozmiar bazy danych na tej stronie). Zdecydowanie zaleca się uruchomienie bazy danych na osobnym serwerze w przypadku dużych instalacji.
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.
Zewnętrzne oprogramowanie towarzyszące innych firm
Jeśli oprogramowanie/biblioteka jest oznaczone jako wymagane, jest ono bezwzględnie niezbędne. Elementy opcjonalne są potrzebne do obsługi określonych funkcji.
| Oprogramowanie | Status wymagania | Obsługiwane wersje | Uwagi |
|---|---|---|---|
| MySQL/Percona | Jedno z | 8.4.0-9.7.X | Wymagane, jeśli MySQL (lub Percona) jest używany jako baza danych zaplecza Zabbix. Wymagany jest silnik InnoDB. Zalecamy używanie biblioteki C API (libmysqlclient) do kompilowania serwera/proxy. Zdecydowanie zalecamy używanie w środowiskach produkcyjnych wyłącznie wydań LTS. Wydania oznaczone jako „rolling release”, „early access” lub podobnie nie są zalecane. |
| MariaDB | 10.11.00-12.3.X | Wymagany jest silnik InnoDB. Zalecamy używanie biblioteki MariaDB Connector/C do kompilowania serwera/proxy. Zobacz także: Możliwe zakleszczenia w MariaDB oraz Dostęp do elementów interfejsu użytkownika w MariaDB 10.5.1-10.5.9. Zdecydowanie zalecamy używanie w środowiskach produkcyjnych wyłącznie wydań LTS. Wydania oznaczone jako „rolling release”, „early access” lub podobnie nie są zalecane. |
|
| PostgreSQL | 15.0-18.X | Wymagane, jeśli PostgreSQL jest używany jako baza danych zaplecza Zabbix. W zależności od rozmiaru instalacji może być konieczne zwiększenie właściwości konfiguracyjnej PostgreSQL work_mem (domyślna wartość to 4 MB), 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 dla PostgreSQL | 2.20.X-2.29.X | Wymagane, jeśli TimescaleDB jest używany jako rozszerzenie bazy danych PostgreSQL. Należy zainstalować TimescaleDB Community Edition, która obsługuje kompresję. Szczegółowe informacje dotyczące zgodności wersji PostgreSQL i TimescaleDB można znaleźć w dokumentacji TimescaleDB. |
|
| Elasticsearch | 7.X | Wymagane, jeśli Elasticsearch jest używany jako baza danych zaplecza Zabbix. Elasticsearch może być używany wyłącznie do przechowywania danych historycznych i jest obsługiwany tylko przez serwery Zabbix. Obsługa Elasticsearch ma obecnie charakter eksperymentalny. Zobacz także wymagane oprogramowanie dla serwera/proxy. |
|
| ClickHouse | 25.8.22.X-26.4.X | Wymagane, jeśli ClickHouse jest używany jako baza danych zaplecza Zabbix do przechowywania danych historycznych (obsługiwane tylko przez serwery Zabbix). Obsługiwane wersje dotyczą wyłącznie przechowywania danych historycznych; aby używać ClickHouse jako źródła danych telemetrycznych, wymagany jest ClickHouse w wersji 26.8.17.4 lub nowszej. Czas systemowy na serwerze Zabbix i serwerze ClickHouse musi być zsynchronizowany; w przeciwnym razie zapytania telemetryczne mogą pomijać dane lub zwracać te same dane dwukrotnie. |
|
| SQLite | Opcjonalne | 3.3.5-3.53.X | SQLite jest obsługiwany wyłącznie przez proxy Zabbix. Wymagane, jeśli SQLite jest używany jako baza danych proxy Zabbix. |
| smartmontools | 7.1 lub nowsza | 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, będące częścią q applets, są wymagane przez wtyczkę system.sw.packages w systemie Gentoo Linux. |
Chociaż Zabbix może współpracować z bazami danych dostępnymi w systemach operacyjnych, w celu uzyskania najlepszych rezultatów zalecamy używanie baz danych zainstalowanych z oficjalnych repozytoriów twórców baz danych.
Frontend
Minimalna obsługiwana szerokość ekranu dla frontend Zabbix wynosi 1200px.
Jeśli oprogramowanie/biblioteka jest oznaczone jako wymagane, jest ono bezwzględnie niezbędne. Opcjonalne elementy są potrzebne do obsługi określonych funkcji.
| Oprogramowanie | Status wymagania | 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 backendu Zabbix. | |
| pgsql | Wymagane, jeśli PostgreSQL jest używany jako baza danych backendu 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 jest dostarczane przez dystrybutora jako osobny pakiet); rozszerzenie PHP GD musi obsługiwać obrazy PNG (--with-png-dir), obrazy JPEG (--with-jpeg-dir) oraz FreeType 2 (--with-freetype-dir). W przypadku niektórych języków frontend może być wymagana wersja 2.3.0 lub nowsza, aby uniknąć możliwego nakładania się tekstu na wykresach. | |
| libxml | 2.6.15 lub nowsza | php-xml (jeśli jest dostarczane przez dystrybutora jako osobny pakiet) | |
| xmlwriter | php-xmlwriter (jeśli jest dostarczane przez dystrybutora jako osobny pakiet) | ||
| xmlreader | php-xmlreader (jeśli jest dostarczane przez dystrybutora jako osobny pakiet) | ||
| ctype | php-ctype (--enable-ctype) | ||
| session | php-session (jeśli jest dostarczane przez dystrybutora jako osobny pakiet) | ||
| 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 funkcji Duo Universal Prompt MFA, uwierzytelniania SMTP oraz testowania źródła danych telemetrycznych. | |
Biblioteki frontend innych firm dostarczane wraz z Zabbix:
| Biblioteka | Status wymagania | Dostarczana wersja | Uwagi |
|---|---|---|---|
| jQuery JavaScript Library | Tak | 3.6.0 | Biblioteka JavaScript upraszczająca proces tworzenia aplikacji zgodnych z różnymi przeglądarkami. |
| jQuery UI | 1.12.1 | Zestaw interakcji z interfejsem użytkownika, efektów, widżetów i motywów zbudowanych na bazie jQuery. | |
| SAML PHP Toolkit | 4.3.1 | Zestaw narzędzi PHP dodający obsługę uwierzytelniania SAML 2.0, umożliwiając logowanie do Zabbix. | |
| Duo Universal PHP library | 1.1.2 | Biblioteka PHP dodająca obsługę uwierzytelniania wieloskładnikowego Duo Universal Prompt dla Zabbix. | |
| Symfony Yaml Component | 5.1.0 | Dodaje obsługę eksportowania i importowania elementów konfiguracji Zabbix w formacie YAML. |
Zabbix może również działać 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ć nieprawidłowo renderowane podczas wyświetlania wykresu. Funkcja ta jest dostępna tylko wtedy, gdy PHP zostało skompilowane z dołączonym GD, co nie ma miejsca w Debianie i innych dystrybucjach.
Biblioteki innych firm używane do tworzenia i debugowania kodu frontend Zabbix:
| Biblioteka | Status wymagania | Minimalna wersja | Opis |
|---|---|---|---|
| Composer | Nie | 2.4.1 | Menedżer pakietów na poziomie aplikacji dla PHP, zapewniający standardowy format zarządzania zależnościami oprogramowania PHP i wymaganymi bibliotekami. |
| PHPUnit | 8.5.29 | Framework do testów jednostkowych PHP służący 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.
Serwer/proxy
Jeśli oprogramowanie/biblioteka jest oznaczone jako wymagane, jest ono bezwzględnie niezbędne. Opcjonalne elementy są potrzebne do obsługi określonych funkcji.
| Wymaganie | Status obowiązkowy | Opis |
|---|---|---|
| libpcre2 | Tak | Biblioteka PCRE2 jest wymagana do obsługi wyrażeń regularnych zgodnych z Perlem (PCRE). Obsługiwana jest wersja PCRE2 v10.x. |
| libevent | Wymagana do komunikacji między procesami. Wersja 2.0.10 lub nowsza. | |
| libevent-pthreads | Wymagana do komunikacji między procesami. | |
| libpthread | Wymagana do obsługi mutexów oraz blokad odczytu i zapisu (może być częścią libc). | |
| libresolv | Wymagana do rozpoznawania nazw DNS (może być częścią libc). | |
| libiconv | Wymagana do konwersji kodowania/formatu 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 | Jedna z | Wymagana, jeśli używany jest MySQL. |
| libmariadb | Wymagana, jeśli używana jest MariaDB. | |
| libpq5 | Wymagana, jeśli używany jest PostgreSQL; wersja libpq5 musi być taka sama jak wersja używanej bazy danych PostgreSQL lub nowsza. | |
| libsqlite3 | Wymagana, jeśli używany jest SQLite. Wymagana tylko przez proxy Zabbix. | |
| libOpenIPMI | Nie | Wymagana do obsługi IPMI. Wymagana tylko przez serwer Zabbix. |
| libssh2 lub libssh | Wymagana do kontroli SSH. Wersja 1.8.0 lub nowsza (libssh2); 0.9.0 lub nowsza (libssh). | |
| libcurl | Wymagana dla następujących funkcji: - monitorowanie sieci Web, monitorowanie VMware oraz pozycje typu HTTP agent (dla wszystkich: wersja 7.19.1 lub nowsza); - pozycje agenta Zabbix web.page.* (wersja 7.19.1 lub nowsza; zobacz także wymagania dotyczące agenta); - uwierzytelnianie SMTP (Basic: wersja 7.20.0 lub nowsza; OAuth: wersja 7.33 lub nowsza; zobacz także wymagania dotyczące frontend); - Elasticsearch (wersja 7.28.0 lub nowsza); - pozycje typu Telemetry query (wersja 7.28.0 lub nowsza). Zalecana jest wersja 7.28.0 lub nowsza dla wszystkich funkcji. Aby używać zaktualizowanych funkcji cURL dla pozycji web.page.*, uruchom ponownie serwer/proxy Zabbix.W przypadku uwierzytelniania SMTP używaj pakietu libcurl-full w czasie działania. |
|
| 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 wersji 5.8 biblioteki net-snmp; w systemach opartych na RHEL 8+ zaleca się używanie net-snmp w wersji 5.8.15 lub nowszej. |
|
| libunixodbc | Wymagana do monitorowania baz danych. | |
| libgnutls lub libopenssl | Wymagana podczas używania szyfrowania. Wersje minimalne: libgnutls - 3.1.18, libopenssl - 1.0.1 |
|
| libldap | Wymagana do obsługi LDAP. | |
| fping | Wymagana dla pozycji ping ICMP. | |
| c-ares | Wymagana do asynchronicznego rozpoznawania nazw DNS, jeśli Zabbix został skonfigurowany z opcją --with-ares. W przeciwnym razie używana będzie biblioteka libevent.Wersja minimalna: 1.16.0. Funkcja buforowania zapytań DNS i przełączania awaryjnego (bufor zapytań jest domyślnie włączony) wymaga c-ares w wersji 1.26.0 lub nowszej. W systemach, w których c-ares jest dostarczana jako pakiet systemu operacyjnego, upewnij się, że zainstalowana biblioteka wykonawcza udostępnia funkcje resolvera wymagane do buforowania DNS i przełączania awaryjnego. |
|
| g++ | Kompilator C++. Wymagany do kompilacji proxy Zabbix z opcją --with-apm, na potrzeby monitorowania wydajności aplikacji (APM). |
|
| gRPC | Wymagana do obsługi APM na proxy Zabbix, jeśli zostało ono skompilowane z opcją --with-apm.Wymagane biblioteki: grpc++, grpc, gpr. Narzędzie grpc_cpp_plugin jest również wymagane do kompilacji proxy Zabbix.Wymagana wersja jest dostępna w standardowych repozytoriach pakietów następujących systemów operacyjnych: - Ubuntu 23.04 lub nowszy; - Debian 12 (Bookworm) lub nowszy; - Alpine Linux 3.15 lub nowszy; - RHEL, Rocky Linux, CentOS Stream 9 lub nowszy (wyłącznie z repozytorium EPEL); - Fedora X lub nowsza. W starszych wersjach systemów operacyjnych gRPC musi zostać zbudowane ze źródeł. |
|
| protobuf | Wymagana do obsługi APM na proxy Zabbix, jeśli zostało ono skompilowane z opcją --with-apm.Kompilator protoc jest również wymagany do kompilacji proxy Zabbix. |
|
| Abseil | Wymagana do obsługi APM na proxy Zabbix, jeśli zostało ono skompilowane z opcją --with-apm.Wymagane biblioteki: absl_synchronization, absl_base. Zwykle instalowana razem z gRPC. |
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 Zabbix został pobrany z repozytorium źródłowego lub archiwum, niezbędne zależności są już zawarte w drzewie źródeł.
Jeśli Zabbix został pobrany z pakietu dystrybucji, 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 ma potrzeby pobierania dodatkowych plików.
Jeśli jednak chcesz dostarczyć własne wersje tych zależności (na przykład podczas przygotowywania pakietu dla określonej dystrybucji systemu Linux), 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 listę plików JAR, które są obecnie dołączone do Java gateway w oryginalnym kodzie:
| Biblioteka | Status obowiązkowości | Dołączona wersja | Komentarze |
|---|---|---|---|
| android-json | Tak | 4.3r1 | JSON (JavaScript Object Notation) to lekki format wymiany danych. Jest to zgodna z org.json implementacja systemu Android wyodrębniona z Android SDK. |
| logback-classic | 1.5.25 | ||
| logback-core | 1.5.25 | ||
| slf4j-api | 2.0.16 |
Java gateway można zbudować przy użyciu Oracle Java lub otwartoźródłowej implementacji OpenJDK (w wersji 1.6 lub nowszej). Pakiety dostarczane przez Zabbix są kompilowane przy użyciu OpenJDK. Poniższa tabela zawiera listę pakietów OpenJDK używanych do budowania pakietów Zabbix przez poszczególne dystrybucje:
| Dystrybucja | Pakiet OpenJDK |
|---|---|
| AlmaLinux 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| 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 10 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0.10-2) |
| 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 13 | default-jdk-headless (amd64, arm64: 2:1.21-76) |
| Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
| Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
| OpenSUSE Leap 16 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0-160000.2.1) |
| 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 10 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0.10-2.0.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 13 | default-jdk-headless (arm64, armhf: 2:1.21-76) |
| 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 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| 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 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| 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 16 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0-160000.1.1) |
| 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 26.04 | default-jdk-headless (amd64, arm64: 2:1.25-77) |
| 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) |
Adapter mostka
Adapter mostka Zabbix nie ma specjalnych wymagań.
Domyślne porty
Poniższa lista zawiera porty, których komponenty Zabbix mogą używać w domyślnej konfiguracji:
| Komponent Zabbix | Protokół i port | Połączenie inicjowane przez |
|---|---|---|
| Zabbix agent | TCP 10050 | serwer Zabbix lub proxy Zabbix (tylko kontrole pasywne) |
| Zabbix agent 2 | TCP 10050 | serwer Zabbix lub proxy (tylko kontrole pasywne) |
| serwer Zabbix | TCP 10051 | Aktywne agenty Zabbix, aktywne proxy Zabbix, Zabbix sender, frontend Zabbix |
| proxy Zabbix | TCP 10051 | Aktywne agenty Zabbix, Zabbix sender, serwer Zabbix (tylko pasywne proxy) |
| Zabbix Java gateway | TCP 10052 | serwer Zabbix lub proxy |
| Zabbix web service | TCP 10053 | serwer Zabbix |
| Zabbix MCP server | TCP 8443 | Klienci MCP (agenty AI) |
| frontend Zabbix | TCP 80 | Przeglądarki internetowe, Zabbix web service (raporty zaplanowane), klienci API |
| TCP 443 | ||
| Pułapki SNMP (snmptrapd) | UDP 162 | Urządzenia SNMP |
| Adapter mostu Zabbix | TCP 10054 | serwer Zabbix |
Otwieraj tylko porty wymagane przez faktycznie uruchomione komponenty i ograniczaj każdą regułę zapory do konkretnych hostów, które muszą się łączyć (na przykład zezwalaj na port 10050 tylko z serwera Zabbix lub proxy, a nie z dowolnego adresu).
Nie udostępniaj portów Zabbix bezpośrednio w internecie.
Przed otwarciem portów zabezpiecz instalację: włącz szyfrowanie między komponentami, ogranicz dozwolone hosty w plikach konfiguracyjnych komponentów i zapoznaj się z najlepszymi praktykami bezpieczeństwa.
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.