Blog JSystems - uwalniamy wiedzę!

Szukaj

Jeśli Zabbix pojawia się w rozmowach o monitoringu serwerów, ale nie do końca wiesz, czym właściwie jest i czym różni się od Grafany, to trafiłeś dobrze. W tym przewodniku wyjaśnimy od zera, co to jest Zabbix, do czego służy i jak działa, a wszystko pokażemy na przykładach. Nie na diagramach z internetu, tylko na prawdziwych zrzutach z działającej instalacji, którą specjalnie na potrzeby tego artykułu postawiliśmy na własnym serwerze: serwer Zabbix 7.0, baza danych, frontend i agent zbierający realne metryki. Zabbix bywa mylony z Grafaną, dlatego ten tekst jest naturalnym uzupełnieniem naszego przewodnika o Grafanie, do którego będziemy się jeszcze nieraz odwoływać.

Zabbix w akcji: pulpit Global view z podsumowaniem systemu, listą problemów i wykresami zbudowanymi z prawdziwych metryk serwera
Tak wygląda Zabbix w akcji. To jego własny pulpit (dashboard) Global view: status systemu, aktywne problemy i wykresy. Wszystkie liczby są prawdziwe, z naszego serwera. Kliknij zrzut, aby powiększyć.

Zabbix w pigułce: darmowe, otwartoźródłowe narzędzie do monitoringu serwerów, sieci i aplikacji, typu wszystko w jednym. Zabbix sam zbiera pomiary (przez agenta albo bez niego), sam zapisuje je w bazie danych, sam ocenia, czy coś jest nie tak, i sam wysyła powiadomienia. Do tego pokazuje wszystko na własnych pulpitach w przeglądarce. Jedno narzędzie zamiast czterech.

Z tego artykułu dowiesz się:

  • co to jest Zabbix, do czego służy i skąd bierze dane,
  • jak Zabbix zbiera metryki: z agentem i bez agenta (SNMP, IPMI, API),
  • czym różni się tryb pasywny agenta od aktywnego,
  • z jakich elementów składa się architektura Zabbixa,
  • jak czytać interfejs: pulpity, hosty i najświeższe dane,
  • czym są itemy, wyzwalacze i szablony, czyli fundament monitoringu,
  • jak działają problemy i powiadomienia oraz co to jest ważność (severity),
  • czym różni się Zabbix od Grafany, Prometheusa i Nagiosa,
  • jak Zabbix i Grafana pracują razem,
  • jak zainstalować Zabbix w kilka minut i ile to kosztuje.

Co to jest Zabbix?

Zabbix to otwartoźródłowy (open source, czyli o publicznie dostępnym kodzie) system monitoringu, który sam zbiera dane o stanie serwerów, sieci i aplikacji, sam je przechowuje, sam ocenia, czy coś się psuje, i sam powiadamia odpowiednie osoby. Mówiąc prościej: Zabbix nieustannie pilnuje Twojej infrastruktury i daje znać, zanim użytkownicy zauważą awarię. Zajmuje się przy tym całą drogą: od pobrania pomiaru, przez zapisanie go w bazie, po wysłanie alarmu na e-mail czy Slacka.

Najważniejsze słowo w tej definicji to wszystko w jednym (ang. all-in-one). W świecie monitoringu poszczególne zadania często rozdziela się między osobne narzędzia: jedno zbiera dane, drugie je przechowuje, trzecie rysuje wykresy, czwarte wysyła alerty. Zabbix robi to wszystko sam, w jednym spójnym produkcie. To odróżnia go od Grafany, która zajmuje się wyłącznie pokazywaniem danych, oraz od Prometheusa, który skupia się na zbieraniu i przechowywaniu metryk. Do tych porównań wrócimy w osobnej sekcji, bo to najczęstsze pytanie osób zaczynających z monitoringiem.

Krótka historia Zabbixa

Zabbix zaczął powstawać w 2001 roku. Stworzył go Alexei Vladishev, początkowo jako wewnętrzne narzędzie do monitoringu. Pierwsza stabilna wersja (1.0) ukazała się w 2004 roku, a rok później, w 2005, powstała firma Zabbix SIA z siedzibą w Rydze na Łotwie, która rozwija projekt do dziś. Przez ponad dwie dekady Zabbix urósł do jednego z najpopularniejszych systemów monitoringu na świecie, chętnie wybieranego tam, gdzie trzeba pilnować klasycznej infrastruktury: serwerów, urządzeń sieciowych, baz danych i aplikacji. Od wersji 7.0 Zabbix jest wydawany na licencji AGPLv3 (wcześniej była to licencja GPLv2), pozostaje przy tym w pełni darmowy, także do zastosowań komercyjnych.

Do czego służy Zabbix? Najczęstsze zastosowania

Zabbix sprawdza się wszędzie tam, gdzie trzeba pilnować dostępności i kondycji systemów oraz szybko reagować na problemy. Oto obszary, w których widuje się go najczęściej:

Obszar Przykłady użycia
Serwery i systemyProcesor, pamięć, dysk, procesy i usługi na maszynach z systemem Linux oraz Windows, przez agenta Zabbix.
Urządzenia sieciowePrzełączniki, routery, firewalle i drukarki przez protokół SNMP, czyli bez instalowania czegokolwiek na urządzeniu.
Bazy danych i aplikacjePostgreSQL, MySQL, Oracle, serwery WWW, kolejki. Gotowe szablony pilnują wydajności i dostępności.
Dostępność usług z zewnątrzSprawdzanie, czy strona odpowiada, czy certyfikat nie wygasa i ile trwa odpowiedź, przez proste testy sieciowe.
Środowiska mieszaneDuże sieci z wieloma lokalizacjami, gdzie Zabbix proxy zbiera dane lokalnie i odsyła je do centrali.

Wspólny mianownik tych zastosowań jest jeden: chcemy w jednym miejscu widzieć stan całej infrastruktury i dostać sygnał, zanim mały problem urośnie do awarii. Zabbix szczególnie dobrze czuje się w klasycznych centrach danych i sieciach firmowych, gdzie monitoruje się i serwery, i sprzęt sieciowy naraz.

Jak Zabbix zbiera dane? Agent i monitoring bez agenta

Największa siła Zabbixa to elastyczność w zbieraniu danych. Nie narzuca jednej metody, tylko daje ich kilka, więc poradzi sobie właściwie z każdym urządzeniem. Dwie najważniejsze drogi to monitoring z agentem i bez agenta.

Agent Zabbix to mały program, który instalujesz na monitorowanej maszynie. Zna system od środka, więc dokładnie zmierzy zużycie procesora, pamięci, miejsca na dysku, stan procesów czy usług. Agent pracuje w jednym z dwóch trybów, a różnicę między nimi warto zrozumieć na początku, bo pada o to pytanie na każdej rozmowie o monitoringu:

Animacja: tryb pasywny agenta Zabbix, w którym serwer sam pyta agenta o metryki, oraz tryb aktywny, w którym agent sam wysyła pomiary do serwera
Dwa tryby pracy agenta. W trybie pasywnym serwer sam pyta agenta o metryki. W trybie aktywnym to agent sam wysyła dane do serwera.
  • Tryb pasywny to zachowanie domyślne. Serwer Zabbix sam co ustalony czas łączy się z agentem i pyta: podaj mi zużycie procesora, podaj wolne miejsce na dysku. Agent odpowiada wartością. Prosto i przewidywalnie.
  • Tryb aktywny odwraca kierunek. To agent sam łączy się z serwerem i wypycha do niego pomiary. Ten tryb jest lżejszy dla serwera przy dużej liczbie hostów i wygodny, gdy agent siedzi za zaporą sieciową (firewallem), bo połączenie wychodzi od niego.

Monitoring bez agenta (ang. agentless) przydaje się tam, gdzie agenta nie da się zainstalować, na przykład na przełączniku sieciowym albo macierzy dyskowej. Zabbix sięga wtedy po standardowe protokoły. Najważniejszy z nich to SNMP (Simple Network Management Protocol), którym mówi niemal każde urządzenie sieciowe. Poza tym Zabbix potrafi zbierać dane przez IPMI (sprzętowy stan serwera), JMX (aplikacje w Javie), po SSH, przez zapytania HTTP oraz bezpośrednio z baz danych. Dzięki tej mieszance jeden Zabbix ogarnia i nowoczesne serwery, i stary sprzęt sieciowy.

Niezależnie od metody efekt jest ten sam: pomiary trafiają do Zabbixa i lądują na stronie z najświeższymi danymi (Latest data). Widać tu na bieżąco każdą metrykę wraz z ostatnią wartością i zmianą. To pierwsze miejsce, w które zaglądamy, gdy chcemy sprawdzić, czy dane w ogóle płyną:

Zabbix, strona Latest data: lista metryk hosta z najświeższą wartością, między innymi zużycie procesora, pamięci i miejsca na dysku
Strona najświeższych danych (Latest data). Każdy wiersz to jedna metryka wraz z ostatnią wartością i chwilą pomiaru.

Architektura Zabbixa krok po kroku

Zabbix na pierwszy rzut oka wygląda jak jeden program, a w rzeczywistości to zestaw współpracujących elementów. Nie musisz znać ich od podszewki, żeby zacząć, ale warto wiedzieć, kto za co odpowiada:

Infografika architektury Zabbixa: serwer Zabbix, baza danych, frontend webowy, agent oraz opcjonalny Zabbix proxy
Pięć elementów architektury Zabbixa. Sercem jest serwer, który współpracuje z bazą danych i frontendem, a dane dostarczają agenci i proxy.
  • Serwer Zabbix to mózg całości. Zbiera pomiary od agentów i urządzeń, sprawdza wyzwalacze (o nich za chwilę) i uruchamia akcje, na przykład wysłanie alertu.
  • Baza danych to pamięć Zabbixa. Trzyma zarówno konfigurację, jak i całą historię pomiarów. Zabbix korzysta z PostgreSQL albo MySQL, więc dane leżą w zwykłej, znanej bazie relacyjnej.
  • Frontend to interfejs w przeglądarce, napisany w PHP. To on pokazuje pulpity, wykresy i listę problemów oraz służy do konfiguracji. Z niego korzystasz na co dzień.
  • Agent Zabbix to program na monitorowanej maszynie, który oddaje jej metryki. Poznaliśmy go w poprzedniej sekcji.
  • Zabbix proxy to opcjonalny pośrednik. Zbiera dane w oddzielnej lokalizacji albo sieci i odsyła je zbiorczo do głównego serwera, odciążając go i upraszczając sieć. W małej instalacji nie jest potrzebny.

Kiedy te elementy złożymy w całość, powstaje prosty obieg: systemy generują pomiary, agent lub protokół je zbiera, serwer przetwarza je i ocenia wyzwalacze, baza zapisuje historię, a frontend pokazuje wynik i wysyła alerty. Prześledźmy tę drogę na animacji:

Animacja przepływu danych w Zabbixie: monitorowane systemy, zbieranie przez agenta, serwer Zabbix, baza danych oraz frontend z alertami
Cykl monitoringu w Zabbixie. Dane płyną od monitorowanych systemów, przez serwer i bazę, aż do pulpitu i powiadomień.

Pierwsze kroki w interfejsie Zabbixa

Cała praca z Zabbixem toczy się w przeglądarce. Menu po lewej stronie dzieli się na kilka obszarów. Najważniejsze to Monitoring (to, co dzieje się teraz: pulpity, problemy, najświeższe dane), Data collection (konfiguracja: hosty, szablony, itemy i wyzwalacze), Alerts (powiadomienia i akcje) oraz Reports (raporty i podsumowania). Zaczynamy zwykle od pulpitu Global view, który widziałeś na początku artykułu, a potem schodzimy do konkretów.

Podstawowym pojęciem jest host, czyli pojedyncza monitorowana rzecz: serwer, przełącznik, aplikacja. Strona z listą hostów pokazuje, ile każdy z nich ma itemów i wyzwalaczy, do jakich szablonów jest podpięty oraz czy jest dostępny. Zielony znacznik ZBX oznacza, że agent odpowiada i dane płyną:

Zabbix, lista hostów: monitorowany host z liczbą itemów, wyzwalaczy i wykresów, podpięty szablon oraz zielony status dostępności ZBX
Lista hostów. Widać liczbę itemów i wyzwalaczy, podpięty szablon oraz zielony status ZBX, który znaczy, że agent odpowiada.

Itemy, wyzwalacze i szablony, czyli fundament Zabbixa

To są trzy pojęcia, bez których nie zrozumiesz Zabbixa. Na szczęście są proste, a raz zrozumiane wracają wszędzie.

Item, czyli pojedynczy pomiar

Item (element danych) to jedna konkretna rzecz, którą Zabbix mierzy na hoście: zużycie procesora, wolne miejsce na dysku, liczba zalogowanych użytkowników. Każdy item ma klucz (ang. key), czyli krótką nazwę mówiącą, co i jak zmierzyć, na przykład system.cpu.util dla obciążenia procesora albo vfs.fs.size[/,pfree] dla procentu wolnego miejsca na dysku. Item ma też okres odpytania, czyli jak często pobierać wartość:

Zabbix, lista itemów hosta: nazwa metryki, klucz (np. system.cpu.util), okres odpytywania i typ informacji
Lista itemów hosta. Każdy ma nazwę, klucz mówiący co zmierzyć oraz okres odpytywania, czyli jak często pobierać wartość.

Wyzwalacz (trigger), czyli warunek alarmu

Wyzwalacz (ang. trigger) to warunek zapisany na danych z itemów. Odpowiada na pytanie: kiedy uznać, że coś jest nie tak. Przykładowo: gdy średnie obciążenie procesora z ostatnich pięciu minut przekroczy 90 procent, wyzwalacz zmienia stan i tworzy problem. Wyzwalacz ma przypisaną ważność (ang. severity), która mówi, jak poważna jest sprawa. Zabbix ma sześć poziomów: od Not classified i Information, przez Warning, Average i High, aż po najwyższy Disaster (katastrofa). To po ważności rozróżnia się, które problemy budzą dyżurnego w nocy, a które mogą poczekać do rana:

Zabbix, lista wyzwalaczy hosta z ich wyrażeniami warunku oraz przypisaną ważnością od Warning po High i Disaster
Lista wyzwalaczy. Każdy ma warunek oraz kolor ważności, od żółtego Warning po czerwony High i Disaster.

Szablon (template), czyli gotowy zestaw

Szablon (ang. template) to gotowy komplet itemów, wyzwalaczy, wykresów i pulpitów, który jednym kliknięciem podpinasz do hosta. Zamiast ręcznie tworzyć sto metryk dla serwera z Linuksem, podpinasz szablon Linux by Zabbix agent i host od razu ma pełny monitoring. Zabbix ma setki gotowych szablonów: dla systemów, baz danych, urządzeń sieciowych i aplikacji. To ogromna oszczędność czasu i najczęstszy sposób pracy z Zabbixem:

Zabbix, lista szablonów: gotowe zestawy itemów i wyzwalaczy dla systemów, baz danych i urządzeń sieciowych
Gotowe szablony w Zabbixie. Każdy niesie komplet itemów i wyzwalaczy, więc host dostaje pełny monitoring jednym kliknięciem.

Wykresy i pulpity

Sama tabela liczb niewiele mówi. Dopiero wykres pokazuje, jak wartość zmieniała się w czasie, i pozwala wychwycić chwilę, w której coś poszło nie tak. Zabbix rysuje wykres z historii dowolnego itemu. Poniżej obciążenie procesora naszego serwera. Wyraźnie widać moment, w którym celowo obciążyliśmy maszynę, żeby wywołać alarm, o czym za chwilę:

Zabbix, wykres obciążenia procesora w czasie z wyraźnym szczytem, gdy maszyna została obciążona
Wykres obciążenia procesora w czasie. Skok po prawej to moment, w którym celowo obciążyliśmy serwer, żeby pokazać alarm.

Wykresy układa się w pulpity (ang. dashboards). Pulpit to strona złożona z wielu kafelków (widżetów): wykresów, liczników, list problemów i map. Domyślny pulpit Global view, który otwiera się po zalogowaniu, daje przegląd całości na jednym ekranie. Własne pulpity budujesz metodą przeciągnij i upuść, dokładnie pod to, co chcesz mieć przed oczami.

Problemy i powiadomienia, czyli monitoring, który sam Cię zawiadamia

Same wykresy to nie wszystko, bo nikt nie wpatruje się w ekran przez całą dobę. Dlatego sercem Zabbixa są problemy i powiadomienia. Gdy wyzwalacz uzna, że warunek jest spełniony, Zabbix zakłada problem: wpis widoczny na liście problemów i na pulpicie, z nazwą, czasem rozpoczęcia i ważnością. Na naszym serwerze celowo obciążyliśmy procesor, więc wyzwalacz pilnujący obciążenia słusznie się zapalił i założył realny problem: wysokie obciążenie procesora ponad 90 procent. Zabbix nadał mu ważność Warning, czyli ostrzeżenie:

Zabbix, strona Problems z aktywnym problemem o ważności Warning dotyczącym wysokiego obciążenia procesora, z czasem trwania i nazwą hosta
Strona problemów z aktywnym alarmem o wysokim obciążeniu procesora. Widać ważność, czas trwania i host, którego dotyczy.

Samo wykrycie problemu to jednak dopiero połowa sukcesu. Trzeba jeszcze kogoś zawiadomić. Odpowiadają za to dwa pojęcia. Typy mediów (ang. media types) to kanały, którymi Zabbix wysyła powiadomienia: e-mail, SMS, Slack, Microsoft Teams, Telegram i wiele innych. Akcje (ang. actions) to reguły mówiące, co zrobić, gdy pojawi się problem: kogo powiadomić, jakim kanałem i po jakim czasie eskalować sprawę wyżej, jeśli nikt nie zareaguje. Zabbix ma sporo gotowych typów mediów, wystarczy je skonfigurować:

Zabbix, lista typów mediów (media types): kanały powiadomień takie jak e-mail, SMS, Slack, Telegram i Microsoft Teams
Typy mediów, czyli kanały powiadomień. Zabbix dostarcza gotowe integracje z e-mailem, SMS-em, Slackiem, Telegramem i innymi.

Jak wygląda alert w praktyce

Teorię mamy za sobą, więc zobaczmy gotowe powiadomienie na żywo. W naszym Zabbixie skonfigurowaliśmy typ mediów e-mail, przypisaliśmy adres do konta administratora i włączyliśmy akcję, która zgłasza problemy. Potem celowo wywołaliśmy problem na monitorowanym hoście. Zabbix od razu sam ułożył treść i wysłał takie powiadomienie:

Przykładowy alert e-mail wysłany przez Zabbix: temat z nazwą problemu, a w treści host, ważność i czas rozpoczęcia
Prawdziwe powiadomienie e-mail wysłane przez Zabbix. W temacie jest nazwa problemu, a w treści host, którego dotyczy, ważność i czas rozpoczęcia.

Zwróć uwagę, że alert od razu niesie wszystko, co potrzebne do reakcji: czego dotyczy problem, na którym hoście wystąpił, jaką ma ważność i kiedy się zaczął. Dokładnie taką samą wiadomość Zabbix wyśle SMS-em, na Slacka, Microsoft Teams albo Telegram, jeśli zamiast e-maila (lub obok niego) ustawisz inny typ mediów. To Ty decydujesz, którym kanałem i kogo powiadomić.

To jest właśnie sedno monitoringu. Pulpit pokazuje stan na życzenie, a Zabbix sam pilnuje wyzwalaczy i sam wysyła powiadomienie, gdy dzieje się coś złego, nawet gdy nikt nie patrzy na ekran.

Zabbix a Grafana, Prometheus i Nagios

To najczęstsze pytanie osób zaczynających z monitoringiem: czym Zabbix różni się od Grafany i innych znanych narzędzi. Uporządkujmy to, bo część z nich to konkurenci, a część współpracownicy Zabbixa.

Infografika porównania Zabbix i Grafana: Zabbix sam zbiera, przechowuje, alarmuje i pokazuje dane, a Grafana tylko wizualizuje dane ze źródeł
Zabbix kontra Grafana w skrócie. Zabbix jest kompletnym systemem monitoringu, Grafana warstwą wizualizacji. Najczęściej łączy się je w duet.
Narzędzie Jak się ma do Zabbixa
GrafanaNie zbiera danych, tylko je rysuje. To współpracownik, nie konkurent. Zabbix może być dla niej źródłem danych.
PrometheusTeż zbiera i przechowuje metryki, ale skupia się na kontenerach i chmurze. Zabbix jest bardziej wszechstronny w klasycznej infrastrukturze.
NagiosStarszy klasyk monitoringu. Zabbix bywa traktowany jako jego nowocześniejszy następca, z ładniejszym interfejsem i szablonami.
Datadog, New RelicPłatne platformy w chmurze. Wygodne, ale kosztowne i rozliczane od skali. Zabbix uruchomisz za darmo na własnym serwerze.

Zabbix a Grafana

To para, którą najłatwiej pomylić, a różnica jest prosta. Zabbix sam zbiera, przechowuje i alarmuje, a Grafana tylko rysuje. Grafana nie ma agentów i nie przechowuje danych. Podłącza się do źródeł, na przykład do Prometheusa albo właśnie do Zabbixa, i z ich danych buduje efektowne pulpity. Zabbix też ma własne wykresy i pulpity, wystarczające do codziennej pracy, ale wielu zespołów woli oglądać dane w ładniejszej i bardziej elastycznej Grafanie. Jeśli chcesz poznać drugą stronę tego duetu, mamy osobny, równie praktyczny tekst: Co to jest Grafana, przewodnik dla początkujących.

Zabbix a Prometheus

Oba narzędzia zbierają i przechowują metryki, więc tu naprawdę konkurują. Różnią się filozofią. Prometheus sam co kilkanaście sekund pobiera metryki (model pull) i króluje w świecie kontenerów oraz Kubernetesa. Zabbix stawia na agenta i wiele protokołów, więc lepiej czuje się w klasycznej infrastrukturze i sieciach z różnorodnym sprzętem. Jeśli chcesz zrozumieć podejście Prometheusa, opisaliśmy je krok po kroku w przewodniku Co to jest Prometheus.

Zabbix a Nagios

Nagios to jeden z najstarszych systemów monitoringu i przez lata był punktem odniesienia. Zabbix powstał później i wielu administratorów traktuje go jako nowocześniejszą alternatywę: z gotowymi szablonami, ładniejszym interfejsem webowym, wbudowaniem pulpitów i wygodniejszą konfiguracją bez grzebania w plikach tekstowych. Oba potrafią to samo w warstwie idei, ale Zabbix robi to przyjemniej dla początkującego.

Zabbix i Grafana razem, czyli najlepsze z obu światów

Zabbix i Grafana nie muszą się wykluczać. Bardzo popularne jest połączenie, w którym Zabbix zbiera i przechowuje dane, a Grafana je rysuje. Grafana ma gotową wtyczkę do Zabbixa (Zabbix data source), którą podłączasz Zabbix jako źródło danych. Od tej chwili budujesz w Grafanie pulpity na danych z Zabbixa, korzystając z jej bogatszych typów wykresów i wygodnego łączenia wielu źródeł na jednym ekranie. Tak może wyglądać serwer monitorowany przez Zabbix, pokazany na pulpicie Grafany:

Pulpit Grafany z metrykami serwera: procesor, pamięć, dysk i sieć. Grafana potrafi rysować takie dashboardy z danych zebranych przez Zabbix
Pulpit serwera w Grafanie. Takie dashboardy Grafana potrafi rysować także z danych zebranych przez Zabbix, gdy podłączysz go jako źródło danych.

Wniosek dla początkującego jest prosty: to nie jest wybór albo Zabbix, albo Grafana. Zabbix zajmuje się zbieraniem, przechowywaniem i alarmowaniem, a Grafana daje najładniejszą i najbardziej elastyczną warstwę wizualizacji. Więcej o samej Grafanie znajdziesz w naszym przewodniku o Grafanie.

Jak zainstalować Zabbix i ile to kosztuje

Zabbix jest darmowy i otwartoźródłowy (na licencji AGPLv3), także do zastosowań komercyjnych. Najszybciej uruchomisz go przez Dockera. Zabbix składa się z kilku elementów (baza danych, serwer, frontend i agent), więc najwygodniej postawić je razem plikiem docker-compose.yml. Poniżej skrócony komplet, dokładnie taki, jakiego użyliśmy w tym artykule:

services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix_pwd
      POSTGRES_DB: zabbix

  zabbix-server:
    image: zabbix/zabbix-server-pgsql:alpine-7.0-latest
    environment:
      DB_SERVER_HOST: postgres
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix_pwd
      POSTGRES_DB: zabbix
    ports: ["10051:10051"]

  zabbix-web:
    image: zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest
    environment:
      DB_SERVER_HOST: postgres
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix_pwd
      POSTGRES_DB: zabbix
      ZBX_SERVER_HOST: zabbix-server
    ports: ["8080:8080"]

  zabbix-agent:
    image: zabbix/zabbix-agent2:alpine-7.0-latest
    environment:
      ZBX_HOSTNAME: "Zabbix server"
      ZBX_SERVER_HOST: zabbix-server

Po poleceniu docker compose up -d Zabbix po chwili działa pod adresem http://localhost:8080. Logujesz się domyślnym kontem (użytkownik Admin, hasło zabbix, które od razu warto zmienić) i możesz zaczynać. W środowisku produkcyjnym Zabbix instaluje się częściej z gotowych pakietów systemowych (repozytoria dla Debiana, Ubuntu, RHEL), ale do nauki i testów Docker jest najprostszy.

A jak z kosztami? Sam Zabbix jest w pełni darmowy, bez ograniczeń liczby hostów czy metryk. Płatne jest jedynie wsparcie techniczne, które firma Zabbix SIA oferuje w formie subskrypcji dla organizacji, które chcą mieć gwarantowaną pomoc i czas reakcji. Na start, do nauki i do większości wdrożeń w firmach, w zupełności wystarcza darmowa wersja na własnym serwerze.

Dobre praktyki dla początkujących

  • Zacznij od szablonu. Do serwera podepnij Linux by Zabbix agent, do urządzenia sieciowego szablon SNMP. W kilka minut masz komplet metryk i wyzwalaczy, bez ręcznej pracy.
  • Zmień domyślne hasło. Konto Admin z hasłem zabbix jest publicznie znane. Zmiana hasła to pierwsza rzecz po instalacji.
  • Ustaw ważność z głową. Nie wszystko jest katastrofą. Rozsądnie przypisana ważność sprawia, że naprawdę pilne problemy nie giną w powodzi drobnych ostrzeżeń.
  • Skonfiguruj powiadomienia od początku. Monitoring bez alertów to tylko ładne wykresy. Podłącz e-mail albo Slacka i zrób akcję, która wysyła problem do właściwej osoby.
  • Używaj Zabbix proxy w wielu lokalizacjach. Gdy monitorujesz kilka sieci albo oddziałów, proxy zbiera dane lokalnie i odciąża główny serwer.

Najczęstsze problemy i jak je rozwiązać

  • Host w kolorze czerwonym, status ZBX nieaktywny. Serwer nie dogaduje się z agentem. Sprawdź, czy agent działa, czy w interfejsie hosta jest właściwy adres oraz czy port 10050 nie jest zablokowany przez zaporę.
  • Brak danych, mimo że host jest zielony. Najczęściej zła wartość klucza itemu albo brak uprawnień. Zajrzyj do itemu, sprawdź stan i komunikat błędu przy nim.
  • Wyzwalacz się nie zapala. Zwykle warunek jest zbyt ostry albo okno czasu za długie. Podejrzyj wartości itemu na wykresie i porównaj z progiem w wyzwalaczu.
  • Nie przychodzą powiadomienia. Sprawdź trzy rzeczy po kolei: typ mediów (na przykład dane serwera pocztowego), media przypisane do użytkownika oraz akcję, która ma wysyłać powiadomienia.

Słownik pojęć Zabbixa

Pojęcie Co oznacza
HostPojedyncza monitorowana rzecz: serwer, przełącznik, aplikacja.
ItemPojedynczy pomiar na hoście, opisany kluczem (np. zużycie procesora).
Wyzwalacz (trigger)Warunek na danych z itemów, który tworzy problem, gdy jest spełniony.
Szablon (template)Gotowy zestaw itemów i wyzwalaczy podpinany do hosta jednym kliknięciem.
ProblemAktywne zdarzenie założone przez wyzwalacz, widoczne na liście i pulpicie.
Ważność (severity)Poziom powagi problemu, od Information po Disaster.
AgentProgram na monitorowanej maszynie, który oddaje jej metryki.
ProxyPośrednik zbierający dane lokalnie i odsyłający je do głównego serwera.
SNMPProtokół monitoringu urządzeń sieciowych bez instalowania agenta.

Podsumowanie

Zabbix to darmowy, otwartoźródłowy system monitoringu typu wszystko w jednym. Sam zbiera dane o serwerach, sieci i aplikacjach (przez agenta albo bez niego), sam zapisuje je w bazie, sam ocenia wyzwalacze i sam wysyła powiadomienia, a wszystko pokazuje na własnych pulpitach w przeglądarce. Jego największe atuty to wszechstronność w zbieraniu danych, setki gotowych szablonów oraz kompletność: jedno narzędzie zamiast czterech. Tam, gdzie potrzeba jeszcze ładniejszej i bardziej elastycznej wizualizacji, Zabbix świetnie łączy się z Grafaną, a w świecie kontenerów jego rolę przejmuje często Prometheus.

Najlepszy sposób nauki to praktyka: postaw Zabbix przez Docker Compose, podepnij szablon do pierwszego hosta, zajrzyj na stronę najświeższych danych, obejrzyj wykres i spróbuj wywołać własny problem, dokładnie tak, jak pokazaliśmy w tym artykule. A jeśli chcesz przejść przez to z trenerem praktykiem i nauczyć się Zabbixa oraz całego monitoringu szybciej i w dobrze poukładanej kolejności, mamy dla Ciebie dwa szkolenia.

Chcesz opanować Zabbix od praktyka?

Poniżej dwa szkolenia JSystems. Pierwsze skupia się w całości na Zabbixie, drugie to szeroki monitoring i observability z Grafaną, Prometheusem, Lokim i Zabbixem. Oba mają termin gwarantowany, czyli odbywają się na pewno.

Szkolenie Zabbix - monitoring serwerów i aplikacji w JSystems

Szkolenie Zabbix - monitoring serwerów i aplikacji ->

Szkolenie Monitoring i Observability w praktyce: Grafana, Prometheus, Loki i Zabbix w JSystems

Szkolenie Monitoring i Observability: Grafana, Prometheus, Loki i Zabbix ->

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...