Перейти к содержимому

Журналы: journalctl и /var/log

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

Содержание

Почти на любой вопрос «почему не работает» ответ — в журнале. В современных Linux его ведёт systemd: сообщения служб, ядра и самой системы собраны в одном месте и читаются командой journalctl.

Журнал службы

sudo journalctl -u nginx -n 50 --no-pager    # последние 50 строк
sudo journalctl -u nginx -f                   # следить за новыми строками

-u — служба, -f — показывать новые строки по мере появления, выход — Ctrl+C. Без -n журнал открывается целиком с самого начала: листать — пробел и стрелки, G — в конец, / — поиск, q — выход. -e сразу откроет конец журнала.

Несколько служб сразу: -u nginx -u php8.4-fpm. Имя службы подскажет systemctl list-units --type=service.

За какое время

sudo journalctl --since "1 hour ago"
sudo journalctl --since today
sudo journalctl --since "2026-10-12 09:00" --until "2026-10-12 10:00"

Время — по часовому поясу сервера, его покажет timedatectl.

Только ошибки

sudo journalctl -p err -b

-p err — ошибки и всё, что серьёзнее; -p warning — ещё и предупреждения. -b — с последней загрузки.

Ядро и прошлые загрузки

sudo journalctl -k                # сообщения ядра: диски, сеть, нехватка памяти
sudo journalctl --list-boots      # список загрузок
sudo journalctl -b -1 -e          # конец прошлой загрузки

Последняя команда помогает понять, почему сервер перезагрузился: смотрите, что было в журнале перед концом.

Если в --list-boots только одна загрузка, журнал хранится в памяти и пропадает при перезагрузке. Так по умолчанию в AlmaLinux: там всё, что было до перезагрузки, остаётся в /var/log/messages. Чтобы и журнал systemd сохранялся на диск:

sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald

Поиск по тексту

sudo journalctl -u ssh --since today | grep -i 'failed password'

Так видно, кто подбирал пароль к SSH. Служба SSH называется ssh в Ubuntu и Debian и sshd в AlmaLinux. Если таких строк много — пора защитить сервер.

Файлы в /var/log

Многие программы по-прежнему пишут журналы в обычные файлы:

ФайлЧто в нём
/var/log/nginx/error.log, access.logошибки и запросы nginx
/var/log/apache2/ — Ubuntu, Debian; /var/log/httpd/ — AlmaLinuxApache
/var/log/syslog, /var/log/auth.log — Ubuntuобщий журнал и входы в систему
/var/log/messages, /var/log/secure — AlmaLinuxто же в AlmaLinux
/var/log/apt/history.log, /var/log/dnf.logчто ставили и обновляли

В Debian 13 файлов syslog и auth.log нет. Если нужного файла нет и в вашей системе, смотрите journalctl: там всё то же самое.

Следить за файлом — sudo tail -f /var/log/nginx/error.log. Старые журналы переименовываются и сжимаются — error.log.1, error.log.2.gz, — этим раз в день или неделю занимается logrotate.

Сколько места занимает журнал

journalctl --disk-usage
sudo journalctl --vacuum-size=500M     # оставить последние 500 МБ
sudo journalctl --vacuum-time=30d      # или последние 30 дней

Сам журнал занимает не больше 10 % диска и не больше 4 ГБ. Как задать предел меньше — в статье Закончилось место на диске.

FreeBSD

Во FreeBSD systemd нет: журналы — обычные файлы. Общий — /var/log/messages, входы — /var/log/auth.log. Подробнее — в справочнике FreeBSD.

Не нашли ответ? Напишите в поддержку — подскажем.