Podstawy terminala Podstawowy 35 min

Logi systemowe: journalctl i /var/log

Poznasz podstawowe sposoby przeglądania logów w Linuxie, pracę z journalctl oraz najważniejsze pliki w katalogu /var/log.

Wróć do listy lekcji

1. Krótka teoria

Logi to zapisy zdarzeń generowane przez system operacyjny, usługi i aplikacje. Dzięki nim administrator może sprawdzić, co działo się w systemie, kiedy wystąpił błąd, czy usługa uruchomiła się poprawnie oraz dlaczego aplikacja przestała działać. We współczesnych dystrybucjach Linuxa ważną rolę pełni systemd journal, który można przeglądać za pomocą komendy journalctl. Oprócz tego wiele logów znajduje się nadal w katalogu /var/log. Przykładowo logi systemowe mogą znajdować się w /var/log/messages, a logi serwera Nginx w /var/log/nginx/access.log i /var/log/nginx/error.log. Podstawowa analiza logów polega na sprawdzeniu najnowszych wpisów, filtrowaniu ich według usługi, czasu lub priorytetu oraz obserwowaniu logów na żywo podczas testowania działania systemu.

2. Przykłady komend

journalctl

Wyświetla logi z systemd journal.

$ journalctl
journalctl -n 50

Pokazuje ostatnie 50 wpisów z dziennika systemowego.

$ journalctl -n 50
journalctl -f

Pokazuje nowe wpisy logów na żywo.

$ journalctl -f
journalctl -u sshd

Wyświetla logi konkretnej usługi systemd, na przykład sshd.

$ journalctl -u sshd
journalctl -u example-app

Wyświetla logi przykładowej usługi aplikacyjnej.

$ journalctl -u example-app
journalctl -u example-app -f

Śledzi logi przykładowej usługi aplikacyjnej na żywo.

$ journalctl -u example-app -f
journalctl --since "today"

Pokazuje logi od początku bieżącego dnia.

$ journalctl --since "today"
journalctl --since "1 hour ago"

Pokazuje logi z ostatniej godziny.

$ journalctl --since "1 hour ago"
journalctl -p err

Pokazuje wpisy o priorytecie błędu i wyższym.

$ journalctl -p err
ls /var/log

Wyświetla pliki i katalogi z logami systemowymi.

$ ls /var/log
tail -n 50 /var/log/messages

Pokazuje ostatnie 50 linii z pliku logów systemowych.

$ tail -n 50 /var/log/messages
tail -f /var/log/messages

Śledzi dopisywane na bieżąco wpisy w pliku logów.

$ tail -f /var/log/messages
grep "error" /var/log/messages

Wyszukuje wpisy zawierające słowo error w pliku logów.

$ grep "error" /var/log/messages
tail -n 50 /var/log/nginx/access.log

Pokazuje ostatnie wpisy z logu dostępowego Nginx.

$ tail -n 50 /var/log/nginx/access.log
tail -n 50 /var/log/nginx/error.log

Pokazuje ostatnie wpisy z logu błędów Nginx.

$ tail -n 50 /var/log/nginx/error.log

3. Zadanie praktyczne

Wyświetl ostatnie wpisy z dziennika systemowego poleceniem journalctl -n 50. Następnie sprawdź logi wybranej usługi, na przykład journalctl -u sshd. Użyj journalctl --since "1 hour ago", aby ograniczyć wynik do ostatniej godziny. Potem sprawdź katalog /var/log poleceniem ls /var/log. Na końcu użyj tail -n 50 /var/log/messages oraz grep "error" /var/log/messages, aby przećwiczyć podstawowe przeglądanie i filtrowanie logów.

4. Typowe błędy

  • Czytanie całego dziennika bez ograniczenia liczby wpisów lub zakresu czasu.
  • Mylenie logów systemd journal z plikami znajdującymi się w /var/log.
  • Pomijanie opcji -u przy diagnozowaniu konkretnej usługi systemd.
  • Brak użycia -f podczas obserwowania logów na żywo.
  • Zakładanie, że każdy błąd aplikacji będzie widoczny tylko w jednym miejscu.
  • Sprawdzanie wyłącznie logów aplikacji i pomijanie logów serwera WWW.
  • Wyszukiwanie tylko słowa error i ignorowanie innych komunikatów ostrzegawczych.
  • Nieodróżnianie logu dostępowego od logu błędów w Nginx.

5. Podsumowanie

Logi są jednym z najważniejszych źródeł informacji podczas administrowania Linuxem. journalctl pozwala przeglądać dziennik systemd, filtrować wpisy według usługi, czasu i priorytetu oraz obserwować logi na żywo. Katalog /var/log zawiera wiele klasycznych plików logów, takich jak /var/log/messages oraz logi usług, na przykład /var/log/nginx/access.log i /var/log/nginx/error.log. W praktyce diagnostyka problemów często zaczyna się właśnie od sprawdzenia najnowszych wpisów w logach.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie