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 (158)
      • AI (1)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (47)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (3)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (5)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Opencode – darmowe kredyty
    • Tunel SSH – zwrotny (remote forwading)
    • GNS3 – Interfejsy sieciowe
    • GNS3 – Konfiguracja urządzenia IOU (L2/L3)
    • Tunel GRE + EoIP na Cisco
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

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

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by