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
journalctl
bez dodatkowych argumentów. - Wyświetlanie dzienników dla konkretnego zakresu czasu: Można użyć argumentów
--since
i--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 -f
służy do śledzenia najnowszych wpisów w dzienniku systemowym w czasie rzeczywistym na systemach korzystających z systemu dziennikowaniasystemd
. - Polecenie
journalctl -f -u fail2ban
jest 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.conf
można ustawić opcjęSystemKeepFree
lubSystemKeepFree
, 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=1G
Po 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=2d
Aby 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.