Podstawowa praca z journald

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