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.

Zbieranie danych

  • 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

Elastyczne definicje progów

  • 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

Łatwa konfiguracja

  • dodawanie monitorowanych urządzeń jako hostów
  • hosty są obejmowane monitorowaniem po dodaniu do bazy danych
  • stosowanie szablonów do monitorowanych urządzeń

Użycie szablonów

  • grupowanie kontroli w szablonach
  • szablony mogą dziedziczyć po innych szablonach

Wykrywanie sieci

  • automatyczne wykrywanie urządzeń sieciowych
  • autorejestracja agenta
  • wykrywanie systemów plików, interfejsów sieciowych i OID-ów SNMP

Szybki interfejs WWW

  • frontend oparty na WWW w PHP
  • dostępny z dowolnego miejsca
  • umożliwia intuicyjną nawigację przez klikanie
  • dziennik audytu

Zabbix API

  • Zabbix API zapewnia programowalny interfejs do Zabbix na potrzeby masowych operacji, integracji z oprogramowaniem firm trzecich i innych zastosowań.

System uprawnień

  • 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

Demony binarne

  • 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.

host

- dowolne fizyczne lub wirtualne urządzenie, aplikacja, usługa lub dowolny inny logicznie powiązany zbiór monitorowanych parametrów.

host group

- 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.

item

- konkretny fragment danych, który chcesz otrzymywać z hosta, metryka danych.

value preprocessing

- przekształcenie otrzymanej wartości metryki przed zapisaniem jej do bazy danych.

trigger

- 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ą.

template

- 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.

template group

- 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.

event

- pojedyncze wystąpienie czegoś, co zasługuje na uwagę, takiego jak zmiana stanu wyzwalacza lub wykrycie/automatyczna rejestracja agenta.

event tag

- wstępnie zdefiniowany znacznik zdarzenia. Może być używany w korelacji zdarzeń, granulacji uprawnień itp.

event correlation

- 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.

problem

- wyzwalacz znajdujący się w stanie „Problem”.

problem update

- opcje zarządzania problemem udostępniane przez Zabbix, takie jak dodanie komentarza, potwierdzenie, zmiana ważności lub ręczne zamknięcie.

action

- 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)

escalation

- niestandardowy scenariusz wykonywania operacji w ramach akcji; sekwencja wysyłania powiadomień/wykonywania zdalnych poleceń.

macro

- symbol zastępczy zmiennej, który jest rozwijany do określonej wartości w zależności od kontekstu.

media

- środek dostarczania powiadomień; kanał dostarczania.

notification

- wiadomość o jakimś zdarzeniu wysłana do użytkownika za pośrednictwem wybranego kanału mediów.

remote command

- wstępnie zdefiniowane polecenie, które jest automatycznie wykonywane na monitorowanym hoście po spełnieniu określonego warunku.

web scenario

- jedno lub kilka żądań HTTP służących do sprawdzenia dostępności witryny internetowej.

frontend

- interfejs WWW dostarczany z Zabbix.

dashboard

- konfigurowalna sekcja interfejsu WWW wyświetlająca podsumowania i wizualizacje ważnych informacji w jednostkach wizualnych zwanych widżetami.

widget

- jednostka wizualna wyświetlająca informacje określonego rodzaju i źródła (podsumowanie, mapa, wykres, zegar itp.), używana na pulpicie.

Zabbix API

- 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ń.

Zabbix server

- centralny proces oprogramowania Zabbix, który wykonuje monitorowanie, współdziała z proxy Zabbix i agentami, oblicza wyzwalacze, wysyła powiadomienia; centralne repozytorium danych.

Zabbix proxy

- proces, który może zbierać dane w imieniu serwera Zabbix, przejmując część obciążenia przetwarzania z serwera.

Zabbix agent

- proces wdrożony na monitorowanych celach w celu aktywnego monitorowania lokalnych zasobów i aplikacji.

Zabbix agent 2

- 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.

encryption

- 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).

agent autoregistration

- zautomatyzowany proces, w którym agent Zabbix sam rejestruje się jako host i rozpoczyna monitorowanie.

network discovery

- zautomatyzowane wykrywanie urządzeń sieciowych.

low-level discovery

- zautomatyzowane wykrywanie encji niskiego poziomu na określonym urządzeniu (np. systemów plików, interfejsów sieciowych itp.).

low-level discovery rule

- zestaw definicji do zautomatyzowanego wykrywania encji niskiego poziomu na urządzeniu.

item prototype

- 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.

trigger prototype

- 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.