Czym jest Zabbix
Zabbix został stworzony przez Alexeia Vladisheva i obecnie jest aktywnie rozwijany oraz wspierany przez Zabbix SIA.
Zabbix to rozproszone rozwiązanie monitorujące klasy korporacyjnej typu open source.
Zabbix to oprogramowanie monitorujące liczne parametry sieci oraz stan i integralność serwerów, maszyn wirtualnych, aplikacji, usług, baz danych, stron internetowych, chmury i nie tylko. Zabbix wykorzystuje elastyczny mechanizm powiadomień, który umożliwia użytkownikom konfigurowanie alertów e-mail dla praktycznie każdego zdarzenia. Pozwala to na szybką reakcję na problemy serwera. Zabbix oferuje doskonałe funkcje raportowania i wizualizacji danych w oparciu o przechowywane dane. Dzięki temu Zabbix idealnie nadaje się do planowania pojemności.
Zabbix obsługuje zarówno odpytywanie, jak i trapowanie. Wszystkie raporty i statystyki Zabbix, a także parametry konfiguracyjne, są dostępne przez oparty na sieci frontend. Oparty na sieci frontend zapewnia, że stan sieci i kondycja serwerów mogą być oceniane z dowolnego miejsca. Przy prawidłowej konfiguracji Zabbix może odgrywać ważną rolę w monitorowaniu infrastruktury IT. Dotyczy to w równym stopniu małych organizacji z kilkoma serwerami, jak i dużych firm z wieloma serwerami.
Zabbix jest bezpłatny. Zabbix jest tworzony i rozpowszechniany na licencji AGPL-3.0. Oznacza to, że jego kod źródłowy jest swobodnie rozpowszechniany i dostępny publicznie.
Dostępne jest wsparcie komercyjne, świadczone przez firmę Zabbix i jej partnerów na całym świecie.
Dowiedz się więcej o funkcjach Zabbix.
Użytkownicy Zabbix
Wiele organizacji różnej wielkości na całym świecie polega na Zabbix jako podstawowej platformie monitoringu.
Architektura
Zabbix składa się z kilku głównych komponentów oprogramowania. Ich zadania opisano poniżej.
Serwer
Serwer Zabbix jest centralnym komponentem, do którego agenty raportują informacje o dostępności, integralności oraz statystyki. Serwer jest centralnym repozytorium, w którym przechowywane są wszystkie dane konfiguracyjne, statystyczne i operacyjne.
Przechowywanie w bazie danych
Wszystkie informacje konfiguracyjne, a także dane gromadzone przez Zabbix, są przechowywane w bazie danych.
Interfejs webowy
Aby zapewnić łatwy dostęp do Zabbix z dowolnego miejsca i z dowolnej platformy, udostępniany jest interfejs oparty na technologii web. Interfejs jest częścią serwera Zabbix i zwykle (choć niekoniecznie) działa na tej samej fizycznej maszynie co serwer.
Proxy
Zabbix proxy może zbierać dane o wydajności i dostępności w imieniu serwera Zabbix. Proxy jest opcjonalną częścią wdrożenia Zabbix; może jednak być bardzo korzystny do rozłożenia obciążenia pojedynczego serwera Zabbix.
Agent
Agenty Zabbix są wdrażane na monitorowanych celach, aby aktywnie monitorować lokalne zasoby i aplikacje oraz raportować zebrane dane do serwera Zabbix. Od wersji Zabbix 4.4 dostępne są dwa typy agentów: Zabbix agent (lekkie rozwiązanie, obsługiwane na wielu platformach, napisane w C) oraz Zabbix agent 2 (dodatkowo elastyczny, łatwo rozszerzalny za pomocą wtyczek, napisany w Go).
Przepływ danych
Ponadto ważne jest, aby zrobić krok wstecz i przyjrzeć się ogólnemu przepływowi danych w Zabbix. Aby utworzyć pozycja, która zbiera dane, należy najpierw utworzyć host. Przechodząc na drugi koniec spektrum Zabbix, aby utworzyć wyzwalacz, trzeba najpierw mieć pozycja. Aby utworzyć akcję, trzeba mieć wyzwalacz. Zatem jeśli chcesz otrzymać alert, że obciążenie CPU jest zbyt wysokie na Serwerze X, musisz najpierw utworzyć wpis hosta dla Serwera X, następnie pozycja do monitorowania jego CPU, potem wyzwalacz, który aktywuje się, jeśli obciążenie CPU jest zbyt wysokie, a na końcu akcję, która wyśle Ci wiadomość e-mail. Choć może się wydawać, że to wiele kroków, przy użyciu szablonów wcale tak nie jest. Jednak dzięki takiej konstrukcji możliwe jest utworzenie bardzo elastycznej konfiguracji.
Funkcje
Zabbix to wysoce zintegrowane rozwiązanie do monitorowania sieci, oferujące wiele funkcji w jednym pakiecie.
- sprawdzanie dostępności i wydajności
- obsługa SNMP (zarówno trapów, jak i odpytywania), IPMI, JMX, monitorowania VMware
- kontrole niestandardowe
- zbieranie wymaganych danych w niestandardowych interwałach
- realizowane przez serwer/proxy oraz przez agenty
- można definiować bardzo elastyczne progi problemów, zwane wyzwalaczami, odwołujące się do wartości z bazy danych backendu
Wysoce konfigurowalne alertowanie
- wysyłanie powiadomień można dostosować pod kątem harmonogramu eskalacji, odbiorcy i typu nośnika
- powiadomienia mogą być bardziej zrozumiałe i pomocne dzięki użyciu zmiennych makr
- automatyczne akcje obejmują polecenia zdalne
Tworzenie wykresów w czasie rzeczywistym
- monitorowane pozycje są natychmiast przedstawiane na wykresach przy użyciu wbudowanej funkcji tworzenia wykresów
Możliwości monitorowania stron WWW
- Zabbix może śledzić ścieżkę symulowanych kliknięć myszą na stronie WWW i sprawdzać jej działanie oraz czas odpowiedzi
Rozbudowane opcje wizualizacji
- możliwość tworzenia niestandardowych wykresów, które mogą łączyć wiele pozycji w jednym widoku
- mapy sieci
- pokazy slajdów w stylu przeglądu pulpitu
- raporty
- widok monitorowanych zasobów na wysokim poziomie (biznesowym)
Przechowywanie danych historycznych
- dane przechowywane w bazie danych
- konfigurowalna historia
- wbudowana procedura housekeeping
- dodawanie monitorowanych urządzeń jako hostów
- hosty są obejmowane monitorowaniem po dodaniu do bazy danych
- stosowanie szablonów do monitorowanych urządzeń
- grupowanie kontroli w szablonach
- szablony mogą dziedziczyć po innych szablonach
- automatyczne wykrywanie urządzeń sieciowych
- autorejestracja agenta
- wykrywanie systemów plików, interfejsów sieciowych i OID-ów SNMP
- frontend oparty na WWW w PHP
- dostępny z dowolnego miejsca
- umożliwia intuicyjną nawigację przez klikanie
- dziennik audytu
- Zabbix API zapewnia programowalny interfejs do Zabbix na potrzeby masowych operacji, integracji z oprogramowaniem firm trzecich i innych zastosowań.
- bezpieczne uwierzytelnianie użytkowników
- niektórzy użytkownicy mogą być ograniczeni do określonych widoków
W pełni funkcjonalny i łatwo rozszerzalny agent
- wdrażany na monitorowanych celach
- może być wdrażany zarówno w systemach Linux, jak i Windows
- napisane w C, dla wysokiej wydajności i małego zużycia pamięci
- łatwe do przenoszenia
Gotowość do złożonych środowisk
- zdalne monitorowanie jest łatwe dzięki użyciu Zabbix proxy
Słownik
W tej sekcji możesz poznać znaczenie niektórych terminów powszechnie używanych w Zabbix.
- dowolne fizyczne lub wirtualne urządzenie, aplikacja, usługa lub dowolny inny logicznie powiązany zbiór monitorowanych parametrów.
- logiczne grupowanie hostów. Grupy hostów są używane podczas przypisywania praw dostępu do hostów dla różnych grup użytkowników.
- konkretny fragment danych, który chcesz otrzymywać z hosta, metryka danych.
- przekształcenie otrzymanej wartości metryki przed zapisaniem jej do bazy danych.
- wyrażenie logiczne definiujące próg problemu i używane do „oceny” danych otrzymywanych w pozycjach.
Gdy otrzymane dane są powyżej progu, wyzwalacze przechodzą ze stanu „Ok” do stanu „Problem”. Gdy otrzymane dane są poniżej progu, wyzwalacze pozostają w stanie „Ok” lub do niego wracają.
- zestaw encji (pozycji, wyzwalaczy, wykresów, reguł wykrywania niskiego poziomu, scenariuszy WWW) gotowych do zastosowania do jednego lub kilku hostów.
Zadaniem szablonów jest przyspieszenie wdrażania zadań monitorowania na hoście, a także ułatwienie stosowania masowych zmian w zadaniach monitorowania. Szablony są łączone bezpośrednio z poszczególnymi hostami.
- logiczne grupowanie szablonów. Grupy szablonów są używane podczas przypisywania praw dostępu do szablonów dla różnych grup użytkowników.
- pojedyncze wystąpienie czegoś, co zasługuje na uwagę, takiego jak zmiana stanu wyzwalacza lub wykrycie/automatyczna rejestracja agenta.
- wstępnie zdefiniowany znacznik zdarzenia. Może być używany w korelacji zdarzeń, granulacji uprawnień itp.
- metoda elastycznego i precyzyjnego korelowania problemów z ich rozwiązaniem.
Na przykład możesz zdefiniować, że problem zgłoszony przez jeden wyzwalacz może zostać rozwiązany przez inny wyzwalacz, który może nawet używać innej metody zbierania danych.
- wyzwalacz znajdujący się w stanie „Problem”.
- opcje zarządzania problemem udostępniane przez Zabbix, takie jak dodanie komentarza, potwierdzenie, zmiana ważności lub ręczne zamknięcie.
- wstępnie zdefiniowany sposób reagowania na zdarzenie.
Akcja składa się z operacji (np. wysłania powiadomienia) oraz warunków (kiedy operacja jest wykonywana)
- niestandardowy scenariusz wykonywania operacji w ramach akcji; sekwencja wysyłania powiadomień/wykonywania zdalnych poleceń.
- symbol zastępczy zmiennej, który jest rozwijany do określonej wartości w zależności od kontekstu.
- środek dostarczania powiadomień; kanał dostarczania.
- wiadomość o jakimś zdarzeniu wysłana do użytkownika za pośrednictwem wybranego kanału mediów.
- wstępnie zdefiniowane polecenie, które jest automatycznie wykonywane na monitorowanym hoście po spełnieniu określonego warunku.
- jedno lub kilka żądań HTTP służących do sprawdzenia dostępności witryny internetowej.
- interfejs WWW dostarczany z Zabbix.
- konfigurowalna sekcja interfejsu WWW wyświetlająca podsumowania i wizualizacje ważnych informacji w jednostkach wizualnych zwanych widżetami.
- jednostka wizualna wyświetlająca informacje określonego rodzaju i źródła (podsumowanie, mapa, wykres, zegar itp.), używana na pulpicie.
- Zabbix API umożliwia używanie protokołu JSON RPC do tworzenia, aktualizowania i pobierania obiektów Zabbix (takich jak hosty, pozycje, wykresy i inne) lub wykonywania dowolnych innych niestandardowych zadań.
- centralny proces oprogramowania Zabbix, który wykonuje monitorowanie, współdziała z proxy Zabbix i agentami, oblicza wyzwalacze, wysyła powiadomienia; centralne repozytorium danych.
- proces, który może zbierać dane w imieniu serwera Zabbix, przejmując część obciążenia przetwarzania z serwera.
- proces wdrożony na monitorowanych celach w celu aktywnego monitorowania lokalnych zasobów i aplikacji.
- nowa generacja agenta Zabbix do aktywnego monitorowania lokalnych zasobów i aplikacji, umożliwiająca używanie niestandardowych wtyczek do monitorowania.
Ponieważ Zabbix agent 2 współdzieli znaczną część funkcjonalności z Zabbix agent, termin „Zabbix agent” w dokumentacji oznacza oba - Zabbix agent i Zabbix agent 2, jeśli zachowanie funkcjonalne jest takie samo. Zabbix agent 2 jest wymieniany osobno tylko wtedy, gdy jego funkcjonalność się różni.
- obsługa szyfrowanej komunikacji między komponentami Zabbix (serwer, proxy, agent, narzędzia zabbix_sender i zabbix_get) z użyciem protokołu Transport Layer Security (TLS).
- zautomatyzowany proces, w którym agent Zabbix sam rejestruje się jako host i rozpoczyna monitorowanie.
- zautomatyzowane wykrywanie urządzeń sieciowych.
- zautomatyzowane wykrywanie encji niskiego poziomu na określonym urządzeniu (np. systemów plików, interfejsów sieciowych itp.).
- zestaw definicji do zautomatyzowanego wykrywania encji niskiego poziomu na urządzeniu.
- metryka z określonymi parametrami jako zmiennymi, gotowa do wykrywania niskiego poziomu. Po wykryciu niskiego poziomu zmienne są automatycznie zastępowane rzeczywistymi wykrytymi parametrami, a metryka automatycznie rozpoczyna zbieranie danych.
- wyzwalacz z określonymi parametrami jako zmiennymi, gotowy do wykrywania niskiego poziomu. Po wykryciu niskiego poziomu zmienne są automatycznie zastępowane rzeczywistymi wykrytymi parametrami, a wyzwalacz automatycznie rozpoczyna ocenę danych.
Prototypy niektórych innych encji Zabbix są również używane w wykrywaniu niskiego poziomu
- prototypy wykresów, prototypy hostów, prototypy grup hostów.