Przejdź do głównej zawartości

Jeden post z tagiem "journald"

Wyświetl wszystkie tagi

Podstawy pracy z journald

· 2 min aby przeczytać
Customer Care Engineer

przeczytaj-dzienniki-i-dowiedz-się-jak-je-wyczyścić

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