ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

microMon – prosty monitoring zasobów

Napisane przez Igor Brzeżek on 16 czerwca 2026
Napisane w: Programowanie.

Contents
  1. umon (μMon) – lekki monitor systemu CPU/RAM/HDD/LAN
  2. Do czego służy umon?
  3. Jak to działa – mechanizm wewnętrzny
  4. Wymagania
  5. Wersja Python
  6. Wersja C (Windows)
  7. Instalacja i uruchomienie
  8. Python
  9. C (Windows)
  10. Opcje wiersza poleceń – szczegółowy opis
  11. Pomoc
  12. Wybór wyświetlanych danych
  13. Dostosowanie wyświetlania
  14. Przykłady użycia
  15. 1. Domyślne uruchomienie (CPU, RAM, Dyski, sieć)
  16. 2. Monitorowanie tylko CPU z listą rdzeni
  17. 3. Monitorowanie sieci dla konkretnego interfejsu
  18. 4. CPU z logowaniem do CSV i interwałem 500 ms
  19. 5. Wyświetlenie informacji o systemie
  20. 6. Wersja C z interwałem 1 sekunda i logowaniem
  21. 7. Wyświetlenie listy interfejsów sieciowych
  22. 8. Tryb monochromatyczny
  23. Kodowanie kolorami
  24. Różnice między wersją Python a C
  25. Logowanie do CSV
  26. Najczęstsze problemy i ich rozwiązania
  27. Zatrzymywanie programu
  28. 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:

  1. 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).
  2. Pobiera dane o pamięci – odczytuje statystyki RAM i SWAP przez psutil.virtual_memory() i psutil.swap_memory().
  3. Pobiera dane o dyskach – skanuje wszystkie zamontowane partycje przez psutil.disk_partitions() i psutil.disk_usage().
  4. 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.
  5. 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. Wykonaj pip 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 --mono dla 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 samples w 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.

Nawigacja

← Pobieranie audio + video z YouTube
SoE czyli Serial over Ethernet →
  • Szukaj

  • Kategorie

    • IT ogólnie (147)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (35)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (3)
        • WLAN / WiFi (5)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • WiFi (2)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • WinScreen czyli terminal z wirtualnymi oknami
    • Style Mover czyli przenoszenie stylów HTML
    • Generator obrazów AI za pomocą API
    • Generator modulacji AM i FM
    • Generator plików tekstowych i binarnych
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y