Sprawdzanie i monitorowanie zasobów systemowych

LINUX
Priorytet: Normalny Szkic

Zadanie 200: Sprawdzanie i monitorowanie zasobów systemowych

Wstęp

Monitorowanie zasobów systemowych jest kluczową umiejętnością administratora systemów Linux. Pozwala ono na identyfikację wąskich gardeł, diagnozowanie problemów z wydajnością oraz optymalizację działania serwerów i stacji roboczych.

Najważniejsze narzędzia:

  • top / htop: Interaktywne monitorowanie procesów i zasobów (CPU, RAM).
  • ps: Wyświetlanie informacji o bieżących procesach.
  • free: Sprawdzanie zużycia pamięci RAM i swap.
  • df: Informacje o wolnym miejscu na systemach plików.
  • du: Sprawdzanie rozmiaru plików i katalogów.
  • uptime: Czas działania systemu oraz obciążenie (load average).
  • vmstat: Statystyki pamięci wirtualnej, procesów, I/O i CPU.
  • iostat: Statystyki wejścia/wyjścia dla dysków.
  • netstat / ss: Monitorowanie połączeń sieciowych.

Część 1: Obowiązkowe zadania monitorowania

Zadanie 1: Interaktywne monitorowanie procesów (top/htop)

Uruchom narzędzie top lub (jeśli zainstalowane) htop. Zaobserwuj, które procesy zużywają najwięcej procesora.

  • W top użyj klawiszy M, aby posortować procesy po użyciu pamięci, oraz P, aby posortować po użyciu CPU.
  • Zamknij program klawiszem q.

Zadanie 2: Sprawdzanie pamięci RAM (free)

Wyświetl aktualne zużycie pamięci RAM w systemie w jednostkach czytelnych dla człowieka (megabajty/gigabajty).

free -h

Zadanie 3: Analiza miejsca na dyskach (df)

Sprawdź, ile wolnego miejsca pozostało na zamontowanych systemach plików. Użyj flagi -h (human-readable).

df -h

Zadanie 4: Rozmiar konkretnych katalogów (du)

Sprawdź, ile miejsca zajmuje katalog /var/log. Użyj parametrów, które pokażą sumaryczny rozmiar w czytelnym formacie.

sudo du -sh /var/log

Zadanie 5: Wyświetlanie procesów użytkownika (ps)

Wyświetl wszystkie procesy uruchomione przez Twojego aktualnego użytkownika.

ps -u $USER

Zadanie 6: Czas działania i obciążenie (uptime)

Sprawdź uptime systemu. Zinterpretuj trzy wartości "load average" (obciążenie z ostatniej 1, 5 i 15 minuty).

uptime

Zadanie 7: Monitorowanie w czasie rzeczywistym (vmstat)

Uruchom statystyki systemowe odświeżane co 2 sekundy, wykonaj 5 pomiarów.

vmstat 2 5

Zadanie 8: Aktywne połączenia sieciowe (ss)

Użyj narzędzia ss, aby wyświetlić listę wszystkich nasłuchujących portów TCP w systemie.

ss -tulpn

Zadanie 9: Śledzenie zapisu/odczytu dysku (iostat)

Jeśli masz zainstalowany pakiet sysstat, użyj iostat, aby sprawdzić obciążenie dysków.

iostat -xz 1 3

Zadanie 10: Prosty skrypt monitorujący

Stwórz plik monitor.sh, który po uruchomieniu wyświetli aktualną datę, uptime oraz wolną pamięć RAM. Nadaj mu uprawnienia do wykonywania.

cat <<EOF > monitor.sh
#!/bin/bash
echo "--- Raport Systemowy ---"
date
uptime
free -h
EOF
chmod +x monitor.sh
./monitor.sh

Część 2: Zadania samodzielne (do samodzielnego rozwiązania)

W poniższych zadaniach nie podano gotowych poleceń. Twoim zadaniem jest odnalezienie odpowiednich parametrów lub narzędzi w dokumentacji (man) lub internecie.

  1. Zadanie 1: Znajdź 5 procesów, które aktualnie zużywają najwięcej pamięci RAM i zapisz ich listę (nazwa procesu i PID) do pliku top_memory.txt.
  2. Zadanie 2: Wyświetl 10 największych plików w katalogu /var/log (lub innym wskazanym przez nauczyciela), sortując je od największego do najmniejszego.
  3. Zadanie 3: Sprawdź, jaki proces (nazwa i PID) nasłuchuje na porcie 22 (SSH) lub innym aktywnym porcie TCP w Twoim systemie.
  4. Zadanie 4: Wykorzystaj polecenie watch, aby monitorować w czasie rzeczywistym zmiany w rozmiarze wybranego pliku logów (np. /var/log/auth.log) co 3 sekundy.
  5. Zadanie 5: Znajdź "najstarszy" uruchomiony proces w systemie (ten, który działa najdłużej od momentu startu).
  6. Zadanie 6: Wyświetl statystyki wejścia/wyjścia (I/O) ograniczając wynik tylko do konkretnego urządzenia dyskowego (np. sda).
  7. Zadanie 7: Wyświetl aktualną temperaturę procesora, korzystając z informacji zawartych w wirtualnym systemie plików /sys.
  8. Zadanie 8: Sprawdź, czy w systemie znajdują się procesy w stanie "zombie". Jeśli tak, wypisz ich identyfikatory PID.
  9. Zadanie 9: Wyświetl listę wszystkich plików otwartych obecnie przez Twoją sesję powłoki (bash).
  10. Zadanie 10: Wyświetl informację o dacie i godzinie ostatniego restartu systemu oraz listę 5 ostatnich logowań użytkowników do systemu.

Git Help

git add .
git commit -m "Linux Zadanie 200: System Monitoring"