Zabbix wymaga zarówno pamięci fizycznej jak i dyskowej. Na dobry początek wystarczy 128 MB pamięci fizycznej i 256 MB wolnej przestrzeni na dysku. Jednakże, ilość wymaganej pamięci dyskowej zależy głównie od ilości hostów oraz monitorowanych parametrów. Jeżeli planowane jest przechowywanie długiej historii monitorowanych parametrów, należy zapewnić przynajmniej kilka gigabajtów przestrzeni dyskowej do przechowywania historii w bazie danych. Każdy proces demona Zabbix wymaga kilku połączeń do serwera bazy. Liczba pamięci zajętej na połączenia do bazy zależy od konfiguracji silnika bazy danych.
Im więcej jest dostępnej pamięci fizycznej, tym szybciej działa baza danych (jak również sam Zabbix)!
Zabbix a w szczególności baza danych Zabbix może powodować znaczne obciążenie CPU, zależnie od monitorowanych parametrów i wybranego silnika bazy danych.
Port komunikacji szeregowej z modem GSM wymagane są przy powiadomieniach przez SMS. Można też użyć konwertera USB-port-szeregowy.
Tabela przedstawia kilka przykładów konfiguracji sprzętowej:
Nazwa | Platforma | CPU/Pamięć | Baza danych | Monitorowane hosty |
---|---|---|---|---|
Mała | CentOS | Virtual Appliance | MySQL InnoDB | 100 |
Średnia | CentOS | 2 rdzenie CPU/2GB | MySQL InnoDB | 500 |
Duża | RedHat Enterprise Linux | 4 rdzenie CPU/8GB | RAID10 MySQL InnoDB lub PostgreSQL | >1000 |
Bardzo duża | RedHat Enterprise Linux | 8 rdzeni CPU/16GB | Szybki RAID10 MySQL InnoDB lub PostgreSQL | >10000 |
Aktualnie konfiguracja w dużej mierze zależy od ilości aktywnych pozycji i częstotliwości odświeżania. Dla dużych instalacji zalecamy uruchamianie bazy danych na innej maszynie.
Ze względu na wymagania ochrony i specyficzną naturę serwera, UNIX jest jedynym systemem, który dostarcza wymaganej wydajności, odporności na błędy. Zabbix działa na różnych wersjach wiodących platform.
Zabbix został przetestowany na następujących platformach:
Zabbix może działać również na innych systemach operacyjnych podobnych do Unix.
Zabbix został zbudowany w oparciu o nowoczesny serwer www Apache, przodujące silniki bazy danych, i język skryptowy PHP.
Oprogramowanie | Wersja | Komentarze |
---|---|---|
MySQL | 5.0.3 lub nowszy | Wymagane, gdy MySQL używany jest jako baza danych Zabbix. Wymagany jest silnik InnoDB. |
Oracle | 10g lub nowszy | Wymagane, gdy Oracle używany jest jako baza danych Zabbix. |
PostgreSQL | 8.1 lub nowszy | Wymagane, gdy PostgreSQL używany jest jako baza danych Zabbix. Sugerujemy użycie przynajmniej wersji PostgreSQL 8.3, która udostępnia znacznie lepszą wydajność VACUUM. |
SQLite | 3.3.5 lub nowszy | Wymagane, gdy SQLite używany jest jako baza danych Zabbix. |
IBM DB2 | 9.7 lub nowszy | Wymagane, gdy IBM DB2 używany jest jako baza danych Zabbix. |
Wsparcie dla IBM DB2 jest eksperymentalne!
SQLite3 z proxy Zabbix działa dobrze, używanie SQLite3 dla serwera Zabbix nie jest wskazane. Od Zabbix 2.2.5, jednoczesny dostęp do bazy danych z serwera i interfejsu użytkownika może spowodować uszkodzenie bazy!
Do uruchomienia interfejsu użytkownika Zabbix wymagane jest następujące oprogramowanie:
Oprogramowanie | Wersja | komentarze |
---|---|---|
Apache | 1.3.12 lub nowszy | |
PHP | 5.3.0 lub nowszy | PHP v7 nie jest obsługiwany. |
Rozszerzenia PHP: | ||
gd | 2.0 lub nowszy | Rozszerzenie PHP GD musi obsługiwać obrazy PNG (--with-png-dir), obrazy JPEG (--with-jpeg-dir) oraz FreeType 2 (--with-freetype-dir). |
bcmath | php-bcmath (--enable-bcmath) | |
ctype | php-ctype (--enable-ctype) | |
libXML | 2.6.15 lub nowszy | php-xml lub php5-dom, jeżeli są dostarczone jako oddzielne pakiety. |
xmlreader | php-xmlreader, jeżeli jest dostarczony jako oddzielny pakiet. | |
xmlwriter | php-xmlwriter, jeżeli jest dostarczony jako oddzielny pakiet. | |
session | php-session, jeżeli jest dostarczony jako oddzielny pakiet. | |
sockets | php-net-socket (--enable-sockets). Wymagane dla skryptów użytkownika. | |
mbstring | php-mbstring (--enable-mbstring) | |
gettext | php-gettext (--with-gettext). Wymagane do poprawnego działania tłumaczenia. | |
ibm_db2 | Wymagane, gdy IBM DB2 używany jest jako baza danych Zabbix. | |
mysqli | Wymagane, gdy SQLite używany jest jako baza danych Zabbix. | |
oci8 | Wymagane, gdy Oracle używany jest jako baza danych Zabbix. | |
pgsql | Wymagane, gdy PostgreSQL używany jest jako baza danych Zabbix. | |
sqlite3 | Wymagane, gdy SQLite używany jest jako baza danych Zabbix. |
Zabbix może pracować również z wcześniejszymi wersjami Apache, MySQL, Oracle i PostgreSQL.
Przy użyciu innych czcionek niż domyślna DejaVu, wymagana może być funkcja PHP imagerotate. Jeżeli jej nie ma, czcionki te mogą być w niewłaściwy sposób wyświetlane w nagłówkach w Monitorowanie → Przegląd jak również i w innych miejscach. Funkcja ta jest dostępna tylko wtedy, gdy PHP jest kompilowane w pakietem z GD, inaczej jak w Debianie, czy innych dystrybucjach.
Muszą być włączone ciasteczka i Java Script.
Wspierane są ostatnie wersje Google Chrome, Mozilla Firefox, Microsoft Internet Explorer i Opera. Inne przeglądarki (Apple Safari, Konqueror) również mogą pracować z Zabbix.
Wymaganie | Opis |
---|---|
OpenIPMI | Wymagane do obsługi IPMI. |
libssh2 | Wymagane do obsługi SSH. Wersja 1.0 lub wyższa. |
fping | Wymagane dla pozycji pingów ICMP. |
libcurl | Wymagane dla monitorowania sieci www i monitorowania VMware. |
libiksemel | Wymagane dla obsługi Jabber-a. |
libxml2 | Wymagane dla monitorowania VMware. |
net-snmp | Wymagane dla obsługi SNMP. |
Jeżeli Zabbix pobrany został z repozytorium źródeł lub z archiwum, wymagane zależności zawarte są w źródłach.
Jeżeli Zabbix pobrany został jako pakiet dystrybucyjny, wymagane zależności obsłuży system pakietowania.
W obu powyższych przypadkach, oprogramowanie jest gotowe do użycia bez konieczności dalszego pobierania.
Jednakże, na wypadek, gdyby potrzebne było udostępnienie wersji zależności (na przykład, jeżeli przygotowujemy pakiet dystrybucji Linux), poniżej jest lista wersji bibliotek, z którymi brama Java pracuje. Zabbix może poprawnie pracować również z innymi wersjami tych bibliotek.
Poniższa tabela zawiera listę plików JAR, aktualnie wymaganych w kodach źródłowych bramy Java:
Biblioteka | Licencja | Strona WWW | Komentarze |
---|---|---|---|
logback-core-0.9.27.jar | EPL 1.0, LGPL 2.1 | http://logback.qos.ch/ | Testowane z 0.9.27, 1.0.13, i 1.1.1. |
logback-classic-0.9.27.jar | EPL 1.0, LGPL 2.1 | http://logback.qos.ch/ | Testowane z 0.9.27, 1.0.13, i 1.1.1. |
slf4j-api-1.6.1.jar | MIT License | http://www.slf4j.org/ | Testowane z 1.6.1, 1.6.6, i 1.7.6. |
android-json-4.3_r3.1.jar | Apache License 2.0 | https://android.googlesource.com/platform/libcore/+/master/json | Testowane z 2.3.3_r1.1 i 4.3_r3.1. Zobacz też instrukcje tworzenia plików JAR w pliku src/zabbix_java/lib/README. |
Brama Java kompiluje się i uruchamia z Java 1.6 i nowszymi. Zalecamy, by dostawcy wersji pre-kompilowanych bramy używali do kompilacji wersji Java 1.6, tak by można było uruchomić na wszystkich wersjach do najnowszej włącznie.
Dane konfiguracyjne Zabbix wymagają stałej przestrzeni dyskowej i zbyt mocno nie rosną.
Rozmiar bazy danych Zabbix zależy głównie od tych zmiennych, które definiują ilość przechowywanych danych historycznych:
Jest to średnia liczba nowych wartości, jakie serwer Zabbix otrzymuje w każdej sekundzie. Na przykład, jeżeli mamy 3000 pozycji monitorowanych z częstotliwością raz na 60 sekund, Liczba wartości na sekundę zostanie obliczona jako 3000/60 = 50.
Oznacza to, że w każdej sekundzie 50 nowych wartości jest dodawanych do serwera Zabbix.
Zabbix przechowuje wartości dla ustalonego okresu czasu, normalnie kilka tygodni lub miesięcy. Każda nowa wartość wymaga określonej ilości miejsca na dysku dla danych i indeksów.
Zatem, jeżeli chcemy przechowywać 30 dni historii i otrzymujemy 50 wartości na sekundę, ogólna liczba wartości wyniesie ok (30*24*3600)* 50 = 129.600.000.
Zależnie od użytego silnika bazy, typu otrzymywanych wartości (zmiennoprzecinkowe, całkowite, ciągi znaków, pliki logów, itp.), przestrzeń dyskowa do przechowywania pojedynczej wartości może się wahać od 40 bajtów do setek bajtów. Średnio wychodzi około 90 bajtów na wartość dla pozycji numerycznych. W tym przypadku, oznacza to że 130 milionów wartości będzie wymagać 130M * 90 bajtów = 10.9GB przestrzeni dyskowej.
Niemożliwe jest dokładne określenie rozmiaru wartości pozycji tekstowych/logów, ale można założyć, że zajmą około 500 bajtów na wartość.
Zabbix przechowuje w tabeli trends jedno-godzinny zestaw danych zawierających maksimum/minimum/średnią/licznik dla wartości każdej pozycji. Dane są używane do obliczania trendów i wykresów w dłuższych okresach. Okresu jednogodzinnego nie można zmienić.
Baza danych Zabbix, zależnie od typu bazy, wymaga około 90 bajtów dla każdego takiego zestawu. Załóżmy, że chcemy przechowywać trendy dla okresu 5 lat. Wartości dla 3000 pozycji będą wymagać 3000*24*365* 90 = 2.2GB na rok, lub 11GB przez 5 lat.
Każde zdarzenie Zabbix wymaga około 170 bajtów przestrzeni dyskowej. Trudno jest określić ilość zdarzeń generowanych dziennie przez Zabbix. W najgorszym przypadku, możemy założyć, że Zabbix generuje jedno zdarzenie na sekundę.
Znaczy to, że jeżeli chcemy przechowywać zdarzenia przez 3 lata, będzie to wymagać 3*365*24*3600* 170 = 15GB
Tabela zawiera wzory, których można użyć do obliczenia wymaganej przez system Zabbix przestrzeni dyskowej:
Parametr | Wzór dla wymaganej przestrzeni dyskowej (w bajtach) |
---|---|
Konfiguracja Zabbix | Stały rozmiar. Normalnie około 10MB lub mniej. |
Historia | dni*(pozycje/częstotliwość odświeżania)*24*3600*bajty pozycje : liczba pozycji dni : liczba dni przechowywania historii częstotliwość odświeżania : średnia częstotliwość odświeżania pozycji bajty : liczba bajtów wymaganych do przechowania pojedynczej wartości, zależy od silnika bazy, normalnie ~90 bajtów. |
Trendy | dni*(pozycje/3600)*24*3600*bajty pozycje : liczba pozycji dni : liczba dni przechowywania historii bajty : liczba bajtów wymaganych do przechowania pojedynczego trendu, zależy od silnika bazy, normalnie ~90 bajtów. |
Zdarzenia | dni*zdarzenia*24*3600*bajty zdarzenia : liczba zdarzeń na sekundę. W najgorszym przypadku jedno (1) zdarzenie na sekundę. dni : liczba dni przechowywania historii bajty : liczba bajtów wymaganych do przechowania pojedynczego zdarzenia, zależy od silnika bazy, normalnie ~170 bajtów. |
Wartości średnie takie jak ~90 bajtów dla pozycji numerycznych, ~170 bajtów dla zdarzeń są pobierane ze statystyk rzeczywistych przy użyciu silnika bazy danych MySQL.
Zatem, ogólna wymagana przestrzeń dyskowa może być policzona jako:
Konfiguracja + Historia + Trendy + Zdarzenia
Przestrzeń dyskowa NIE będzie zajęta od razu po instalacji Zabbix. Rozmiar bazy danych będzie rósł do pewnego punktu, zależnego od ustawień porządkowania.
Przestrzeń dyskową potrzebną do pracy węzłów oblicza się w podobny sposób, jednak zależy ona również od liczby węzłów potomnych podłączonych do węzła.
Bardzo ważne jest, by na serwerze, na którym uruchomiony jest Zabbix, działał precyzyjny system pomiaru czasu. ntpd jest najpopularniejszym demonem synchronizującym czas hostów z czasem innej maszyny.