W dzisiejszym środowisku biznesowym, nieustanne monitorowanie serwerów to fundament prawidłowego działania rozmaitych systemów informatycznych.
W miarę jak firma się rozrasta, powiększają się także jej zasoby, zespół, gama usług, systemy i cała infrastruktura IT. Z tego powodu, narzędzia do monitorowania wydajności stają się niezbędne do śledzenia kondycji, operacji i możliwości serwerów.
W niniejszym artykule przeanalizuję szereg lekkich i bezpłatnych narzędzi, które umożliwiają efektywne monitorowanie serwerów.
Każdy administrator IT regularnie mierzy się z wyzwaniami, takimi jak awarie serwerów, spowolnienie działania aplikacji, nieplanowane przestoje, konfiguracja zależności czy problemy z wyciekami pamięci. Aby skutecznie rozwiązywać te trudności, niezbędne jest dedykowane oprogramowanie monitorujące IT.
Do najpopularniejszych rozwiązań w zakresie monitorowania całej infrastruktury należą Nagios oraz Zabbix. Używając tych narzędzi, można objąć nadzorem niemal każdy element – od wydajności serwerów i sieci, przez protokoły, systemy operacyjne i aplikacje, aż po strony internetowe.
Jednak w sytuacji, gdy Twoja infrastruktura nie jest zbyt rozległa lub potrzebujesz monitorować tylko wydajność serwerów, zamiast sięgać po kompleksowe i rozbudowane rozwiązania, warto rozważyć lekkie, samodzielne narzędzia do monitorowania serwerów.
Warto pamiętać: użytkownicy systemu Linux mogą również korzystać z wbudowanych poleceń, które umożliwiają monitorowanie procesora, pamięci operacyjnej oraz procesów.
Ward
Ward dostarcza podstawowe informacje dotyczące serwerów, będąc kompatybilnym z wszystkimi powszechnie używanymi systemami operacyjnymi.
Program wykorzystuje bibliotekę OSHI, która jest bezpłatnym narzędziem w języku Java, służącym do pozyskiwania danych o systemie operacyjnym i sprzęcie. Dostarcza informacje o wersji systemu operacyjnego, pamięci, procesorze, dyskach i partycjach, a także o wykorzystaniu procesora.
Panel kontrolny składa się z pięciu sekcji:
- Procesor: nazwa, poziom wykorzystania, liczba rdzeni, architektura, częstotliwość
- Maszyna: system operacyjny i jego wersja, procent wykorzystania pamięci RAM, całkowita ilość pamięci RAM, typ pamięci RAM, liczba aktualnie działających procesów
- Pamięć masowa: nazwa, procent użycia, całkowity rozmiar, liczba dysków, pamięć wirtualna
- Wykorzystanie w czasie rzeczywistym: wizualizacja wykorzystania procesora, pamięci RAM i dysku w ciągu ostatnich 20 sekund
- Ward: czas pracy systemu od ostatniego rozruchu w systemie Linux i czas twardych resetów w systemie Windows
Aby uruchomić Ward, można skompilować plik jar projektu i go uruchomić, lub pobrać najnowszą wersję pliku jar i ją uruchomić. Istnieje również możliwość uruchomienia Warda w kontenerze Docker.
Netdata
Netdata to bezpłatne oprogramowanie o otwartym kodzie, służące do monitorowania systemów i aplikacji w czasie rzeczywistym. Działa na systemach Linux, FreeBSD, macOS, w kontenerach Docker oraz na urządzeniach IoT.
Po zainstalowaniu agenta Netdata w systemie, aplikacji lub kontenerze, oprogramowanie będzie przekazywać informacje o wydajności i kondycji w czasie rzeczywistym.
Dzięki możliwości przeciągania i powiększania/pomniejszania wykresów (np. procesora, przedstawionego na powyższym obrazku kolorem żółtym) za pomocą klawisza SHIFT i kółka myszy, można szczegółowo analizować poszczególne obszary. Netdata łatwo integruje się z innymi narzędziami, takimi jak Prometheus, AWS Kinesis, Graphite czy MongoDB.
Główne funkcje Netdata:
- Szybka i bezproblemowa instalacja
- Przekazywanie danych w czasie rzeczywistym
- Monitorowanie tysięcy parametrów na węzeł
- Samodzielne zbieranie do 10 000 metryk na serwer
- Przechowywanie danych historycznych z dokładnością do sekundy
- Przejrzysty i intuicyjny interfejs użytkownika
- Identyfikacja anomalii za pomocą zaawansowanego wizualizera metryk
- Nie wymaga dedykowanych zasobów do uruchomienia
Prometheus i Grafana
Prometheus to otwarte narzędzie do monitorowania metryk systemowych, a Grafana to platforma do wizualizacji danych. Połączenie Prometheusa i Grafany tworzy efektywne środowisko do monitorowania serwerów.
Serwer Prometheus regularnie gromadzi dane, a następnie staje się źródłem danych dla Grafany, która wizualizuje te metryki w postaci panelu kontrolnego. Grafana oferuje również opcję zadawania zapytań dotyczących prezentowanych metryk.
Warto wypróbować takie połączenie!
Glances
Glances to wieloplatformowe narzędzie do monitorowania, napisane w języku Python. Obsługuje wersje Pythona 2.7 lub >=3.4. Do zbierania informacji systemowych wykorzystuje biblioteki Pythona (psutil).
Wyświetlane informacje dynamicznie dostosowują się do wielkości interfejsu (mobilny, interfejs WWW, terminal).
Główne cechy Glances:
- Zdalne monitorowanie dostępne poprzez terminal, interfejs WWW lub API (serwer XML-RPC i RESTful JSON)
- Możliwość eksportowania statystyk do pliku lub bazy danych
- Łatwa instalacja za pomocą jednego polecenia – „pip install glances”
- Dostępny kontener Docker
Aby uzyskać lepszą wizualizację danych, można je wyeksportować z Glances do InfluxDB i następnie zwizualizować je w Grafanie.
Linux Dash
Linux Dash to internetowy panel kontrolny dla systemów Linux. Interfejs użytkownika jest oparty na Angularze, a warstwa serwerowa jest dostępna w wielu językach.
W zakładce „System” prezentowane są informacje o wykorzystaniu pamięci RAM, średnim obciążeniu procesora, wykorzystaniu procesora, procesach wykorzystujących procesor i pamięć RAM, partycjach dysków, wykorzystaniu pamięci wymiany, temperaturze procesora oraz procesach Docker.
Narzędzie dostarcza również informacje na temat sieci, kont i aplikacji.
Funkcje Linux Dash:
- Obsługa WebSocket zapewniająca wizualizację danych systemowych w czasie rzeczywistym
- Interfejs użytkownika z funkcją przeciągania i upuszczania
- Możliwość konfigurowania ekranów (minimalizacja, rozwijanie, dopasowywanie) w panelu kontrolnym
- Dostępna implementacja po stronie serwera w kilku językach (Node.js, Python, Go, PHP)
Conky
Conky to monitor systemu, pierwotnie stworzony dla X Window System. Obecnie działa na wielu platformach, takich jak X, Linux, Mac OS (z użyciem X Quartz) i większość systemów BSD.
Conky wyświetla informacje w postaci prostego tekstu, a także za pomocą pasków postępu i wykresów, z możliwością dostosowania czcionek i kolorów.
Funkcje Conky:
- Ponad 300 wbudowanych obiektów prezentujących stan systemu
- Prosty i przejrzysty interfejs
- Obsługa odtwarzaczy muzycznych, takich jak Audacious i MPD
- Obsługa protokołów POP3 i IMAP
- Możliwość wyświetlania dowolnych informacji za pomocą skryptów i zewnętrznych programów
Podsumowanie
Monitorowanie wydajności serwera to kluczowy element utrzymania ciągłości działania. Nieprawidłowo prowadzone monitorowanie może prowadzić do problemów z wydajnością i dostępnością systemów, co w efekcie może negatywnie wpływać na działalność firmy. Dlatego warto korzystać z narzędzi monitorujących, aby mieć pewność, że serwery działają poprawnie.
Alternatywnie, można rozważyć wykorzystanie rozwiązań monitorowania serwerów opartych na chmurze, które eliminują konieczność instalacji i zarządzania własnym oprogramowaniem monitorującym.
newsblog.pl