Podstawy pracy z journald
Journald — system rejestrowania używany w nowoczesnych systemach operacyjnych opartych na Linuksie do rejestrowania zdarzeń systemowych. Jego zadaniem jest zbieranie informacji o działaniu usług, aplikacji oraz procesów systemowych, co ułatwia administratorom monitorowanie stanu systemu i diagnozowanie problemów.
W odróżnieniu od tradycyjnych dzienników tekstowych, journald zapisuje dane w formacie binarnym. Pozwala to na przechowywanie logów w bardziej kompaktowej formie i efektywne zarządzanie nimi, ale jednocześnie takich dzienników nie można po prostu otworzyć w edytorze tekstu. Do ich przeglądania i analizy potrzebne są specjalne narzędzia.
W tym artykule omówimy, jak przeglądać dzienniki zapisane przez journald oraz jak je wyczyścić, aby odzyskać miejsce na dysku.
Jak przeglądać logi journal?
Do odczytu logów użyj polecenia journalctl:
- Wszystkie logi:
sudo journalctl
- Logi od ostatniego uruchomienia:
sudo journalctl -b
- Logi konkretnej usługi:
sudo journalctl -u nginx
- Logi z określonego dnia:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
- Wyświetlanie ostatnich n-wpisów (np. ostatnich 100):
sudo journalctl -n 100
- Filtrowanie według poziomów ważności (np. dla błędów):
sudo journalctl -p err
- Podgląd logów w odwrotnej kolejności, zaczynając od najnowszych (przydatne, gdy chcesz szybko zobaczyć najnowsze wpisy dziennika):
sudo journalctl -r
- Podgląd logów w czasie rzeczywistym (analogicznie do tail -f):
sudo journalctl -f
Te opcje można ze sobą łączyć. Na przykład, wyświetl wszystkie błędy usługi nginx dla 10 listopada 2024 r., pokazując tylko 10 ostatnich wpisów:
sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10
Jak wyczyścić journal
Jeśli logi zajmują zbyt dużo miejsca, można je wyczyścić za pomocą następujących poleceń:
- Czyszczenie starych logów (np. starszych niż 7 dni):
sudo journalctl --vacuum-time=7d
- Czyszczenie logów, które przekraczają określoną wielkość (np. 1 GB):
sudo journalctl --vacuum-size=1G
- Całkowite usunięcie wszystkich dzienników:
sudo journalctl --vacuum-files=0
Jak zmniejszyć rozmiar journal?
Domyślnie Journald może zajmować dużo miejsca na dysku, jeśli logi nie są ograniczone. Aby ograniczyć maksymalny rozmiar dziennika, otwórz plik konfiguracyjny journald.conf
:
sudo nano /etc/systemd/journald.conf
W tym pliku możesz skonfigurować następujące parametry:
- SystemMaxUse — maksymalny rozmiar dla wszystkich dzienników:
SystemMaxUse=1G
- RuntimeMaxUse — maksymalny rozmiar dla tymczasowych dzienników:
RuntimeMaxUse=500M
- MaxRetentionSec — maksymalny czas przechowywania dzienników:
MaxRetentionSec=1month
Ustaw odpowiednie wartości dla twojego systemu i potrzeb, a następnie zapisz plik za pomocą kombinacji klawiszy Ctrl + O i zamknij edytor klawiszami Ctrl + X.
Aby zastosować zmiany, uruchom ponownie usługę journald:
sudo systemctl restart systemd-journald
Można także skonfigurować przechowywanie dzienników w pamięci RAM lub całkowicie je wyłączyć. Obie opcje jednak nie są zalecane w środowisku produkcyjnym, ponieważ dziennik zawiera kluczowe informacje diagnostyczne. Dbanie o jego aktualność i poprawność ma istotne znaczenie dla prawidłowego monitorowania oraz diagnozowania procesów na serwerze.
Jeśli nadal chcesz włączyć przechowywanie dziennika w pamięci RAM, ustaw następującą wartość w pliku /etc/systemd/journald.conf
:
Storage=volatile
Aby całkowicie wyłączyć rejestrowanie, ustaw:
Storage=none