Введение / Зачем это нужно
Журнал systemd (systemd-journald) собирает системные логи в реальном времени. Со временем неограниченный рост записей может заполнить диск и замедлить работу системы. Оптимизация журнала позволяет освободить место, ускорить систему и обеспечить более эффективное логирование.
Требования / Подготовка
- ОС: Ubuntu 22.04, Fedora 38, Arch Linux, Debian 12 (или любая современная дистрибутива на базе Linux).
- Права:root (или
sudo) для редактирования конфигурационных файлов и перезапуска служб. - Базовые инструменты:
systemd,journalctl. - Свободное место на диске для временных операций.
Пошаговая инструкция
Шаг 1: Проверка текущего размера журнала
# Общее потребление журнала
journalctl --disk-usage
# Подробная информация по каталогам
du -sh /var/log/journal/*
Результат показывает, сколько мегабайт или гигабайт занимает журнал.
Шаг 2: Удаление старых записей
# Удалить логи старше двух недель
journalctl --vacuum-time=2weeks
# Ограничить общий размер журнала 500 МБ
journalctl --vacuum-size=500M
Старые записи удаляются без подтверждения — операция необратима.
Шаг 3: Настройка автоматической ротации
- Откройте конфигурационный файл:
sudo nano /etc/systemd/journald.conf - Добавьте или отредактируйте следующие параметры (пример настроек):
SystemMaxUse=500M SystemMaxFileSize=100M SystemKeepFree=200M - Перезапустите службу:
sudo systemctl restart systemd-journald
Шаг 4: Включение компрессии логов
В том же /etc/systemd/journald.conf установите:
Compress=yes
Перезапустите службу так же, как в шаге 3. Компрессия сжимает ротированные файлы журнала, экономя место на диске.
Шаг 5: Проверка результата
journalctl --disk-usage
Проверьте /var/log/journal/*/*.journal и *.journal~, чтобы убедиться, что размер уменьшился и компрессия применяется.
Проверка результата
После выполнения шагов журнал должен занимать указанный объём (например, ≤ 500 МБ). Команда journalctl --disk-usage теперь показывает обновлённые цифры. Логи по-прежнему доступны через journalctl -u <service> или journalctl --since "2024-01-01".
Возможные проблемы
- Нет прав root:
journalctl --vacuum-timeи редактирование/etc/systemd/journald.confтребуют elevated прав. Используйтеsudoили войдите как root. - Служба не перезапускается: Проверьте синтаксис
/etc/systemd/journald.conf(systemd-analyze verify /etc/systemd/journald.conf). Исправьте ошибки и повторитеsystemctl restart systemd-journald. - Журнал продолжает расти: Убедитесь, что
RuntimeMaxUseиRuntimeMaxFileSizeтакже настроены в конфигурации. Эти параметры ограничивают размер текущего (неархивного) журнала.