Как посмотреть логи системы (journalctl, /var/log)?

В systemd-системах логи сервисов и ядра удобно смотреть через journalctl. Файловые логи обычно находятся в /var/log; для просмотра конкретного файла используют less, tail и grep.
Подробный ответ

Команда journalctl

journalctl читает системный журнал systemd. Через него можно посмотреть события всей системы, логи конкретного сервиса, сообщения текущей загрузки и записи за заданный период.

journalctl
journalctl -u nginx
journalctl -u nginx -f
journalctl -b
journalctl --since "1 hour ago"
journalctl -p err
  • -u nginx — журнал конкретного systemd-сервиса;

  • -f — следить за новыми записями в реальном времени;

  • -b — сообщения текущей загрузки системы;

  • -p err — сообщения уровня error и выше.

Каталог /var/log

Многие сервисы сохраняют логи в файлы внутри /var/log. Точный набор файлов зависит от дистрибутива и настроек сервиса.

ls -lah /var/log
ls -lah /var/log/nginx
less /var/log/syslog
tail -n 100 /var/log/auth.log
tail -f /var/log/nginx/access.log

Поиск ошибок

grep -i "error" /var/log/nginx/error.log
grep -iE "failed|error|exception" /var/log/syslog

Логи Docker

Если сервис запущен в контейнере, полезно смотреть логи самого контейнера, а не только системный журнал.

docker logs api
docker logs -f api
docker compose logs -f web

Как ответить на собеседовании

В systemd-системах использую journalctl, например journalctl -u nginx -f для live-логов сервиса. Файловые логи смотрю в /var/log через less, tail -f и grep. Для Docker-сервисов также проверяю docker logs.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге