Menu

Polska

GRANDMETRIC Sp. z o.o.
ul. Metalowa 5, 60-118 Poznań, Poland
NIP 7792433527
+48 61 271 04 43
info@grandmetric.com

Szwecja

Drottninggatan 86
111 36 Sztokholm
+46 762 041 514
info@grandmetric.com

UK

Grandmetric LTD
Office 584b
182-184 High Street North
London
E6 2JA
+44 20 3321 5276
info@grandmetric.com

US Region

Grandmetric LLC
Lewes DE 19958
16192 Coastal Hwy USA
EIN: 98-1615498
+1 302 691 94 10
info@grandmetric.com

  • en
  • pl
  • se
  • Zabbix – Monitorowanie sieci

    Zabbix – Monitorowanie sieci

    Date: 20.09.2024



    Monitoring sieci i serwerów to proces kontrolowania infrastruktury oraz jej parametrów w celu uzyskania pełnego zrozumienia, jak zarządzać infrastrukturą IT. Monitorowanie urządzeń sieciowych pozwala na identyfikację problemów na wczesnym etapie, zapobieganie awariom oraz utrzymanie wysokiej dostępności i wydajności systemów. Dzięki temu administratorzy mają lepszy wgląd w funkcjonowanie całej infrastruktury i mogą na bieżąco reagować na ewentualne problemy.

    Monitoring sieci pełni kluczową rolę w zarządzaniu infrastrukturą IT. Odpowiednio skonfigurowany, pomaga nie tylko w szybkim wykrywaniu i usuwaniu problemów, ale także w zapobieganiu im. Działania prewencyjne są możliwe dzięki stałemu dostępowi do danych na temat wydajności sieci, serwerów, aplikacji czy urządzeń sieciowych.

    Główne aspekty monitoringu sieci:

    1. Śledzenie ruchu sieciowego: Analiza danych przesyłanych przez sieć, w tym pakietów, protokołów, adresów IP.
    2. Wykrywanie anomalii: Identyfikacja nietypowych zachowań, które mogą wskazywać na problemy z wydajnością, ataki hakerskie lub inne nieprawidłowości.
    3. Zarządzanie zasobami: Monitorowanie wykorzystania zasobów sieciowych, takich jak przepustowość, przepływ danych, zużycie procesora, pamięci, dysków.
    4. Bezpieczeństwo: Ochrona przed zagrożeniami, w tym wykrywanie i reagowanie na próby włamań, złośliwe oprogramowanie czy ataki typu DoS.
    5. Diagnostyka i rozwiązywanie problemów: Identyfikowanie i naprawianie problemów z siecią, co pomaga minimalizować przestoje i utrzymać ciągłość działania.
    6. Raportowanie i analiza: Tworzenie raportów na temat stanu sieci, które mogą być wykorzystywane do analizy trendów, planowania przyszłych potrzeb i podejmowania decyzji.

    Do monitorowania sieci wykorzystywane są różne narzędzia i protokoły. Najpopularniejszym z nich jest SNMP (Simple Network Management Protocol), który pozwala administratorom na zbieranie i analizowanie danych z urządzeń sieciowych, takich jak routery, switche, serwery, a także urządzenia końcowe. Za pomocą SNMP można gromadzić informacje o stanie urządzeń, ich obciążeniu, a także wykrywać problemy.

    Dane zbierane za pomocą SNMP mogą być uzupełniane przez dane z innych źródeł, takich jak logi systemowe (syslog) czy Netflow, które pozwalają na analizę ruchu sieciowego. Samo zbieranie danych nie jest jednak wystarczające – kluczowe jest ich właściwe przetwarzanie, analizowanie i wizualizacja.

    Aby to osiągnąć, administratorzy korzystają z różnorodnych narzędzi wspomagających monitorowanie infrastruktury. Na rynku dostępnych jest wiele komercyjnych i open-source’owych rozwiązań, które wspierają pracę administratorów IT. Przykładami takich narzędzi są LibreNMS, Nagios, Solarwinds oraz Zabbix.


    Zabbix

    Zabbix to rozbudowane oprogramowanie open-source służące do monitorowania infrastruktury IT, które umożliwia monitorowanie stanu i wydajności różnych komponentów, takich jak sieci, serwery, maszyny wirtualne oraz usługi w chmurze. Zabbix obsługuje szeroki wachlarz urządzeń, od sprzętu sieciowego po serwery i maszyny wirtualne, a także może monitorować urządzenia takie jak UPS-y, czujniki IoT (np. termometry, liczniki wejść, urządzenia mierzące wilgotność) oraz inne urządzenia podłączone do sieci.

    Zabbix umożliwia nie tylko zbieranie i analizowanie danych, ale także ich wizualizację, raportowanie oraz alarmowanie w przypadku problemów. Ogromną zaletą tego narzędzia jest jego otwartość – Zabbix jest projektem open-source, co oznacza, że każdy użytkownik ma dostęp do kodu źródłowego oraz szerokiej społeczności, która aktywnie wspiera rozwój oprogramowania. Duża baza użytkowników oraz dobrze przygotowana dokumentacja sprawiają, że Zabbix jest prosty w użyciu i elastyczny w konfiguracji.

    Architektura Zabbix

    Zabbix składa się z trzech głównych modułów:

    1. Zabbix-server – serce systemu, odpowiedzialne za analizowanie danych i wysyłanie alertów.
    2. Baza danych – miejsce, gdzie przechowywane są dane oraz konfiguracja serwera dokonana przez użytkownika.
    3. Front-end – interfejs użytkownika, który umożliwia wizualizację danych, konfigurację serwera oraz interakcję z użytkownikiem za pomocą GUI (wykresy, dashboardy).
    Rysunek 1. Architektura Zabbix

    Rysunek 1. Architektura Zabbix

    Zabbix Proxy

    Dodatkowym elementem architektury może być Zabbix-Proxy, który zbiera dane o wydajności sieci i dostępności w imieniu serwera Zabbix. Dzięki takiej architekturze Zabbix staje się wysoko skalowalną aplikacją. W przypadku dużych instalacji, gdy serwer Zabbix lub proxy wymaga większych zasobów, można dodać kolejny Zabbix Proxy, który zbiera dane z innej części sieci.

    Instalacja Agenta Zabbix

    Agent Zabbix może być zainstalowany na różnych systemach operacyjnych, w tym na Linux, Windows i macOS.

    Rysunek 2. Dostępne instalatory Zabbix w zależności od platformy

    Rysunek 2. Dostępne instalatory Zabbix w zależności od platformy

    Oprogramowanie może działać zarówno na fizycznych maszynach, jak i w środowiskach wirtualnych, a także może być wdrożone w chmurze lub w kontenerach (np. Docker). W zależności od wybranego środowiska i liczby monitorowanych urządzeń, będą różnić się wymagania dotyczące zasobów.

    Do instalacji Zabbix potrzebne będą odpowiednie zasoby fizyczne, takie jak procesor, pamięć RAM oraz miejsce na dysku. Zasoby te zależą od liczby monitorowanych urządzeń oraz ilości gromadzonych danych. Na przykład, w przypadku większych instalacji, zaleca się zastosowanie wydajniejszych serwerów oraz dużej przestrzeni dyskowej na potrzeby przechowywania historii monitorowania.

    Rysunek 3. Zalecane parametry fizyczne przez producenta

    Rysunek 3. Zalecane parametry fizyczne przez producenta

    Dysk, na którym przechowywane są dane, musi mieć odpowiednią wielkość, zależnie od tego, jak długo chcemy przechowywać dane historyczne oraz jak duże będą te dane. Potrzebną przestrzeń dyskową można obliczyć za pomocą wzoru, który uwzględnia plik konfiguracyjny, historię, trendy oraz zdarzenia. Wielkość poszczególnych parametrów możemy poznać za pomocą:

    Rysunek 4. Wzór na potrzebną przestrzeń dyskową

    Rysunek 4. Wzór na potrzebną przestrzeń dyskową

    Trendy, historia i zdarzenia – czym są?

    Trendy: Wbudowany mechanizm Zabbix, który pozwala na redukcję danych historycznych. Przechowuje on wartości minimalne, maksymalne, średnie oraz całkowitą liczbę wartości na każdą godzinę dla danych numerycznych. Trendy pozwalają na zmniejszenie ilości przechowywanych danych bez utraty informacji o długoterminowych zmianach w wydajności.

    Historia: Przechowuje każdą zebraną wartość, co oznacza, że jest bardziej zasobożerna niż trendy. Historia jest przydatna, gdy potrzebne są szczegółowe informacje o każdym zdarzeniu.

    Zdarzenia: Generowane przez wyzwalacze (triggery) w systemie Zabbix. Każde zdarzenie jest zapisywane w bazie danych, co pozwala na śledzenie, kiedy i dlaczego dany problem się pojawił. Ilość miejsca przeznaczonego na zdarzenia zależy od liczby alarmów wygenerowanych w systemie.

    Wybór bazy danych, na której będą przechowywane dane zależy od upodobań i doświadczenia administratora.

    Skoro mamy omówione wymagania fizyczne pozostaje jeszcze wspomnieć o komunikacji sieciowej. Dla wartości domyślnych przedstawiają się one następująco:

    Rysunek 5. Komunikacja sieciowa dla aplikacji Zabbix

    Rysunek 5. Komunikacja sieciowa dla aplikacji Zabbix

    Konfiguracja Zabbix

    1. Host / Host group

    W Zabbix „host” odnosi się do dowolnego fizycznego lub wirtualnego urządzenia, aplikacji, usługi lub innego logicznie powiązanego zbioru monitorowanych parametrów. Aby dodać nowego hosta, należy przejść do zakładki Konfiguracja => Hosts => Create host.

    Rysunek 6. Konfiguracja nowego hosta

    Rysunek 6. Konfiguracja nowego hosta

    Wartość „Host name” musi być unikalna dla każdego obiektu utworzonego w Zabbix. Przy tworzeniu hosta mamy możliwość przypisania go do odpowiedniej grupy hostów, co ułatwi przyszłą konfigurację. Dlatego przed przystąpieniem do konfiguracji powinniśmy przeanalizować nasze potrzeby oraz przemyśleć, jakie grupy zostaną utworzone. Jeżeli działamy w architekturze rozproszonej, możemy także wybrać, który serwer proxy będzie odpowiedzialny za zbieranie danych z hosta.

    W zależności od tego, czy będziemy monitorować nasz obiekt za pomocą agenta czy SNMP, wybieramy odpowiednią opcję i podajemy adres IP naszego hosta. Po zakończeniu konfiguracji klikamy Add.

    Grupy hostów pozwalają na grupowanie hostów tego samego typu. W przyszłości do danej grupy można przypisać szablon, zamiast robić to osobno dla każdego hosta. Jeżeli zdecydujemy się na podejście bez host grup, możemy także przypisać do hosta odpowiedni template tag.

    Jeżeli mamy plik z zebranymi wcześniej hostami, istnieje możliwość ich importu do Zabbix za pomocą pliku.

    2. Item

    Item to indywidualny wskaźnik, który służy do zbierania danych. Po skonfigurowaniu hosta należy dodać item, aby uzyskać rzeczywiste dane. Jednym ze sposobów szybkiego dodania wielu itemów jest przypisanie do hosta jednego z predefiniowanych szablonów. Jednak w celu optymalizacji wydajności systemu może być konieczne precyzyjne dostosowanie szablonów, aby mieć tyle elementów i tak częste monitorowanie, jak to konieczne.

    Itemy mogą być tworzone z poziomu konfiguracji hosta lub z poziomu szablonu. Aby stworzyć nowy item, należy przejść do Configration => Hosts => host_name => Item => Create Item.

    Rysunek 7. Konfiguracja nowego itemu

    Rysunek 7. Konfiguracja nowego itemu

    Każdy item musi mieć unikalną nazwę. Jeden item może być użyty dla wielu hostów. W zależności od potrzeb, można dostosować typ itemu, takie jak dane zbierane przez agenta, SNMP czy inne źródła danych. Możemy indywidualnie dostosować długość przechowywania danych lub pozostawić domyślne, globalne ustawienia. Aby zakończyć konfigurację, klikamy Add.

    Rysunek 8. Przykładowa lista typów itemu

    Rysunek 8. Przykładowa lista typów itemu

    3. Trigger

    Trigger (wyzwalacz) to wyrażenie logiczne, które „ocenia” dane zebrane przez itemy i reprezentuje bieżący stan systemu. Triggery pozwalają na zdefiniowanie progu, jaki stan danych jest „akceptowalny”. Jeżeli dane przekroczą akceptowalny próg, trigger zostanie „wyzwolony” i zmieni swój status na PROBLEM.

    Aby utworzyć nowy trigger, postępujemy podobnie jak w przypadku itemu: Configration => Hosts => host_name => Trigger => Create Trigger.

    Rysunek 9. Konfiguracja triggeru

    Rysunek 9. Konfiguracja triggeru

    Musimy utworzyć unikalną nazwę dla wyzwalacza i wybrać odpowiednią wagę (severity), co określa znaczenie problemu w systemie. Najtrudniejszą częścią jest stworzenie poprawnego wyrażenia, które będzie oceniać stan zebranych danych. Możemy skorzystać z kreatora wyrażeń, który uprości zadanie, lub stworzyć je ręcznie. Na przykład, możemy skonfigurować trigger, który reaguje na brak odpowiedzi z trzech kolejnych pingów do urządzenia. Możemy także ustawić recovery expression, które zdefiniuje warunki zakończenia wyzwalacza. Aby zakończyć, klikamy Add lub Update, jeśli edytujemy istniejący już trigger.

    4. Events

    W Zabbixie event (zdarzenie) to zapis dotyczący zmian stanu monitorowanego elementu lub wyzwalacza (triggera). Zdarzenia są kluczowym elementem systemu monitorowania, ponieważ rejestrują, kiedy nastąpiły określone zmiany, co pozwala na dokładne śledzenie problemów i reakcji systemu na te problemy.

    Przykładem zdarzenia może być trigger event – za każdym razem, gdy wyzwalacz zmienia swój status (OK → PROBLEM → OK), generowany jest event. Wszystkie wygenerowane zdarzenia można przeglądać w zakładce Monitoring => Problems.

    Rysunek 10. Przykład wygenerowanego eventu

    Rysunek 10. Przykład wygenerowanego eventu

    5. Graphs

    Przy dużej ilości danych napływających do Zabbix, użytkownikom jest znacznie łatwiej analizować dane, jeżeli mogą spojrzeć na wizualną reprezentację sytuacji, a nie tylko na liczby. W tym przypadku pojawiają się wykresy. Wykresy pozwalają na szybkie zrozumienie przepływu danych, skorelowanie problemów, odkrycie, kiedy coś się zaczęło, lub określenie, kiedy coś może przerodzić się w problem.

    Rysunek 11. Tworzenie nowego wykresu

    Rysunek 11. Tworzenie nowego wykresu

    Tworzenie nowego wykresu odbywa się z poziomu Configration => Hosts => host_name => Graph => Create Graph.

    Rysunek 12. Przykład stworzone wykresu

    Rysunek 12. Przykład stworzone wykresu

    Poza unikalną nazwą wykresu, możemy skonfigurować jego rozmiar i wybrać item, na podstawie którego zostanie stworzony wykres. Na wykresie możemy również dodać legendę, a jeżeli istnieje skonfigurowany wyzwalacz, który reaguje na przekroczenie pewnych wartości, zostanie to odnotowane na wykresie jako zdarzenie.

    Rysunek 13. Przykład stworzone wykresu dla zużycia RAM maszyny wirtualnej

    Rysunek 13. Przykład stworzone wykresu dla zużycia RAM maszyny wirtualnej

    6. Maps and Screens

    Mapy, screeny oraz dashboardy pozwalają na wizualizację kilku lub kilkunastu wykresów oraz zdarzeń w jednym miejscu. Dashboard to centralne miejsce, w którym możemy przedstawić stan całej sieci.

    Rysunek 14. Dashboard pozwalający ocenić stan sieci

    Rysunek 14. Dashboard pozwalający ocenić stan sieci

    Mapy pozwalają na grupowanie hostów graficznie. Przykładem mapy może być np. mapa fizycznych połączeń między urządzeniami sieciowymi, czyli topologia.

    Rysunek 15. Topologia graficzna połączeń urządzeń sieciowych

    Rysunek 15. Topologia graficzna połączeń urządzeń sieciowych

    W zależności od statusu urządzenia i wyzwolonych triggerów, kolor urządzeń na mapie ulega zmianie. Możemy również tworzyć mapy zagnieżdżone, które pozwalają na przechodzenie między różnymi mapami po kliknięciu w dane urządzenie lub grupę urządzeń.

    Rysunek 16. Mapa wyższego poziomu

    Rysunek 16. Mapa wyższego poziomu

    Na rysunku 16. Mapa wyższego poziomu, pod którą kryją się kolejne mapy niższych poziomów. Problem wywołany w jeden z lokalizacji zostanie wyświelony na globalnej mapie.

    Screeny to nic innego jak pokaz slajdów, składający się z wybranych map, dzięki czemu na ekranie monitoringu możemy stworzyć sekwencję kolejnych map lub dashboardów.

    Rysunek 17. Tworzenie screenu

    Rysunek 17. Tworzenie screenu

    7. Template / Template Group

    Szablony są przydatnym narzędziem do uproszczenia pracy administratora. W szablonach można zdefiniować wartości itemów, wykresów oraz triggerów, które zostaną automatycznie przypisane do urządzeń lub maszyn wirtualnych, które zostaną do nich dodane. Dzięki temu nie musimy konfigurować zmiennych osobno dla każdego hosta, tylko dla grupy hostów. Warto przemyśleć podział urządzeń przed rozpoczęciem konfiguracji Zabbixa, aby efektywnie wykorzystać szablony. W szablonach można tworzyć również zagnieżdżone szablony.

    Rysunek 18. Przykład szablonów z zdefiniowanymi wartościami

    Rysunek 18. Przykład szablonów z zdefiniowanymi wartościami

    8. Macros

    Zabbix wspiera tworzenie makr. Makra to zmienne, które można definiować w dowolny sposób. Makra przypisują określoną wartość w zależności od kontekstu. Użycie makr pozwala oszczędzić czas oraz upraszcza konfigurację. Makra mogą być wykorzystywane na przykład w itemach, np. „item.key[server_{HOST.HOST}_local]”. Efektywne wykorzystanie makr czyni konfigurację bardziej przejrzystą.

    9. Users

    Wszyscy użytkownicy Zabbix uzyskują dostęp do aplikacji za pośrednictwem interfejsu WWW. Każdy użytkownik ma przypisaną unikalną nazwę logowania oraz hasło. Konta użytkowników mogą być zdefiniowane lokalnie lub na przykład za pomocą LDAP. Komunikacja między użytkownikiem a serwerem WWW Zabbix jest chroniona za pomocą protokołu SSL.

    Rysunek 19. Lista stworzonych użytkowników

    Rysunek 19. Lista stworzonych użytkowników

    10. Agent

    Agent Zabbix może zostać wdrożony na monitorowanym urządzeniu, aby aktywnie monitorować zasoby lokalne oraz aplikacje, takie jak dyski twarde, pamięć, statystyki procesora itp. Agent zbiera dane operacyjne lokalnie i wysyła je do serwera Zabbix w celu dalszego przetwarzania. W przypadku awarii (np. przepełnienie dysku twardego lub błędnie działające procesy), serwer Zabbix może natychmiast powiadomić administratorów o problemie. Z poziomu agenta możemy także skonfigurować aktywne zadania monitoringu, np. wykonanie komendy fping, aby ocenić, czy maszyna może komunikować się z Internetem.

    Rysunek 20. Lista dostępnych agentów w zależności od systemu

    Rysunek 20. Lista dostępnych agentów w zależności od systemu

    Rysunek 21. Sprawdzanie za pomocą agenta Zabbix czy system maszyny wirtualnej nie znajduje się w stanie ReadOnly

    Rysunek 21. Sprawdzanie za pomocą agenta Zabbix czy system maszyny wirtualnej nie znajduje się w stanie ReadOnly

    Rysunek 22. Przykład konfiguracji agenta Zabbix

    Rysunek 22. Przykład konfiguracji agenta Zabbix

    11. Proxy

    Zabbix Proxy to moduł, który może zbierać dane o wydajności i dostępności w imieniu serwera Zabbix. Proxy może przejąć część obciążenia serwera Zabbix, odciążając go, i jest nieocenione w przypadku rozproszonych instalacji. Dzięki proxy możemy centralizować monitoring z wielu lokalizacji, a wszystkie dane są przesyłane do jednego serwera Zabbix.

    Rysunek 23. Przykład wykorzystania serwera proxy

    Rysunek 23. Przykład wykorzystania serwera proxy

    12. Discovery

    Zamiast ręcznego dodawania hostów lub agentów, Zabbix oferuje także funkcję auto-discovery hostów. Może to być zrealizowane za pomocą SNMP, skanując określoną podsieć, lub za pomocą auto-rejestracji agentów. Auto-discovery pozwala automatyzować proces dodawania nowych hostów do systemu.

    Rysunek 24. Ustawienie reguł auto odkrywania

    Rysunek 24. Ustawienie reguł auto odkrywania

    13. API

    Zabbix udostępnia API, które umożliwia automatyzację konfiguracji systemu oraz interakcję z nim. API Zabbix działa na podstawie zapytań HTTP oraz danych kodowanych w formacie JSON. API można używać do automatycznego tworzenia hostów, itemów, triggerów oraz generowania raportów.

    14. Latest Data

    W zakładce Monitoring => Latest Data możemy sprawdzić ostatnie dane otrzymane z agentów lub SNMP. Zakładka ta jest przydatna do weryfikacji poprawności otrzymywanych danych, na przykład dotyczących zużycia zasobów maszyn wirtualnych. W tym miejscu można również sprawdzić, czy dane docierają na czas i czy nie ma problemów z komunikacją.

    Rysunek 25. Dane otrzymane na temat I/O dysków na maszynch wirtualnych

    Rysunek 25. Dane otrzymane na temat I/O dysków na maszynch wirtualnych

    15. Reports

    Zakładka Reports umożliwia generowanie raportów definiowanych przez użytkownika. Dzięki raportom administratorzy mogą ocenić stan sieci, dowiedzieć się, ile triggerów zostało wyzwolonych, jakie SLA jest spełnione, a także jaki był czas niedostępności poszczególnych zasobów. Przykładowym raportem jest raport SLA, który informuje o poziomie dostępności usług.

    Rysunek 26. Przykładowy raport SLA

    Rysunek 26. Przykładowy raport SLA

    16. Integrations

    Zabbix wspiera szeroką gamę integracji z systemami trzecimi. Jeżeli jakaś integracja nie jest oficjalnie wspierana, można skorzystać z pomocy społeczności, która oferuje liczne pluginy i skrypty. Integracje pozwalają na wysyłanie alertów do różnych narzędzi, takich jak e-mail, SMS czy komunikatory. Można zintegrować Zabbix z LDAP w celu centralnego zarządzania użytkownikami, a także z serwerem SMTP do wysyłania mailowych alertów. Możliwe jest również wysyłanie powiadomień SMS przez operatorów telekomunikacyjnych.

    Podsumowanie

    Zabbix to potężne i wszechstronne narzędzie do monitorowania infrastruktury IT, które umożliwia pełną kontrolę nad różnorodnymi komponentami, od sieci po aplikacje i serwery. Dzięki swojej modularnej architekturze, elastycznym opcjom konfiguracji oraz możliwości integracji z innymi systemami, Zabbix spełnia potrzeby zarówno małych, jak i dużych organizacji. Jego otwarta architektura i aktywna społeczność sprawiają, że jest to jedno z najlepszych narzędzi open-source w swojej klasie. Zabbix pozwala na automatyzację wielu procesów, zwiększenie bezpieczeństwa i zapewnienie stabilności pracy całej infrastruktury IT, co czyni go nieocenionym narzędziem w codziennym zarządzaniu środowiskiem IT

    Ekspercka pewność

    W oparciu o nasze wieloletnie doświadczenie, wspieramy firmy w efektywnym zarządzaniu infrastrukturą IT. Nasza wiedza, poparta licznymi projektami oraz aktywną współpracą z klientami, pozwala nam dobierać rozwiązania precyzyjnie dopasowane do potrzeb każdej organizacji. Znamy wyzwania związane z monitorowaniem sieci i serwerów, dlatego nasze działania zawsze uwzględniają zarówno optymalizację wydajności, jak i bezpieczeństwo, bez względu na skalę przedsiębiorstwa.

    Jeśli chcesz dowiedzieć się więcej lub masz wątpliwości, które rozwiązanie będzie dla ciebie najlepsze – porozmawiaj z naszymi inżynierami!

    Autor

    Jakub Grzelski

    Senior Systems Engineer | Network&Security • Delivery & Maintenance

    Komentarze są niedostępne
    Grandmetric: Network & Security