- umon (μMon) – lekki monitor systemu CPU/RAM/HDD/LAN
- Do czego służy umon?
- Jak to działa – mechanizm wewnętrzny
- Wymagania
- Wersja Python
- Wersja C (Windows)
- Instalacja i uruchomienie
- Python
- C (Windows)
- Opcje wiersza poleceń – szczegółowy opis
- Pomoc
- Wybór wyświetlanych danych
- Dostosowanie wyświetlania
- Przykłady użycia
- 1. Domyślne uruchomienie (CPU, RAM, Dyski, sieć)
- 2. Monitorowanie tylko CPU z listą rdzeni
- 3. Monitorowanie sieci dla konkretnego interfejsu
- 4. CPU z logowaniem do CSV i interwałem 500 ms
- 5. Wyświetlenie informacji o systemie
- 6. Wersja C z interwałem 1 sekunda i logowaniem
- 7. Wyświetlenie listy interfejsów sieciowych
- 8. Tryb monochromatyczny
- Kodowanie kolorami
- Różnice między wersją Python a C
- Logowanie do CSV
- Najczęstsze problemy i ich rozwiązania
- Zatrzymywanie programu
- Podsumowanie
umon (μMon) – lekki monitor systemu CPU/RAM/HDD/LAN
umon (MicroMon) to lekki monitor systemu w stylu htop, dostępny w dwóch implementacjach: Python oraz C. Narzędzie dostarcza w czasie rzeczywistym informacji o wykorzystaniu CPU, pamięci RAM i SWAP, dysków oraz aktywności sieciowej bezpośrednio w terminalu. Jest proste, wydajne, przenośne i w pełni konfigurowalne za pomocą opcji wiersza poleceń.
GitHub: github.com/IgorBrzezek/umon
Do czego służy umon?
Program pozwala w prosty i czytelny sposób obserwować obciążenie systemu bez konieczności uruchamiania ciężkich narzędzi graficznych czy rozbudowanych monitorów. umon sprawdza się w wielu scenariuszach:
- Diagnostyka wydajności – szybkie sprawdzenie, dlaczego system działa wolno.
- Monitorowanie serwerów – lekki monitoring w sesji SSH.
- Testy obciążeniowe – obserwacja wpływu aplikacji na zasoby w czasie rzeczywistym.
- Rejestracja danych – eksport danych do CSV w celu późniejszej analizy.
- Administracja systemem – podgląd użycia CPU, pamięci, dysków i sieci w jednym miejscu.
Jak to działa – mechanizm wewnętrzny
Po uruchomieniu umon przechodzi w pętlę monitorującą z konfigurowalnym interwałem odświeżania (domyślnie 250 ms). W każdej iteracji program:
- Pobiera dane o CPU – korzysta z
psutil.cpu_percent()do odczytu całkowitego wykorzystania CPU oraz użycia poszczególnych rdzeni. Dla stabilności wyniki są uśredniane z kilku próbek (domyślnie 3). - Pobiera dane o pamięci – odczytuje statystyki RAM i SWAP przez
psutil.virtual_memory()ipsutil.swap_memory(). - Pobiera dane o dyskach – skanuje wszystkie zamontowane partycje przez
psutil.disk_partitions()ipsutil.disk_usage(). - Pobiera dane o sieci – odczytuje liczniki wysłanych i odebranych bajtów przez
psutil.net_io_counters(pernic=True)i oblicza prędkość na podstawie różnicy między próbkami. - Wyświetla dane – rysuje kolorowe paski postępu ASCII w terminalu, używając sekwencji ANSI. Program przełącza się w alternatywny bufor ekranu, aby uniknąć scrollowania terminala.
Program kończy działanie po naciśnięciu Ctrl+C, przywracając oryginalny bufor ekranu i kursor.
Wymagania
Wersja Python
- Python 3 – interpreter Python w wersji 3.
- Biblioteka psutil – niezbędna do odczytu statystyk systemowych. Instalacja:
pip install psutil. - Biblioteka colorama – opcjonalna, zalecana na Windows do obsługi kolorów ANSI. Instalacja:
pip install colorama.
Wersja C (Windows)
- Windows 10 (wersja 1511 lub nowsza) – do obsługi kolorów ANSI.
- Żadnych zewnętrznych bibliotek – plik wykonywalny jest statycznie linkowany.
- Do kompilacji: MinGW-w64, Visual Studio lub krzyżowe kompilowanie z Linuxa.
Instalacja i uruchomienie
Python
Wystarczy pobrać plik umon.py z repozytorium i uruchomić:
pip install psutil colorama python umon.py [opcje]
C (Windows)
Pobrać skompilowany plik umon.exe lub skompilować samodzielnie:
gcc -O2 -Wall -static -o umon.exe umon_win.c -liphlpapi -lpsapi -lnetapi32 -ladvapi32 -lws2_32 umon.exe [opcje]
Opcje wiersza poleceń – szczegółowy opis
Pomoc
| Opcja | Opis |
|---|---|
-h |
Krótka, jednoliniowa pomoc. |
--help |
Rozszerzona pomoc z przykładami. |
Wybór wyświetlanych danych
| Opcja | Opis |
|---|---|
--cpu |
Wyświetla tylko informacje o CPU. |
--cpulist |
Wyświetla rdzenie CPU jako pionową listę z indywidualnymi paskami postępu. |
--mem |
Wyświetla tylko informacje o pamięci RAM i SWAP. |
--disks |
Wyświetla tylko użycie dysków dla wszystkich zamontowanych partycji. |
--net [INTERFEJS] |
Wyświetla tylko informacje o sieci. Opcjonalnie można podać nazwę interfejsu (np. –net Ethernet). |
--netlist |
Wyświetla listę interfejsów sieciowych i kończy działanie. |
Dostosowanie wyświetlania
| Opcja | Opis | Domyślnie |
|---|---|---|
--mono |
Tryb monochromatyczny – wyłącza kolory ANSI. | kolory włączone |
--interval MS |
Interwał odświeżania w milisekundach (minimum 50 ms). | 250 ms |
--log NAZWA.csv |
Zapisuje dane do pliku CSV przy każdym odświeżeniu. | brak |
--sysinfo |
Wyświetla szczegółowe informacje o systemie i kończy działanie. | – |
Przykłady użycia
1. Domyślne uruchomienie (CPU, RAM, Dyski, sieć)
python umon.py
Wyświetla wszystkie dostępne statystyki z kolorowymi paskami postępu, odświeżane co 250 ms.
2. Monitorowanie tylko CPU z listą rdzeni
python umon.py --cpulist
Pokazuje każdy rdzeń CPU w osobnej linii z indywidualnym paskiem postępu. Przydatne na maszynach z wieloma rdzeniami.
3. Monitorowanie sieci dla konkretnego interfejsu
python umon.py --net Ethernet
Wyświetla tylko prędkość pobierania (DN) i wysyłania (UP) dla interfejsu Ethernet z paskami postępu.
4. CPU z logowaniem do CSV i interwałem 500 ms
python umon.py --cpu --interval 500 --log cpu_data.csv
Monitoruje tylko CPU z odświeżaniem co 500 ms i zapisuje wszystkie odczyty do pliku CSV.
5. Wyświetlenie informacji o systemie
python umon.py --sysinfo
Pokazuje szczegółowe dane: wersję OS, liczbę rdzeni fizycznych i logicznych, częstotliwość CPU, całkowitą i dostępną pamięć RAM, informacje o SWAPie.
6. Wersja C z interwałem 1 sekunda i logowaniem
umon.exe --cpu --mem --interval 1000 --log performance.csv
Samodzielny plik wykonywalny monitorujący CPU i pamięć co sekundę z zapisem do pliku CSV.
7. Wyświetlenie listy interfejsów sieciowych
python umon.py --netlist
Pokazuje wszystkie interfejsy sieciowe z adresami IP (IPv4, IPv6), adresem MAC, statusem, szybkością łącza i MTU, po czym kończy działanie.
8. Tryb monochromatyczny
python umon.py --mono
Uruchamia monitor bez kolorów ANSI – przydatne na terminalach, które nie obsługują sekwencji ANSI.
Kodowanie kolorami
Oba wydania używają kodowania kolorami dla łatwej interpretacji wizualnej:
- Zielony – niskie użycie (poniżej 33%): system jest zdrowy.
- Żółty – średnie użycie (34-66%): monitorować uważnie.
- Czerwony – wysokie użycie (powyżej 66%): wymaga uwagi.
Różnice między wersją Python a C
| Cecha | Python | C (Windows) |
|---|---|---|
| Zależności | psutil, colorama | Brak (statycznie linkowany) |
| Systemy | Linux, macOS, Windows | Windows 10+ |
| Rozmiar pliku | ~25 KB (kod) | ~100-200 KB (EXE) |
| Wydajność | Interpretowany | Natywny, skompilowany |
| Antymigotanie | Alternatywny bufor ekranu | Bezpośrednie API konsoli Windows |
| Wersja | 0.0.3 | 0.0.4 |
Poza tymi różnicami technicznymi obie wersje oferują ten sam zestaw funkcji i opcji.
Logowanie do CSV
Opcja --log pozwala zapisywać dane monitoringowe do pliku CSV do późniejszej analizy. Log zawiera:
- Znacznik czasowy dla każdego odczytu.
- Procentowe użycie CPU (całkowite i na rdzeń).
- Użycie pamięci RAM i SWAP.
- Użycie dysku dla każdej zamontowanej partycji.
- Prędkości sieciowe (RX/TX) dla każdego interfejsu.
Najczęstsze problemy i ich rozwiązania
- „Error: psutil is required” – nie zainstalowano biblioteki
psutil. Wykonajpip install psutil. - Brak kolorów na Windows – zainstaluj
colorama(pip install colorama) lub użyj terminala Windows Terminal zamiast starego Command Prompt. - Kolor nie działa w wersji C – system Windows musi być w wersji 1511 lub nowszej. Użyj opcji
--monodla trybu monochromatycznego. - Monitor sieci pokazuje „Waiting for first sample…” – to normalne. Monitorowanie sieci wymaga co najmniej dwóch próbek do obliczenia prędkości. Komunikat zniknie po pierwszym odświeżeniu.
- Wartości CPU skaczą – program domyślnie uśrednia wyniki z 3 próbek dla stabilności. Możesz zwiększyć liczbę próbek, modyfikując parametr
samplesw kodzie.
Zatrzymywanie programu
Naciśnij Ctrl+C w oknie terminala. Program przywraca oryginalny bufor ekranu, pokazuje kursor i kończy działanie. Jeśli logowanie do CSV jest włączone, plik CSV jest bezpiecznie zamykany.
Podsumowanie
umon (MicroMon) to lekkie, a jednocześnie funkcjonalne narzędzie do monitorowania zasobów systemu w czasie rzeczywistym. Dzięki dwóm implementacjom (Python i C) sprawdzi się zarówno w codziennej pracy administratora, jak i w zautomatyzowanych skryptach monitorujących. Bogaty zestaw opcji (selektywny wybór danych, konfigurowalny interwał, logowanie do CSV, kodowanie kolorami) czyni go uniwersalnym rozwiązaniem do diagnostyki i monitorowania systemów.
Wersja C oferuje dodatkowo całkowitą niezależność – pojedynczy plik wykonywalny bez żadnych zależności, idealny do przenośnego monitorowania na systemach Windows. Źródła: github.com/IgorBrzezek/umon.
