Просмотр и очистка журналов systemd в Ubuntu
Практическая работа с journalctl в Ubuntu: просмотр системных журналов, фильтрация, поиск ошибок, контроль занимаемого места и безопасная очистка.
Ubuntu использует systemd-journald для сбора сообщений ядра, системных сервисов и приложений. Команда journalctl позволяет просматривать эти журналы, фильтровать события и контролировать занимаемое ими место.
В этой инструкции рассматривается только работа с журналом systemd: просмотр, фильтрация, контроль размера и безопасная очистка.
Проверено на: Ubuntu Server 24.04 LTS
Уровень сложности: начальный
Время выполнения: около 10–15 минут
Требуемый доступ: пользователь с правамиsudo
Что будет рассмотрено
В статье показано, как:
- просматривать системный журнал;
- фильтровать события по времени, сервису и приоритету;
- наблюдать новые сообщения в реальном времени;
- проверять объём журнала;
- очищать старые архивные записи;
- ограничивать максимальный размер журнала.
Проверка службы journald
Проверьте состояние службы:
systemctl status systemd-journald --no-pager
Ожидаемый статус:
Active: active (running)
Проверьте последние сообщения службы:
sudo journalctl -u systemd-journald -n 50 --no-pager
Просмотр всего журнала
Открыть журнал:
sudo journalctl
Навигация выполняется клавишами:
↑ и ↓ — перемещение по строкам
PageUp — страница вверх
PageDown — страница вниз
G — перейти в конец
g — перейти в начало
q — выйти
Показать последние 100 сообщений без интерактивного режима:
sudo journalctl -n 100 --no-pager
Просмотр журнала текущей загрузки
Показать сообщения после последнего запуска системы:
sudo journalctl -b
Без pager:
sudo journalctl -b --no-pager
Показать сообщения предыдущей загрузки:
sudo journalctl -b -1
Посмотреть список доступных загрузок:
sudo journalctl --list-boots
Фильтрация по времени
Сообщения за последний час:
sudo journalctl --since "1 hour ago"
Сообщения за текущий день:
sudo journalctl --since today
За определённый период:
sudo journalctl --since "2026-07-26 10:00:00" --until "2026-07-26 12:00:00"
Используйте собственные дату и время.
Просмотр журнала сервиса
Для конкретного systemd-сервиса используется параметр -u.
Пример для SSH:
sudo journalctl -u ssh
Последние 100 сообщений:
sudo journalctl -u ssh -n 100 --no-pager
Сообщения за последний час:
sudo journalctl -u ssh --since "1 hour ago" --no-pager
Наблюдение в реальном времени:
sudo journalctl -u ssh -f
Вместо ssh укажите нужный unit:
nginx
docker
postgresql
fail2ban
Просмотр сообщений ядра
Показать журнал ядра:
sudo journalctl -k
Только сообщения текущей загрузки:
sudo journalctl -k -b
Последние 100 сообщений:
sudo journalctl -k -n 100 --no-pager
Фильтрация по приоритету
Приоритеты systemd journal:
0 — emerg
1 — alert
2 — crit
3 — err
4 — warning
5 — notice
6 — info
7 — debug
Ошибки текущей загрузки:
sudo journalctl -b -p err --no-pager
Предупреждения и более серьёзные сообщения:
sudo journalctl -b -p warning --no-pager
Только критические ошибки:
sudo journalctl -b -p crit --no-pager
Поиск по тексту
Поиск ошибок:
sudo journalctl -b --no-pager |
grep -i error
Поиск нескольких типов событий:
sudo journalctl -b --no-pager |
grep -iE 'error|failed|timeout|denied'
Для SSH:
sudo journalctl -u ssh --no-pager |
grep -iE 'failed|invalid user|accepted'
Наблюдение в реальном времени
Все новые сообщения:
sudo journalctl -f
Сообщения конкретного сервиса:
sudo journalctl -u SERVICE_NAME -f
Остановить просмотр:
Ctrl+C
Форматы вывода
Краткий вывод:
sudo journalctl -n 20 -o short
ISO-время:
sudo journalctl -n 20 -o short-iso
Подробные поля записи:
sudo journalctl -n 1 -o verbose
JSON:
sudo journalctl -n 10 -o json-pretty
Проверка занимаемого места
Покажите общий объём журнала:
sudo journalctl --disk-usage
Пример:
Archived and active journals take up 512.0M in the file system.
Проверьте каталоги хранения:
sudo du -sh /var/log/journal /run/log/journal 2>/dev/null
Где хранится журнал
Основные варианты:
/var/log/journal — постоянное хранение на диске
/run/log/journal — временное хранение до перезагрузки
Проверьте текущие каталоги:
sudo ls -ld /var/log/journal /run/log/journal 2>/dev/null
Настройка хранения определяется параметром Storage= в конфигурации journald.
Ротация файлов журнала
Перед очисткой рекомендуется принудительно закрыть текущие файлы и начать новые:
sudo journalctl --rotate
После этого старые файлы становятся архивными и могут быть удалены командами vacuum.
Очистка по времени
Удалить архивные журналы старше 14 дней:
sudo journalctl --vacuum-time=14d
Удалить архивы старше 7 дней:
sudo journalctl --vacuum-time=7d
После очистки проверьте объём:
sudo journalctl --disk-usage
Очистка по размеру
Оставить не более 500 МБ архивных журналов:
sudo journalctl --vacuum-size=500M
Оставить не более 1 ГБ:
sudo journalctl --vacuum-size=1G
Важно: vacuum удаляет старые архивные файлы. Активный журнал может не уменьшиться до указанного значения без предварительной ротации.
Рекомендуемый порядок:
sudo journalctl --rotate
sudo journalctl --vacuum-size=500M
Ограничение количества файлов
Оставить не более 10 архивных файлов:
sudo journalctl --vacuum-files=10
Постоянное ограничение размера журнала
Для постоянной настройки используйте drop-in-файл.
Создайте каталог:
sudo mkdir -p /etc/systemd/journald.conf.d
Создайте конфигурацию:
sudo tee /etc/systemd/journald.conf.d/99-limits.conf >/dev/null <<'EOF'
[Journal]
SystemMaxUse=1G
SystemKeepFree=2G
MaxRetentionSec=14day
EOF
Параметры:
SystemMaxUse=1G— максимальный объём постоянного журнала;SystemKeepFree=2G— сколько места journald должен оставить свободным;MaxRetentionSec=14day— максимальный срок хранения записей.
Проверка конфигурации
Посмотрите итоговые параметры:
systemd-analyze cat-config systemd/journald.conf
Найдите добавленные значения:
systemd-analyze cat-config systemd/journald.conf |
grep -E 'SystemMaxUse|SystemKeepFree|MaxRetentionSec'
Применение настроек
Перезапустите journald:
sudo systemctl restart systemd-journald
Проверьте состояние:
systemctl status systemd-journald --no-pager
Проверьте журнал службы:
sudo journalctl -u systemd-journald -n 50 --no-pager
Включение постоянного хранения
Если требуется хранить журнал после перезагрузки, создайте каталог:
sudo mkdir -p /var/log/journal
Установите корректные права средствами systemd:
sudo systemd-tmpfiles --create --prefix /var/log/journal
Перезапустите journald:
sudo systemctl restart systemd-journald
Проверьте:
sudo journalctl --flush
sudo ls -la /var/log/journal
Проверка журнала после перезагрузки
Перезагрузите сервер:
sudo reboot
После входа проверьте список загрузок:
sudo journalctl --list-boots
Если отображается предыдущая загрузка с индексом -1, постоянное хранение работает.
Удаление пользовательской конфигурации
Удалите drop-in-файл:
sudo rm -f /etc/systemd/journald.conf.d/99-limits.conf
Перезапустите службу:
sudo systemctl restart systemd-journald
После этого будут использоваться стандартные настройки.
Типичные проблемы
journalctl показывает только текущую загрузку
Проверьте наличие каталога:
sudo ls -ld /var/log/journal
Если его нет, журнал может храниться только в /run и исчезать после перезагрузки.
Журнал занимает слишком много места
Проверьте:
sudo journalctl --disk-usage
Выполните ротацию и очистку:
sudo journalctl --rotate
sudo journalctl --vacuum-size=500M
Затем настройте постоянный лимит.
Vacuum почти не уменьшил размер
Сначала выполните:
sudo journalctl --rotate
После этого повторите vacuum.
Нет доступа к системным сообщениям
Используйте sudo:
sudo journalctl
Обычный пользователь видит только доступную ему часть журнала.
Слишком много сообщений одного сервиса
Проверьте unit:
sudo journalctl -u SERVICE_NAME --since today
Причину частого логирования следует исправлять в самом сервисе, а не только очищать журнал.
Быстрый набор команд
Последние ошибки текущей загрузки:
sudo journalctl -b -p err --no-pager
Последние записи сервиса:
sudo journalctl -u SERVICE_NAME -n 100 --no-pager
Наблюдение за сервисом:
sudo journalctl -u SERVICE_NAME -f
Размер журнала:
sudo journalctl --disk-usage
Очистка архивов старше 14 дней:
sudo journalctl --rotate
sudo journalctl --vacuum-time=14d
Итог
После выполнения инструкции можно:
- просматривать системные журналы;
- фильтровать сообщения по загрузке, времени, сервису и приоритету;
- наблюдать события в реальном времени;
- проверять занимаемое место;
- безопасно удалять старые архивы;
- ограничивать объём и срок хранения журнала;
- включать постоянное хранение между перезагрузками.
Очистка журналов не должна заменять устранение причины ошибок или чрезмерного логирования.