Przejdź do głównej zawartości

Podstawowa praca z journald

· 2 min aby przeczytać
Customer Care Engineer

read-journald-logs-and-learn-how-to-clear-it

Journald to system logowania używany w nowoczesnych systemach operacyjnych opartych na Linuksie do zapisywania zdarzeń systemowych. Zbiera informacje o działaniu różnych usług, aplikacji i procesów systemowych, aby pomóc administratorom monitorować stan systemu i diagnozować błędy.

W przeciwieństwie do standardowych logów tekstowych, journald przechowuje dane w formacie binarnym. Pozwala to na bardziej kompaktowe przechowywanie logów i efektywniejsze zarządzanie nimi, ale jednocześnie nie można po prostu otworzyć tych logów w edytorze tekstu. Do ich przeglądania i analizy potrzebne są specjalne narzędzia.

W tym artykule przyjrzymy się, jak przeglądać wpisy utrzymywane przez journald i jak je czyścić, aby zwolnić miejsce na dysku.


Jak przeglądać logi journald

Aby odczytać logi, użyj polecenia journalctl:

  • Wszystkie logi:
sudo journalctl
  • Logi od ostatniego restartu:
sudo journalctl -b
  • Logi dla konkretnej usługi:
sudo journalctl -u nginx
  • Logi z konkretnego dnia:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
  • Wyświetl ostatnie n wpisów (np. ostatnie 100):
sudo journalctl -n 100
  • Filtruj według poziomu priorytetu (np. dla błędów):
sudo journalctl -p err
  • Wyświetl wpisy dziennika w odwrotnej kolejności, zaczynając od najnowszych (przydatne, gdy chcesz szybko zobaczyć najnowsze wpisy logów):
sudo journalctl -r
  • Wyświetl wpisy dziennika w czasie rzeczywistym (podobne do tail -f):
sudo journalctl -f

Można połączyć te opcje. Na przykład, aby wyświetlić wszystkie błędy z usługi nginx z dnia 10 listopada 2024, pokazując tylko ostatnie 10 wpisów:

sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10

Jak czyścić dziennik

Jeśli logi zajmują zbyt dużo miejsca, można je oczyścić za pomocą następujących poleceń:

  • Wyczyść stare logi (np. starsze niż 7 dni):
sudo journalctl --vacuum-time=7d
  • Wyczyść logi przekraczające określoną wielkość (np. 1 GB):
sudo journalctl --vacuum-size=1G
  • Całkowicie wyczyść wszystkie logi:
sudo journalctl --vacuum-files=0

Jak zmniejszyć rozmiar dziennika

Domyślnie journald może zajmować dużo miejsca na dysku, jeśli logi nie są ograniczone. Aby ustawić maksymalny rozmiar logów, otwórz plik konfiguracyjny journald.conf:

sudo nano /etc/systemd/journald.conf

W tym pliku można skonfigurować następujące parametry:

  • SystemMaxUse – maksymalny rozmiar dla wszystkich dzienników:
SystemMaxUse=1G
  • RuntimeMaxUse – maksymalny rozmiar dla dzienników tymczasowych:
RuntimeMaxUse=500M
  • MaxRetentionSec – maksymalny czas przechowywania logów:
MaxRetentionSec=1month

Ustaw odpowiednie wartości dla swojego systemu i potrzeb, a następnie zapisz plik za pomocą Ctrl + O i wyjdź z edytora za pomocą Ctrl + X.

Aby zastosować zmiany, zrestartuj usługę journald:

sudo systemctl restart systemd-journald

Można również włączyć logowanie do pamięci RAM, a nawet całkowicie je wyłączyć. Żadna z tych opcji nie jest zalecana w środowisku produkcyjnym, ponieważ dziennik zawiera ważne informacje diagnostyczne. Jego dokładność i trafność są kluczowe dla prawidłowej diagnostyki procesów na serwerze.

Jeśli mimo to chcesz aktywować przechowywanie dziennika w pamięci RAM, ustaw następującą wartość w /etc/systemd/journald.conf:

Storage=volatile

Aby całkowicie wyłączyć logowanie, określ:

Storage=none