Czym jest GuardX? Od luźnych skryptów do wydajnego demona monitorującego

Autor:

w

Zarządzanie infrastrukturą serwerową wymaga ciągłego nadzoru, ale narzędzia monitorujące nie mogą stanowić obciążenia dla samej maszyny. GuardX Server Monitor to autorski, niezwykle lekki system monitorowania zasobów, który powstał z prostej potrzeby: uzyskania maksymalnej kontroli przy minimalnym narzucie na procesor i pamięć.

Trudne początki i rozstanie z systemem Monit

Historia GuardX ma swoje korzenie w środowisku Linux. Na samym początku projekt w ogóle nie był samodzielnym systemem. Wystartował jako zestaw luźnych modułów napisanych w języku C++, które miały służyć jako rozszerzenia dla niezwykle popularnego narzędzia Monit.

Z czasem jednak ujawnił się fundamentalny problem. Sam Monit, choć potężny, okazał się po prostu zbyt „ciężki” i zasobożerny jak na standardy, których oczekiwałem od wydajnego serwera. Zamiast instalować ociężałe kombajny, podjąłem decyzję o całkowitym oddzieleniu kodu. Moduły wyewoluowały, a na ich fundamentach powstał niezależny, zoptymalizowany system.

Jak GuardX działa pod maską?

Obecnie GuardX to w pełni samodzielny system zbudowany w C++. Zamiast polegać na pośrednikach, system komunikuje się z systemem operacyjnym bezpośrednio, wykorzystując niskopoziomowe API kernela.

Sercem GuardX jest dyskretny demon działający w tle. Jego zadaniem nie jest nieustanne generowanie logów, ale reaktywny nadzór. Demon w czasie rzeczywistym cyklicznie odpytuje moduły monitorujące. Dopóki system działa stabilnie – GuardX pozostaje w cieniu. Gdy tylko któryś z monitorowanych parametrów (np. temperatura CPU, zajętość RAM, status dysku) przekroczy ustalony limit awaryjny, demon natychmiast generuje i wysyła alert do administratora.

Co dokładnie monitoruje GuardX?

System składa się obecnie z około 15 wyspecjalizowanych modułów. Każdy z nich odpowiada za inną warstwę infrastruktury – od sprzętu (dyski, procesor) po usługi i izolowane środowiska (Jails).

Poniżej znajduje się autentyczny zrzut z terminala (wynik polecenia guardx status), który najlepiej obrazuje, jakie obszary pokrywa obecna wersja systemu:

————————————————————————————————-
Mod: Jails Status
Status: Ok
Statement:
[ Status Środowisk Bastille Jail ]
————————————–
angie_jail [ ON ]
bsnm_nas [ ON ]
bsnm_nas_jail [ OFF ]

sql_jail [ ON ]
————————————————————————————————-
Mod: Proces Status
Status: Ok
Statement:
USLUGA STATUS PID JAIL CPU RAM UPTIME
————————————————————————–
sshd [ OK ] 45483 25 0.0% 201.5 MB 11d 23h 59m
mysql-server [ OK ] 57588 33 0.0% 139.0 MB 11d 23h 59m
crowdsec [ OK ] 17017 0 0.0% 280.4 MB 12d 0h 7m
valkey [ OK ] 54339 31 0.0% 41.5 MB 11d 23h 59m
php-fpm [ OK ] 45442 25 0.1% 501.1 MB 11d 23h 59m
angie [ OK ] 42544 23 0.0% 346.4 MB 11d 23h 59m
samba_server [ OK ] 30101 130 0.3% 1389.9 MB 2h 15m
————————————————————————————————-
Mod: Proces Load
Status: Ok
Statement: Żaden proces nie obciąża nadmiernie systemu
————————————————————————————————-
Mod: CPU Temperature
Status: Warning
————————————————————————————————-
Mod: Hard Drive Temperature
Status: Ok
Statement:
Temperatura dysku (/dev/nvme0): 39°C
Temperatura dysku (/dev/nvme1): 40°C
————————————————————————————————-
Mod: NVMe SMART Status
Status: Ok
Statement:
/dev/nvme0 : [ OK ] Zużycie: 1% (Health: 99%)
/dev/nvme1 : [ OK ] Zużycie: 0% (Health: 100%)
————————————————————————————————-
Mod: Disk Space & ZFS Pool Status
Status: Ok
Statement:
Wykryty dysk: zroot (/) | Rozmiar: 475.5G | Zajętość: 3% [12.0G]
ZFS zroot : [ OK ] Status: ONLINE (Macierz pracuje poprawnie)
————————————————————————————————-
Mod: Ram and Swap Status
Status: Ok
Statement:
RAM : [ OK ] Zajętość: 43% (13.6 GB / 31.6 GB)
SWAP (zvol) : [ OK ] Zajętość: 0% (Brak aktywnego SWAP w systemie)
————————————————————————————————-
Mod: Load Status
Status: Ok
Statement: Load Avg : [ OK ] Wynik (1/5/15m): 0.22, 0.21, 0.17 [Rdzenie: 8]
————————————————————————————————-
Mod: Internet Status & Package Update
Status: Ok
Statement: Serwer ma dostęp do internetu. Wszystkie pakiety są aktualne.
————————————————————————————————-

Podsumowanie najważniejszych modułów:

Jails Status – monitoruje stan uruchomionych środowisk wirtualnych (Bastille Jails).

Proces Status & Load – śledzi zasoby (CPU, RAM, Uptime) konsumowane przez kluczowe usługi demony (Angie, MySQL, PHP-FPM, CrowdSec) i wykrywa procesy nadmiernie obciążające system.

Hardware Health (Temperatury i SMART) – bezpośredni odczyt parametrów fizycznych dysków NVMe (zużycie, kondycja) oraz temperatury procesora.

ZFS & Disk Space – integralność macierzy ZFS oraz zapas dostępnego miejsca.

System Core (RAM, Load, Network) – bieżąca weryfikacja obciążenia (Load Average), wykorzystania pamięci wymiany (SWAP) oraz łączności ze światem.

Ciągły rozwój i kompatybilność wsteczna

GuardX to projekt żywy. Ilość modułów stale się powiększa, aby dostosować się do nowych usług wdrażanych na serwerach (jak np. nadzór nad serwerami bazodanowymi, nowymi demonami czy cache’owaniem).

Co ważne – sposób działania GuardX oraz fakt, że zrodził się z modułów dedykowanych dla systemu Monit, ma ogromną zaletę. Przystosowanie starych, gotowych skryptów i modułów Monita do współpracy z GuardX jest niezwykle proste. Jeśli posiadasz już napisane procedury sprawdzające pod Monita, system GuardX z łatwością je obsłuży, zachowując przy tym swoją lekkość i szybkość.

GuardX udowadnia, że zaawansowany monitoring infrastruktury nie wymaga instalowania setek megabajtów zależności. Wystarczy czysty kod, odpowiednia optymalizacja i bezpośredni dostęp do jądra systemu.

GuardX Server Monitor - Lekki system monitoringu serwerów
Przegląd prywatności

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.