Categories: Linux

Journalctl

Pierwszy wpis na blogu zawsze jest trudny. Czym jest blog? O czym chcę pisać? Te i podobne pytania nasuwają się w tej sytuacji. Ale odpowiadając, blog jest czymś w rodzaju dziennika internetowego, a pisać chcę o Linuksie i sprawach z nim związanych. Skoro już mowa o dziennikach i Linuksach to nie można nie wspomnieć o journald. Journald to usługa systemd odpowiedzialna za logi w Linuksie, zastąpiła starszy syslog (no prawie, bo w niektórych miejscach wciąż go można spotkać). W tym wpisie przyjrzymy się journalctl – narzędziu do przeglądania logów systemowych przechwytywanych przez journald.

Podstawowe polecenia

journalctl – to najprostszy sposób użycia journalctl, polecenie wyświetli wszystkie logi od początku. Ani to wygodne, ani przydatne, logów jest bardzo dużo i często sięgają, zależnie od instalacji i konfiguracji kilku miesięcy czy nawet lat wstecz. Na szczęście journalctl posiada rozbudowane możliwości filtracji wyników.

journalctl -e – wyświetla dzienniki od tyłu, wpierw najnowsze wpisy.

journalctl -n 20 – wyświetlenie ostatnich 20 linii, w ten sposób można kontrolować ile ostatnich linii ma wyświetlić journalctl.

journalctl -u sshd – wyświetlenie logów konkretnej usługi, tutaj sshd. Jeśli chcesz wyświetlić logi innej usługi, podajesz nazwę tej usługi.

journalctl -b – logi z obecnego uruchomienia systemu, można także wyświetlić logi z poprzednich uruchomień, np. journalctl -b -1 pokaże logi z poprzedniego uruchomienia, journalctl -b -5 da logi 5 uruchomień wstecz. Listę wszystkich uruchomień systemu, jakie pamięta journald wypiszesz poleceniem journalctl --list-boots.

journalctl -f – podgląd logów na żywo, przydatne jeśli jakiś konkretny program powoduje błąd i łatwo możesz go odtworzyć. Zamiast szukać w logach, odpalasz to polecenie, wywołujesz błąd i patrzysz co nie gra.

journalctl -x – logi z dodatkowymi informacjami, zależnie od implementacji w danej dystrybucji i tego, którego programu/usługi dodatkowe informacje mogą tłumaczyć poszczególne wpisy lub proponować rozwiązanie danego problemu.

journalctl -p 3 – wyświetlenie informacji o konkretnym priorytecie, tu 3, error. Można także wyświetlić informacje z zakresu priorytetów, poszczególne priorytety wystarczy wtedy oddzielić dwoma kropkami np. journalctl -p crit..warning, wyświetlenie logów o priorytetach od 2 do 4. Warto tu dodać, że do poszczególnych priorytetów można się odwoływać po numerach albo po nazwach. Listę dostępnych wartości wraz z krótkim opisem przedstawia tabela:

NumerAlternatywna nazwaOpis
0emergKrtyczny błąd, system najprawdopodobniej nie nadaje się do użytku.
1alertAlarm, system napotkał poważny błąd.
2critKrytyczny błąd, zwykle dotyczy serwera wyświetlania lub aplikacji, które niespodziewanie zakończyły swoje działanie.
3errBłąd, zwykle aplikacji – program albo nie działa w wyniku tego błędu albo nie działają niektóre jego funkcje.
4warningOstrzeżenie – program napotkał coś co w przyszłość może sprawić problemy, czasem jest to przyczyna, że coś nie działa.
5noticeOgłoszenie – journald spotkał coś nietypowego jednak nie ma to wpływu na działanie.
6infoInformacje – zwykłe informacje, że coś poprawnie się uruchomiło, zakończyło itp.
7debugPoziom debugowania, zawiera informacje przydatne programistom.
Priorytety poszczególnych wpisów w journalctl

journalctl --since "2021-01-22 15:16:00" --until "2021-01-28 11:18:00" – wyświetlenie logów z konkretnego przedziału dat. Nie ogranicza się to tylko do dat, można również wyświetlić logi z konkretnego przedziału godzin – podajesz tylko godziny, journalctl automatycznie założy, że chodzi o obecną datę.

Podane parametry można, a nawet powinno się łączyć jeśli chcesz otrzymać bardziej precyzyjne wyniki. Oto przykład, którego rozszyfrowanie pozostawiam wam:

journalctl -xe -u sddm -p 5 --since "2021-02-11 14:15:00" --until "2021-02-22 18:30:00"

Bonus

Journalctl może posłużyć nie tylko do przeglądania logów, ale także do podstawowego zarządzania nimi. Oto dodatkowe komendy, które mogą być przydatne.

journalctl --disk-usage – wyświetli informacje o tym, ile zajmują logi na dysku.

journalctl --vacuum-time=4weeks – usunie logi starsze niż 4 tygodnie. Natomiast journalctl --vacuum-size=200M ograniczy bieżący rozmiar logów do 200 MB. Przydatne gdy pilnie potrzeba zwolnić miejsce na dysku, jednak jeśli chcesz trwalszego rozwiązania, warto ustawić to w /etc/systemd/journald.conf – w tym układzie journald sam zadba o właściwy rozmiar logów.

To oczywiście nie wszystko, polecam przejrzeć journalctl --help oraz man journalctl – tam znajdziesz opis wszystkich możliwości journalctl.

Article info



Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *