Czym jest Zabbix

Zabbix został stworzony przez Aleksieja Władyszewa i jest obecnie aktywnie rozwijany oraz wspierany przez firmę Zabbix SIA.

Zabbix to rozproszone rozwiązanie do monitorowania typu open source klasy korporacyjnej.

Zabbix to oprogramowanie monitorujące liczne parametry sieci oraz stan i integralność serwerów, maszyn wirtualnych, aplikacji, usług, baz danych, witryn internetowych, chmury i innych elementów. Zabbix korzysta z elastycznego mechanizmu powiadomień, który umożliwia użytkownikom konfigurowanie alertów opartych na wiadomościach e-mail dla praktycznie każdego zdarzenia. Umożliwia to szybką reakcję na problemy z serwerami. Zabbix oferuje doskonałe funkcje raportowania i wizualizacji danych na podstawie przechowywanych danych. Dzięki temu Zabbix doskonale nadaje się do planowania pojemności.

Zabbix obsługuje zarówno odpytywanie, jak i pułapkowanie. Dostęp do wszystkich raportów i statystyk Zabbix, a także parametrów konfiguracji, można uzyskać za pośrednictwem frontend. Frontend oparty na sieci WWW zapewnia możliwość sprawdzenia stanu sieci i kondycji serwerów z dowolnego miejsca. Po prawidłowej konfiguracji Zabbix może odgrywać ważną rolę w monitorowaniu infrastruktury IT. Dotyczy to zarówno małych organizacji z kilkoma serwerami, jak i dużych firm z dużą liczbą serwerów.

Zabbix jest dostępny bezpłatnie. Zabbix został napisany i jest rozpowszechniany na licencji AGPL-3.0. Oznacza to, że jego kod źródłowy jest swobodnie rozpowszechniany i dostępny publicznie.

Dostępna jest pomoc techniczna świadczona przez firmę Zabbix i jej partnerów na całym świecie.

Dowiedz się więcej o funkcjach Zabbix.

Użytkownicy Zabbixa

Wiele organizacji różnej wielkości na całym świecie polega na Zabbixie jako podstawowej platformie monitorowania.

Architektura

Zabbix składa się z kilku głównych komponentów oprogramowania. Ich zadania opisano poniżej.

Serwer

Zabbix server jest centralnym komponentem, do którego agenty raportują informacje i statystyki dotyczące dostępności oraz integralności. Serwer jest centralnym repozytorium, w którym przechowywane są wszystkie dane konfiguracyjne, statystyczne i operacyjne.

Przechowywanie bazy danych

Wszystkie informacje konfiguracyjne, a także dane zbierane 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 przeglądarce. Interfejs jest częścią serwera Zabbix i zwykle (ale niekoniecznie) działa na tym samym fizycznym komputerze, na którym działa serwer.

Proxy

Zabbix proxy może zbierać dane o wydajności i dostępności w imieniu serwera Zabbix. Proxy jest opcjonalnym elementem wdrożenia Zabbix; jednak może 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 Zabbix 4.4 dostępne są dwa typy agentów: Zabbix agent (lekki, obsługiwany na wielu platformach, napisany w C) oraz Zabbix agent 2 (bardzo elastyczny, łatwo rozszerzalny za pomocą wtyczek, napisany w Go).

Przepływ danych

Ponadto ważne jest, aby zrobić krok wstecz i spojrzeć na ogólny przepływ danych w Zabbix. Aby utworzyć pozycję, która zbiera dane, należy najpierw utworzyć host. Na drugim końcu spektrum Zabbix, aby utworzyć wyzwalacz, najpierw trzeba mieć pozycję. Aby utworzyć akcję, trzeba mieć wyzwalacz. Jeśli więc chcesz otrzymać alert, że obciążenie CPU na Server X jest zbyt wysokie, musisz najpierw utworzyć wpis hosta dla Server X, następnie pozycję do monitorowania jego CPU, potem wyzwalacz, który aktywuje się, jeśli CPU jest zbyt wysokie, a na końcu akcję, która wyśle Ci wiadomość e-mail. Choć może się to wydawać dużą liczbą kroków, przy użyciu szablonów tak naprawdę tak nie jest. Jednak dzięki takiej konstrukcji możliwe jest stworzenie 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 trapping, jak i polling), IPMI, JMX, monitorowanie VMware
  • niestandardowe sprawdzenia
  • zbieranie wymaganych danych w niestandardowych interwałach
  • realizowane przez serwer/proxy oraz przez agentów

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ć do harmonogramu eskalacji, odbiorcy i typu medium
  • powiadomienia można uczynić bardziej znaczącymi i pomocnymi za pomocą zmiennych makro
  • automatyczne działania obejmują zdalne polecenia

Wykresy w czasie rzeczywistym

  • monitorowane pozycje są natychmiast przedstawiane na wykresach dzięki wbudowanej funkcjonalności tworzenia wykresów

Możliwości monitorowania WWW

  • Zabbix może śledzić ścieżkę symulowanych kliknięć myszą na stronie WWW i sprawdzać funkcjonalność 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 widoku przypominającym pulpit nawigacyjny
  • raporty
  • widok wysokiego poziomu (biznesowy) monitorowanych zasobów

Przechowywanie danych historycznych

  • dane przechowywane w bazie danych
  • konfigurowalna historia
  • wbudowana procedura housekeeping

Łatwa konfiguracja

  • dodawanie monitorowanych urządzeń jako hostów
  • hosty są przejmowane do monitorowania po zapisaniu w bazie danych
  • stosowanie szablonów do monitorowanych urządzeń

Użycie szablonów

  • grupowanie sprawdzeń w szablonach
  • szablony mogą dziedziczyć po innych szablonach

Odkrywanie sieci

  • automatyczne wykrywanie urządzeń sieciowych
  • automatyczna rejestracja agentów
  • wykrywanie systemów plików, interfejsów sieciowych i OID SNMP

Szybki frontend WWW

  • frontend WWW oparty na PHP
  • dostępny z dowolnego miejsca
  • można poruszać się po nim klikając
  • dziennik audytu

API Zabbix

  • API Zabbix udostępnia programowalny interfejs do Zabbix do masowych operacji, integracji z oprogramowaniem firm trzecich i innych zastosowań.

System uprawnień

  • bezpieczne uwierzytelnianie użytkowników
  • dostęp niektórych użytkowników może być ograniczony 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 wydajności i niewielkiego zużycia pamięci
  • łatwe do przenoszenia

Gotowy na złożone środowiska

  • zdalne monitorowanie ułatwione dzięki użyciu proxy Zabbix

Słownik

W tej sekcji można poznać znaczenie niektórych terminów często używanych w Zabbix.

host

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

grupa hostów

- logiczne pogrupowanie hostów. Grupy hostów są używane podczas przypisywania uprawnień dostępu do hostów różnym grupom użytkowników.

pozycja

- konkretna porcja danych, którą chcesz otrzymywać z hosta, czyli metryka danych.

wstępne przetwarzanie wartości

- przekształcenie otrzymanej wartości metryki przed zapisaniem jej w bazie danych.

wyzwalacz

- wyrażenie logiczne definiujące próg problemu i używane do „oceny” danych otrzymywanych w pozycjach.

Gdy otrzymane dane przekroczą próg, wyzwalacze przechodzą ze stanu OK do stanu Problem. Gdy otrzymane dane spadną poniżej progu, wyzwalacze pozostają w stanie OK lub do niego powracają.

szablon

- zestaw encji (pozycji, wyzwalaczy, wykresów, reguł wykrywania niskiego poziomu, scenariuszy internetowych) gotowych do zastosowania na jednym lub kilku hostach.

Zadaniem szablonów jest przyspieszenie wdrażania zadań monitorowania na hoście, a także ułatwienie stosowania zbiorczych zmian w zadaniach monitorowania. Szablony są bezpośrednio powiązane z poszczególnymi hostami.

grupa szablonów

- logiczne pogrupowanie szablonów. Grupy szablonów są używane podczas przypisywania uprawnień dostępu do szablonów różnym grupom użytkowników.

zdarzenie

- pojedyncze wystąpienie czegoś, co wymaga uwagi, na przykład zmiana stanu wyzwalacza albo przeprowadzenie wykrywania lub automatycznej rejestracji agenta.

znacznik zdarzenia

- wstępnie zdefiniowany znacznik zdarzenia. Może być używany w korelacji zdarzeń, szczegółowym przydzielaniu uprawnień itp.

korelacja zdarzeń

- metoda elastycznego i precyzyjnego korelowania problemów z ich rozwiązaniem.

Można na przykład zdefiniować, że problem zgłoszony przez jeden wyzwalacz może zostać rozwiązany przez inny wyzwalacz, który może nawet korzystać z innej metody zbierania danych.

problem

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

aktualizacja problemu

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

akcja

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

eskalacja

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

makro

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

medium

- sposób dostarczania powiadomień; kanał dostarczania.

powiadomienie

- wiadomość o określonym zdarzeniu wysłana do użytkownika za pośrednictwem wybranego kanału medium.

zdalne polecenie

- wstępnie zdefiniowane polecenie, które jest automatycznie wykonywane na monitorowanym hoście po wystąpieniu określonego warunku.

scenariusz internetowy

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

frontend

- interfejs internetowy dostarczany wraz z Zabbix.

pulpit nawigacyjny

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

widżet

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

Zabbix API

- Zabbix API umożliwia korzystanie z protokołu JSON RPC w celu tworzenia, aktualizowania i pobierania obiektów Zabbix (takich jak hosty, pozycje, wykresy i inne) oraz wykonywania dowolnych innych zadań niestandardowych.

serwer Zabbix

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

proxy Zabbix

- proces, który może zbierać dane w imieniu serwera Zabbix, odciążając serwer z części zadań przetwarzania.

agent Zabbix

- proces wdrażany na monitorowanych obiektach w celu aktywnego monitorowania lokalnych zasobów i aplikacji.

agent Zabbix 2

- agent Zabbix nowej generacji służący do aktywnego monitorowania lokalnych zasobów i aplikacji, umożliwiający korzystanie z niestandardowych wtyczek do monitorowania.

Ponieważ agent Zabbix 2 ma wiele funkcji wspólnych z agentem Zabbix, termin „agent Zabbix” w dokumentacji oznacza zarówno agenta Zabbix, jak i agenta Zabbix 2, jeśli ich działanie jest takie samo. Agent Zabbix 2 jest wymieniany z nazwy tylko wtedy, gdy jego funkcjonalność się różni.

szyfrowanie

- obsługa szyfrowanej komunikacji między komponentami Zabbix (serwerem, proxy, agentem, narzędziami zabbix_sender i zabbix_get) z użyciem protokołu Transport Layer Security (TLS).

automatyczna rejestracja agenta

- automatyczny proces, w ramach którego agent Zabbix jest rejestrowany jako host i rozpoczyna monitorowanie.

wykrywanie sieci

- automatyczne wykrywanie urządzeń sieciowych.

wykrywanie niskiego poziomu

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

reguła wykrywania niskiego poziomu

- zestaw definicji służących do automatycznego wykrywania encji niskiego poziomu na urządzeniu.

prototyp pozycji

- metryka z określonymi parametrami występującymi jako zmienne, gotowa do wykrywania niskiego poziomu. Po wykrywaniu niskiego poziomu zmienne są automatycznie zastępowane rzeczywistymi wykrytymi parametrami, a metryka automatycznie rozpoczyna zbieranie danych.

prototyp wyzwalacza

- wyzwalacz z określonymi parametrami występującymi jako zmienne, gotowy do wykrywania niskiego poziomu. Po wykrywaniu niskiego poziomu zmienne są automatycznie zastępowane rzeczywistymi wykrytymi parametrami, a wyzwalacz automatycznie rozpoczyna ocenianie danych.

Prototypy niektórych innych encji Zabbix są również używane w wykrywaniu niskiego poziomu: prototypy wykresów, prototypy hostów i prototypy grup hostów.