journalctl to narzędzie służące do przeglądania i zarządzania dziennikami systemowymi utworzonymi przez systemd-journald w systemach Linux, które korzystają z systemd jako systemu inicjowania i menedżera systemu.
W wielu współczesnych dystrybucjach Linuxa, takich jak Fedora, Ubuntu (od wersji 15.04), CentOS (od wersji 7) i wiele innych, systemd stał się standardowym systemem inicjowania. Jednym z komponentów systemd jest systemd-journald, który zbiera i przechowuje dzienniki systemowe.
Oto kilka rzeczy, które można zrobić za pomocą journalctl:
- Wyświetlanie wszystkich dzienników: Po prostu wpisz
journalctlbez dodatkowych argumentów. - Wyświetlanie dzienników dla konkretnego zakresu czasu: Można użyć argumentów
--sincei--until, aby określić zakres daty i czasu. - Wyświetlanie dzienników dla konkretnej usługi: Używając
-u(lub--unit), można ograniczyć wyjście do wpisów dla konkretnej jednostki systemd, na przykładjournalctl -u sshd. - Śledzenie dzienników w czasie rzeczywistym: Opcja
-f(skrót od „follow”) pozwala na śledzenie najnowszych wpisów w czasie rzeczywistym. - Zarządzanie przestrzenią na dysku: Możesz dostosowywać, ile miejsca na dysku zajmują dzienniki, usuwać stare wpisy itp.
journalctl oferuje wiele innych funkcji i opcji, które pozwalają na zaawansowane zarządzanie i przeglądanie dziennikami systemowymi.
Dam kilka przykładów jak z tego korzystać:
- Polecenie
journalctl -fsłuży do śledzenia najnowszych wpisów w dzienniku systemowym w czasie rzeczywistym na systemach korzystających z systemu dziennikowaniasystemd. - Polecenie
journalctl -f -u fail2banjest używane do monitorowania logów systemu dla usługi fail2ban w czasie rzeczywistym na systemach korzystających z systemu dziennikowania systemd. - Polecenie
journalctl -u fail2ban --since="2023-08-14 00:00:00" --until="2023-08-14 23:59:59"służy do wyświetlania wpisów dziennika systemowego dla konkretnego procesu (fail2ban w tym przypadku) z określonego zakresu daty i czasu.
Zarządzanie przestrzenią dyskową
systemd-journald przechowuje dzienniki w formie binarnej, a z czasem te dzienniki mogą zajmować coraz więcej miejsca na dysku, zwłaszcza jeśli system generuje dużą liczbę logów. Narzędzie journalctl i konfiguracja journald oferują różne sposoby zarządzania przestrzenią dyskową, którą dzienniki zajmują. Oto kilka sposobów, jak to zrobić:
- Ograniczenie miejsca, które dzienniki mogą zajmować na dysku: W pliku
/etc/systemd/journald.confmożna ustawić opcjęSystemKeepFreelubSystemKeepFree, aby określić, ile miejsca na dysku powinno zostać wolne lub ile miejsca dzienniki mogą maksymalnie zajmować. Na przykład, aby ograniczyć miejsce, które dzienniki mogą zajmować, do 1 GB, ustaw:SystemKeepFree=1GPo dokonaniu zmian w pliku konfiguracyjnym, musisz zrestartować usługęsystemd-journald:sudo systemctl restart systemd-journald - Usuwanie starych wpisów dziennika: Aby usunąć dzienniki starsze niż, powiedzmy, 2 dni, użyj:
sudo journalctl --vacuum-time=2dAby usunąć dzienniki, tak aby zachować tylko określoną ilość miejsca na dysku (na przykład zachować tylko 500M), użyj:sudo journalctl --vacuum-size=500M - Sprawdź ile miejsca zajmują aktualnie dzienniki: Aby zobaczyć, ile miejsca zajmują obecnie dzienniki:
sudo journalctl --disk-usage
Zarządzanie miejsce na dysku dla dzienników jest ważne, zwłaszcza na systemach, które generują dużą liczbę logów lub mają ograniczone miejsce na dysku. Powyższe narzędzia i konfiguracje pozwalają na elastyczne zarządzanie miejsce na dysku przeznaczonym dla dzienników systemowych.