Monitorowanie systemu Windows za pomocą Zabbix

Monitorowanie infrastruktury IT to fundament utrzymania stabilności, bezpieczeństwa i wydajności środowiska. Jednym z najpopularniejszych narzędzi stosowanych w małych firmach, dużych organizacjach oraz środowiskach laboratoryjnych jest Zabbix — otwartoźródłowy system monitoringu umożliwiający zbieranie metryk z niemal dowolnego systemu.
W tym artykule przedstawiam kompleksowe omówienie monitorowania Windows 11 z wykorzystaniem Zabbixa.

Ruszamy z zapisami na kurs Zabbix – Monitoring Sieci i Serwerów!
Chcesz zdobyć praktyczną umiejętność w IT i nauczyć się profesjonalnego monitoringu infrastruktury z wykorzystaniem Zabbixa?
 Ten kurs przeprowadzi Cię od podstaw aż po zaawansowane wdrożenia.
 
Promocja trwa do 16 grudnia do godz. 23:59

Zapisz się już dziś!

Sprawdź szczegóły: https://asdevops.pl/kurs-zabbix

 


Dlaczego warto monitorować Windows za pomocą Zabbix?

Windows jest jedną z najczęściej stosowanych platform w firmach – od serwerów AD, poprzez SQL, po stacje robocze. Monitorowanie systemu Windows w Zabbixie pozwala m.in. na:

  • wykrywanie awarii i spadków wydajności,
  • analizę trendów (np. RAM, CPU, I/O),
  • szybkie reagowanie na awarie usług Windows,
  • monitorowanie zdarzeń z Event Log,
  • śledzenie stanu aktualizacji, procesów, aplikacji,
  • integrację alertów z e-mail, Teams, Slack, SMS, webhook.

Dzięki agentowi Zabbix oraz bogatym szablonom, wdrożenie monitoringu Windows jest łatwe i skalowalne.


Architektura monitorowania Windows w Zabbix

Na monitorowanie Windows składają się trzy elementy:


1. Serwer Zabbix

  • Odpowiada za zbieranie danych i reguły triggerów.
  • Obsługuje bazy jak MySQL/PostgreSQL.
  • Udostępnia interfejs WWW do wizualizacji i analizy danych.

2. Agent Zabbix na Windows

Zabbix Agent działa jako usługa Windows i zbiera metryki takie jak:

  • CPU, RAM, dysk, sieć
  • procesy i usługi
  • rejestr Windows
  • dane z Event Log
  • aktywność użytkowników
  • liczba aktualizacji Windows
  • i wiele innych.

Wersje agentów:

  • Zabbix Agent (classic) – stabilny, lekki, najbardziej popularny.
  • Zabbix Agent 2 – nowa generacja, pluginy, większa elastyczność (polecany).

3. Szablony (Templates)

Zabbix dostarcza gotowy template dla Windows:

  • Template OS Windows by Zabbix agent
  • Template OS Windows by Zabbix agent active
  • Template OS Windows by Zabbix agent 2

Szablony zawierają:

  • predefiniowane itemy,
  • triggery,
  • wykresy,
  • LLD (low-level discovery),
  • monitorowanie usług.

Instalacja Zabbix

1 Instalacja Alma Linux OS

Do uruchomienia Zabbixa możemy wykorzystać praktycznie każdą dostępną dystrybucję Linuxa. Ja stosowałem Ubuntu, Debian oraz CentOs. Wiem również, że często przez administratorów jest stosowana Fedora. Z moich doświadczeń oraz z mocno subiektywnych odczuć, mogę z całym sumieniem polecić Alma Linux. Akurat ta wersja „Pingwina” przypadła mi najbardziej do gustu i to na przykładzie najnowszej wersji tego systemu zaprezentuję uruchomienie Zabbixa.

W momencie pisania tej książki, dostępna jest wersja Alma Linux OS 10.

Pobieramy oraz uruchamiamy źródło z instalacją systemu. Przy uruchomieniu instalacji Alma Linux ujrzymy następującą planszę:

Wybieramy pierwszą opcję. Instalacja się uruchamia:

Wybieramy język w jakim będzie przebiegała instalacja. Ja wybrałem polski. Klikamy „Kontynuuj”:

Przechodzimy do następnego okna:

Kolejno ustawiamy:

– ustawienia klawiatury

– język wsparcia

– strefa czasowa

– źródło instalacji systemu

– rodzaj oprogramowania; przykładowo wersja z GUI lub bez

– ustawienia dysków oraz partycjonowanie

– sieć

– zabezpieczenia

U mnie po zmianach wygląda to następująco:

To co zalecam to wybranie wersji Server w Wybór oprogramowania. Interfejs graficzny w tym wypadku będzie zbędny. Poza tym, polecam od razu skonfigurować adres sieciowy.

Uruchamiamy instalację klawiszem „Rozpocznij instalację”.

Na koniec wykonaj restart maszyny:

Po restarcie serwer jest gotowy do użycia:

2. Ustawienia sieciowe

Jeżeli nie skonfigurowałeś sieci w kreatorze instalacji to konieczne jest wykonanie tego w tym momencie. Wywołaj poniższą komendę

dnf install nano net-tools -y  (jeśli wolisz zamień nano na vi)
nmtui

Enterem wybieramy modyfikuj połączenie, wybieramy ens160 (nazwa może się różnić)

Strzałkami na klawiaturze wybieramy w sekcję IPV4.

Z automatycznie zmieniamy na ręcznie wybieramy wyświetl.

W sekcji adresy wpisujemy adres ip u mnie jest to 192.168.1.100/24 oraz brama 192.168.1.1 i serwery DNS 8.8.8.8, 8.8.4.4

Używamy kilkukrotnie klawisz escape, by powrócić do linii komend, wpisujemy kolejno:

nmcli device status    <— komenda pokazuje ID naszych kart sieciowych

        w moim przypadku jest to „ens160”

ip a
nmcli connection reload

systemctl restart NetworkManager

nmcli con down ens160 && nmcli con up ens160 <—- użyj ID swojej karty sieciowej

ping -c 3 wp.pl

Podczas gdy możesz śledzić oficjalny przewodnik dostępny na stronie pobierania Zabbix, nadal zalecam przejście przez kroki instalacyjne razem tutaj.

Dlaczego? Ponieważ niektóre kroki, choć proste dla doświadczonych profesjonalistów, mogą wydawać się niejasne lub niekompletne dla początkujących. Więc przejdźmy przez wszystko krok po kroku, aby zapewnić płynną i udaną instalację.

3. Instalacja serwera Zabbix

Wreszcie nadeszła ta chwila! Najważniejsze zadanie, czyli instalacja serwera Zabbixa. Przechodzimy do działania.

Na początek dodajemy repozytorium z oficjalnej strony Zabbixa. I tu jedna uwaga. Instrukcja, którą właśnie widzisz przygotowana została pod system operacyjny Cent OS. Jeżeli używasz innego systemu to wejdź na stronę:

https://repo.zabbix.com/zabbix/7.4/stable/alma/10/x86_64

i wybierz odpowiednią wersję.

W chwili przygotowania tego poradnika dostępna była wersja:

repo.zabbix.com/zabbix/7.4/release/alma/10/noarch/zabbix-release-latest-7.4.el10.noarch.rpm

Logujemy się do serwera jako użytkownik root.

dnf update & dnf upgrade -y
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/alma/10/noarch/zabbix-release-latest-7.4.el10.noarch.rpm

Następnie czyszczę wszelki cache dotyczący repozytorium:

dnf clean all

Zainstaluj serwer Zabbixa:

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y

4. Instalacja i konfiguracja bazy danych MariaDB

Uruchamiamy instalator:

dnf install mariadb-server

Potwierdzamy wszystkie zapytania klawiszem „y”.

Po wykonaniu instalacji dodajemy usługi bazy do autostartu systemu oraz uruchamiamy je:

systemctl enable mariadb
systemctl start mariadb

Uruchamiamy konfigurator zabezpieczeń bazy MySQL:

mysql_secure_installation

Podajemy hasło. Jeżeli robimy to pierwszy raz to wciskamy tylko enter bez wpisywania hasła,  a następnie ustawiamy własne hasło:

Konfigurator pozwala nam jeszcze zmienić następujące opcje:

  1. Usunięcie anonimowego użytkownika. Ja usunąłem.
  1. Zabezpieczenie, które pozwala, by konto root mogło się połączyć z bazą tylko lokalnie z serwera. Jeżeli nie chcecie, by root miał możliwość połączenia z bazą z innych sieci to tą opcję powinniście wyłączyć. Potwierdź „y„.

3. Usunięcie testowej bazy danych. Jeżeli chcesz się pouczyć obsługi MySQL to warto ją zostawić. Potwierdź „y„.

4. Natychmiastowe wprowadzenie powyższych zmian. Potwierdź „y„.

Zatwierdzamy zmiany, a następnie logujemy się do naszej instancji MySQL:

mysql -u root –p   <—-wciskamy klawisz enter

Podajemy wcześniej ustawione hasło.

Wykonujemy poniższe polecenia.

create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix identified by 'TWOJEHASŁO';
grant all privileges on zabbix.* to zabbix;

Zmieniamy zmienną: 

SET GLOBAL log_bin_trust_function_creators = 1;
quit;

By była jasność ‘TWOJEHASŁO’ to hasło jakie właśnie ustawiasz dla użytkownika Zabbix. Podejrzewam, że chcesz mieć inne hasło. Zmień zatem ten parametr na wartość jakiej oczekujesz.

Konieczny jest import schematu bazy MariaDB na potrzeby Zabbixa. Rozpakowujemy archiwum zawierające schemat i importujemy do bazy.

Zaimportuj bazę:

zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Podaj wcześniej utworzone hasło do konta root utworzonego w mysql.To może trochę potrwać.

Edytujemy ustawienia PHP (W nano pomoże Ci skrót klawiszy „ctrl+f” do wyszukiwania podanych pozycji, pamiętaj różnież o spacji po znaku „=”):

nano /etc/php.ini

Wprowadź poniższe ustawienia:

date.timezone = Europe/Warsaw

max_execution_time = 600

max_input_time = 600

memory_limit = 256M

post_max_size = 32M

upload_max_filesize = 16M

Po wprowadzeniu ustawień restartujemy Apache:

systemctl restart httpd

W tym miejscu warto się zatrzymać i wyjaśnić znaczenie powyższych parametrów.

date.timezone = Europe/Warsaw

Określenie strefy czasowej. Wydaje mi się, że nie trzeba tego bardziej rozwijać. Ustawienie innej strefy spowoduje rozjazd czasu aplikacji z czasem rzeczywistym.

max_execution_time = 600

Parametr odpowiedzialny za Maximum Execution Time. Jest to limit czasowy dla procesów PHP. Jest to jedno z zabezpieczeń serwerów PHP. Pozwala to na przerwanie zadania PHP po przekroczeniu określonego czasu.

Im bardziej skomplikowane zadanie tym limit powinien zostać ustawiony wyżej. W przypadku serwera Zabbix jest to 600 sekund. Zbyt krótkie określenie czasu powodowałoby to, że część zadań nie byłoby wykonanych.

max_input_time = 600

Parametr odpowiedzialny za określenie czasu w jaki aplikacja ma za zadanie przesłanie pliku do serwera. W przypadku Zabbixa ma to choćby znaczenie przy wgrywaniu szablonów czy bazy zawierającej listę monitorowanych urządzeń i serwerów.

memory_limit = 256M

Parametr odpowiedzialny za ograniczenie pamięci z jakiej może skorzystać aplikacja PHP. Teoretycznie, gdybyś nie ustalił takiego limitu to mogłoby to doprowadzić do wyczerpania przez serwer całej dostępnej pamięci. Możliwe jest to choćby w wypadku źle zoptymalizowanego skryptu lub aplikacji.

W przypadku Zabbixa 256 MB jest rozsądną wartością. Szczególnie, że w przypadku dzisiejszych serwerów taka wartość nie wydrenuje znacząco zasobów maszyny.

I zostały jeszcze dwa parametry, które odpowiadają za przesyłanie plików za pośrednictwem aplikacji PHP. Czyli w tym wypadku Zabbixa.

Są to zabezpieczenia, które mają na celu uniemożliwić choćby przeprowadzenie ataku DoS Twojego serwera poprzez wysłanie dużych plików i tym samym zawieszenie aplikacji.

post_max_size = 32M

Odpowiada za przesyłaniu plików POST

Warto pamiętać, ze ten parametr musi być zawsze większy niż upload_max_filesize.

upload_max_filesize  = 16M

Ten paraemtr oznacza maksymalny rozmiar jaki może wynosić przesyłany plik przez panel Zabbixa.

4. Konfiguracjaserwera Zabbix

Następny etap to konfiguracja serwera Zabbix. Wchodzimy do pliku konfiguracyjnego:

nano /etc/zabbix/zabbix_server.conf

To co nas w tym momencie interesuje to ustawienia bazy danych. Wprowadzamy odniesienie do bazy oraz hasło w tych miejscach, ważne usuń znak ‘#’, przed DB:

DBPassword=TWOJEHASŁO <—- tutaj po znaku „=” bez spacji

Podobnie jak z poprzednimi usługami, dodajemy Zabbix do autostartu systemu:

systemctl enable zabbix-server

5. Konfiguracjafirewall i zabezpieczeń

W dalszej kolejności konieczne jest utworzenie odpowiednich zasad na firewallu, które pozwolą na dostęp do serwera Zabbix z innych maszyn. W tym momencie dodamy reguły akceptujące komunikację poprzez protokoły http, HTTPS oraz z portami 10050 i 10051. Są to domyślne porty używane do komunikacji z usługą serwera oraz agenta Zabbix. Po dodaniu przeładujemy ustawienia firewalla i zapiszemy ustawienia. Wykonujemy następujące polecenia:

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --reload
firewall-cmd --list-all

Zobaczysz efekty swojej pracy:

Gdy już mamy wykonane czynności z wcześniejszych rozdziałów, kolejnym krokiem jest konfiguracja dostępu do panela administracyjnego Zabbixa, który jest dostępny poprzez przeglądarkę internetową.  :

setsebool -P httpd_can_network_connect on
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm

Po wpisaniu adresu IP serwera, automatycznie mam dostęp do panelu WWW Zabbixa. 

W przeglądarce wejdź na stronę http://XXX.XXX.XX.XX/zabbix lub http://XXX.XXX.XX.XX/ (jeżeli zmieniłeś ścieżkę wyżej). I nie obawiaj się. Nie jest to adres strony dla dorosłych. Naturalnie XXX zamień na IP prowadzące pod adres Twojego serwera.

Panel www administracji Zabbixa gotowy do skonfigurowania. Kliknij „Next Step”.

W tym oknie upewnij się, że wszystko jest oznaczone jako „OK”:

W sekcji „Password”, wpisujemy wcześniej ustawione hasło do bazy danych „mysql”, kliknij „Next step” :

Warto zaznaczyć, że od wersji Zabbix 7.4 dostępna jest szyfrowana komunikacja z bazą.

Podajemy nazwę serwera, wedle uznania. Ja wpisałem „Askomputer”, kliknij

„Next step” :

Przechodzimy dalej:

Gdy dojedziemy do ostatniego kroku, pojawi się stosowny komunikat o zakończeniu instalacji!

Możesz się zalogować do Zabbixa.

Domyślny użytkownik: Admin

Hasło: zabbix

Gotowe! Mamy działający i skonfigurowany serwer Zabbix oraz dostęp do interfejsu graficznego serwera !

Instalacja i konfiguracja Zabbix Agent na Windows

1. Pobierz agenta Zabbix

Z oficjalnej strony:
https://www.zabbix.com/download_agents

Wybierz:

  • Platforma: Windows
  • Architektura: 64-bit
  • Wersja: stabilna (np. 7.0 LTS)
  • OpenSSL
  • MSI

Pobierz paczkę instalacyjną klikając „DOWNLOAD”


2. Instalacja agenta

Uruchom ściągniętą paczkę instalacyjną, potwierdź zgodę licencyjną oraz lokalizację instalacji.

Zmień nazwę hosta jeśli chcesz w sekcji „Host name:”, następnie podaj adres IP serwera Zabbix. Reszta opcji bez zmian:

Sprawdź adres IP maszyny na którym zainstalowałeś agenta. Kliknij na menu start i wpisz cmd, uruchom Wiersz poleceń:

W wierszu poleceń wpisz „ipconfig”, zapamiętaj „IPv4 Address” i naciśnij klawisz enter:

Przejdź do panelu graficznego Zabbix w przeglądarce. W lewym roku z listy wybierz „Data collection” / „Hosts”:

W prawym górnym roku kliknij „Create host”. W oknie nadaj nazwę hosta (Host name), w „Templates” wpisz Win i wybierz „Windows by Zabbix agent”:

W kolejnych polach, wpisz w „Host groups”, Windows (dla przejrzystości) kliknij na tą nazwę by dodać nową grupę. Kliknij w „Add” i wybierz „Agent”:

W sekcji agent wpisz adres IP maszyny, na którym zainstalowałeś agenta. Upewnij się czy masz zaznaczoną opcję „Server” oraz „Enabled”, kliknij „Add” i dodaj hosta:

Host pojawi się w tabeli Hostów (ja mam już kilka dodanych, u Ciebie może wyglądać to trochę inaczej). Zauważ że ikona „ZBX” jest na szaro. Poczekaj chwilę i odśwież stronę panelu Zabbix:

Gotowe! Zabbix zbiera już dane z maszyny (w tym wypadku Windows11)

Zabbix agent połączony z serwerem Zabbix’a, co dalej?

Przejdź do „monitoring” / „Latest data”. W sekcji „Hosts”, podaj nazwę hosta którą wcześniej ustawiłeś tworząc połączenie z Zabbix serwerem (u mnie Windows11), kliknij na Twojego hosta i kliknij „Apply”:

Zostaną wylistowane informacje takie jak:

  • nazwa hosta (HOSTS)
  • Tagi (TAG VALUES)
  • komponenty
  • dyski
  • partycje
  • system plików
  • interfejsy sieciowe
  • nazwy napływających danych
  • oraz nazwy usług

W sekcji „DATA”, mamy wylistowane wszystkie komponenty które monitoruje Zabbix serwer na hoście. Klikając na niebieski napis „Graph” możesz podejrzeć aktualny stan napływających danych, np. kiknij w Graph CPU utilization:

Przejdźmy teraz do „Dashboard”. Mamy tu ogólny zarys pracy serwera Zabbix:

  • Top host by GPU utilization – pokazuje graficznie oraz procentowo, zużycie procesora. Zauważ Zabbix serwer nie tylko monitoruje inne hosty, a także siebie. Na załączonym obrazku mamy też host „Linux”, nie ma żadnych danych wyświetlonych bo host jest wyłączony. Ważna informacja jeśli masz kilkanaście lub kilkaset hostów w swojej infrastrukturze którą monitorujesz
  • System information – ogólny zarys działania serwera Zabbix
  • Memory utilization – graficzne przedstawienie zużycie zasobów pamięci RAM serwera Zabbix
  • Date i czas
  • Values per second – wykres oraz średnią liczbę przyjmowanych danych do serwera Zabbix
  • Host availability – dostępność hostów
  • Problems by severity – ilość problemów, skategoryzowane według poziomu problemu
  • Wykres zużycia procesora oraz pamięci RAM
  • Current problems – Aktualne problemy z hostami
  • Mapa geolokalizacji

Teraz przejdźmy do monitoringu hostów. Przejdź do sekcji „Monitoring” / „Hosts”. Z tego poziomu możesz przejść do wcześniej omówionych „Latest data”, „Problems” oraz „Graphs”. Mamy też opcję „Dashboards”:

Po kliknięciu na „Dashboards”. Ukazują się nam wykresy z informacjami o „Filesystems” – zużycie pamięci masowych dysków, „Network interfaces” – interfejsy sieciowe oraz „System performance” – :

Stwórzmy teraz własny Dashboard!

Przejdź kolejno, „Dashboards” / „All dashboards”:

W prawym górnym rogu, kliknij „Create dashboard:”

Nadaj nazwę w sekcji „Name” i kliknij „Apply”:

Kliknij i rozciągnij w dowolnym miejscu „Widget”, w którym stworzymy np. „Top hosts”. Wybierz „Type” / „Top hosts. W „Name” nadaj nazwę widget’owi. Wybierz w „Host groups” grupę hosta a następnie wybierz Hosta (lub kilka, jeśli masz ich więcej) :

Następnie dodajmy kolumnę, kliknij w „Columms” / „Add”. W „Data”, zmień na „Host name” a w sekcji „Name” wpisz „Nazwa hosta” / „Add”:

Do utworzonej kolumny dodajmy wartości które chcemy wyświetlić. Utworzymy wskaźnik zużycia RAM’u oraz dysku. Pod „Nazwa hosta” / „Add”. Dodajmy zużycie pamięci RAM. W „Name” wpisz np. pamięć ram lub tak jak ja RAM, w „Item name” kliknij „Select”:

Kliknij w „Select” i wybierz Swojego hosta:

Następnie z listy wyszukaj i kliknij „Memory utilization” by dodać tą funkcję. Zmień „Dispay” na „Indicator i ustaw wartości Min 0 oraz Max 100:

Kliknij trzy razy „Add” i wpisz takie wartości:

Kolejno „Add” / „Add”. Mamy już podgląd wykorzystania pamięci RAM naszej maszyny:

Dodajmy teraz zużycie dysków. Kliknij na „zębatkę”, pod RAM kliknij „Add”:

Analogicznie wypełniamy pola, tym razem wyszukaj w „Item name” / „FS[(c:)]: Space: Used, in % X”:

Pierwszy Widget gotowy!

Dodajmy kolejny, tym razem ustawmy zużycie procesora. Ustaw myszą kolejne pole Widget’a. W „Type” wybierz „Graph”, w „Name” nawę widget’a, następnie „host patterns” wybierz Twojego hosta. W „item patterns” ustaw „CPU utilization”

Przejdź do sekcji „Axes” i ustaw oś Y, 0% oraz 100%. Zatwierdź klikając „Add”:

Gotowe kolejny Widget dodany

Możesz utworzyć dashboardy:

  • zdrowie systemu,
  • top procesy CPU,
  • status usług,
  • IOPS dysków,
  • analiza Event Log,
  • dostępność usług.

Każdy Windows Server może mieć własny rozbudowany dashboard.

Monitorowanie Windows za pomocą Zabbixa jest łatwe w konfiguracji, bardzo rozbudowane, możliwe do automatyzacji, świetne dla małych i dużych środowisk, rozszerzalne w nieskończoność dzięki Agent 2 i pluginom. Jeśli chcesz mieć pełną widoczność swojej infrastruktury Windows — Zabbix jest jednym z najlepszych możliwych wyborów.

Ten artykuł to tylko wstęp do monitorowania Sieci i Serwerów. Po więcej zapraszam na nasze kursy:

https://grupadm.pl/product/architekt-zabbix-monitorowanie-sieci-i-serwerow-2026/

https://grupadm.pl/product/monitoring-linux-z-uzyciem-zabbix

https://grupadm.pl/product/monitorowanie-windows-i-active-directory

Oraz Ebook

https://grupadm.pl/product/podrecznik-administratora-systemu-zabbix-ebook

Ruszamy z zapisami na kurs Zabbix – Monitoring Sieci i Serwerów!
Chcesz zdobyć praktyczną umiejętność w IT i nauczyć się profesjonalnego monitoringu infrastruktury z wykorzystaniem Zabbixa?
 Ten kurs przeprowadzi Cię od podstaw aż po zaawansowane wdrożenia.
 
Promocja trwa do 16 grudnia do godz. 23:59

Zapisz się już dziś!

Sprawdź szczegóły: https://asdevops.pl/kurs-zabbix

 

Ruszamy z zapisami na kurs Zabbix – Monitoring Sieci i Serwerów!

X