Artykuł pochodzi z wydania: Kwiecień 2024
Monitorowanie infrastruktury, powiadamianie o zdarzeniach oraz odpowiednia reakcja na incydenty to chleb powszedni w codziennej pracy administratora. Narzędzia wykorzystywane do skutecznej kontroli nie zawsze muszą kosztować krocie. Co więcej – mogą być darmowe.
Temat monitoringu infrastruktury IT to stała pozycja na naszej testowej liście. Nie raz udowadnialiśmy wysoką skuteczność darmowych narzędzi. Jednym z takich produktów jest Zabbix, który cieszy się sporą popularnością oraz zaufaniem użytkowników. Ostatni raz podejmowaliśmy temat wdrożenia tego rozwiązania w 2017 r., czyli w zamierzchłej przeszłości, biorąc pod uwagę dynamikę zmian rynku IT. Nasz pierwszy test Zabbixa miał miejsce jeszcze wcześniej, bo w 2012 r., a trzy lata później głosami redakcji oprogramowanie to wygrało w plebiscycie na produkt roku.
Pierwsze stabilne wydanie Zabbixa pojawiło się dokładnie 20 lat temu, a rok później powołano do życia firmę odpowiadającą za kontynuację projektu. Pomimo upływu lat i trendów rynkowych oprogramowanie wciąż jest darmowe, a rozwój i wsparcie odbywa się na podstawie licencji GPLv2. Zasada ta dotyczy pełnej funkcjonalności, co odróżnia Zabbixa od podobnych projektów, w których często bezpłatna jest jedynie funkcjonalność podstawowa, a wszystkie bardziej zaawansowane mechanizmy wymagają zakupu komercyjnej licencji. Oczywiście wymagający klienci nie zostali pozostawieni „na lodzie”. Producent oferuje zróżnicowane pakiety wsparcia technicznego, kóre stanowią już w pełni komercyjne uzupełnienie dla darmowego oprogramowania. W celu zaspokojenia potrzeb odbiorców korporacyjnych dostępne są także wersje gwarantujące przedłużony cykl życia (LTS – Long Term Support).
> ARCHITEKTURA
Budowę Zabbixa oparto na kilku komponentach mających zróżnicowane funkcje. Mowa tu o serwerze, bazie danych, webowym interfejsie użytkownika, aplikacjach agenta przeznaczonych na różne systemy klienckie, a także serwerze proxy ułatwiającym monitoring środowisk rozproszonych.
SERWER
Najważniejszym modułem jest serwer Zabbix, który odpowiada za całą logikę działania, pobieranie i agregowanie danych z monitorowanych końcówek, wykrywanie zdarzeń oraz generowanie alertów wraz z powiadamianiem użytkowników. Funkcjonalność i wysoka wydajność aplikacji serwera wynikają bezpośrednio z języka C, w którym zakodowano tę część Zabbixa. Wśród procesów działających w ramach usługi serwera wymienić można chociażby wszelkiego rodzaju kolektory, odpowiadające za realizację monitoringu usług webowych, interfejsów IPMI, sprawdzanie dostępności z wykorzystaniem protokołu ICMP czy chociażby pobieranie danych z poziomu usług VMware. Inne procesy działające w ramach Zabbixa to wszelkiego rodzaju usługi odpowiedzialne za poprawną pracę systemu monitoringu opartego na z góry zdefiniowanym harmonogramie.
Serwer Zabbixa można zainstalować jedynie na systemach Unix/Linux. Na liście testowanych przez producenta systemów znajdziemy niemal wszystkie edycje Linuksa, a także Solaris, AIX, HP-UX, Mac OS X, Free/Open/NetBSD, a także SCO OpenServer czy Tru64/OSF1.
W celu zapewnienia wysokiej dostępności systemu monitoring Zabbixa można uruchomić na wielu serwerach tworzących klaster active-passive. Wybrany serwer w klastrze działa wtedy jako węzeł aktywny, a wszystkie pozostałe maszyny oczekują na przejęcie funkcjonalności w przypadku awarii. Wdrożenie w modelu HA wymaga również odpowiedniej konfiguracji pozostałych komponentów Zabbixa.
BAZA DANYCH
Drugim najważniejszym komponentem Zabbixa jest baza danych, w której przechowywane są wszystkie zgromadzone informacje i która musi zostać utworzona w trakcie instalacji serwera. Producent pozwala wybrać spośród kilku rozwiązań – MySQL/MariaDB/Percona, PostgreSQL oraz Oracle. W przypadku Postgresa wspierane jest też rozszerzenie TimescaleDB, pozwalające na partycjonowanie danych w celu zwiększenia wydajności. Co ciekawe, Zabbix pozwala także na składowanie danych historycznych poza bazą relacyjną, w ramach rozwiązania Elasticsearch. Producent podkreśla jednak, że jest to rozwiązanie eksperymentalne. Standardowe wdrożenie Zabbixa zazwyczaj opiera się na pojedynczym serwerze bez konfiguracji HA i wtedy zarówno funkcjonalność serwera, bazy danych, jak i front-endu opiera się na modelu all-in-one. Jedynie w przypadku monitorowania największych środowisk sugerowane jest rozdzielenie funkcji na osobne maszyny.
Warto przy tym zaznaczyć, że serwer all-in-one wyposażony w 32 rdzenie procesora oraz 96 GB RAM powinien sobie poradzić z monitoringiem około miliona metryk, gdzie metryka odpowiada sumie jednego monitorowanego elementu wraz z przypisanym triggerem i reprezentacją graficzną. Oczywiście w przypadku skorzystania z klastra HA konieczne będzie rozłożenie komponentów na dedykowane maszyny bez względu na wielkość monitorowanego środowiska. Samą bazę danych warto wtedy również skonfigurować w sposób pozwalający na zwiększenie dostępności, w zależności od wybranej technologii bazodanowej. W ten sposób łatwo wyeliminować SPOF-y.
[…]
Marcin Jurczyk
Autor pracuje jako architekt IT w firmie Kyndryl. Zajmuje się infrastrukturą sieciowo-serwerową, wirtualizacją infrastruktury i pamięcią masową.