Как уменьшить размер логов journald в Linux без потери нужных данных
Если journald разросся и начал отъедать место на диске, это обычно заметно не сразу. Система продолжает работать, но свободное место уходит тихо и почти без предупреждений. Потом выясняется, что под журналы уже отдан гигабайт, а иногда и больше.
Ниже разберёмся, как аккуратно посмотреть объём логов, очистить старые записи и настроить лимит так, чтобы проблема не возвращалась каждую неделю.

Что такое journald и почему он разрастается
journald — это часть systemd, которая собирает и хранит системные логи. Записи лежат в бинарном виде, обычно в каталоге:
/var/log/journal/
Если сервер живёт долго, пишет много событий или у него активно логируются сервисы, размер журналов может быстро вырасти. Особенно это заметно на небольших дисках и VPS.
Сначала проверьте, сколько места занимают логи
Перед очисткой лучше понять масштаб проблемы:
journalctl --disk-usage
Пример вывода:
Archived and active journals take up 1.9G in the file system.
Если там несколько сотен мегабайт, ничего страшного. Если гигабайты — уже есть смысл заняться настройкой.
Если нужно быстро освободить место
Для начала полезно пометить активные журналы как архивные:
journalctl --rotate
После этого можно выбрать один из способов очистки.
Ограничить общий размер журналов
Самый понятный вариант — оставить, например, не больше 1 ГБ:
journalctl --vacuum-size=1G
Подходит, если важнее держать под контролем объём, а не точный срок хранения.
Удалить журналы старше заданного срока
Если удобнее ориентироваться на время, можно оставить только последние 7 дней:
journalctl --vacuum-time=7d
Это хороший вариант для серверов, где важнее свежая история, а не архив на месяцы назад.
Оставить только несколько последних файлов журналов
Если нужен минималистичный режим, можно ограничить количество файлов:
journalctl --vacuum-files=5
Это удалит всё, кроме нескольких последних файлов журналов.
Как сделать очистку автоматической
Ручные команды помогают разово, но если логи снова растут, лучше задать лимит в конфигурации systemd-journald.
Откройте файл:
/etc/systemd/journald.conf
Найдите секцию:
[Journal]
И задайте нужные параметры, например:
[Journal] SystemMaxUse=1G SystemKeepFree=1G SystemMaxFileSize=100M SystemMaxFiles=100
Что здесь важно:
SystemMaxUseограничивает суммарный размер журналовSystemKeepFreeоставляет свободное место на дискеSystemMaxFileSizeограничивает размер одного файла журналаSystemMaxFilesзадаёт верхний предел по количеству файлов
Если не хотите править основной конфиг, лучше сделать отдельный drop-in-файл в journald.conf.d, но для большинства случаев достаточно и явного лимита в конфигурации.
После изменений перезапустите службу:
systemctl restart systemd-journald
Проверка после очистки
Снова посмотрите объём журналов:
journalctl --disk-usage
И проверьте, что записи продолжают писаться:
journalctl -n 20
Если всё работает, а размер логов стал меньше — задача решена.
Что не стоит делать
Не удаляйте файлы из /var/log/journal/ вручную, если не понимаете, что именно удаляете. Да, диск освободится быстро. Но потом можно долго разбираться, почему часть истории пропала и как это повлияло на диагностику.
Безопаснее сначала использовать journalctl, а уже потом, если нужно, настраивать лимиты.
Итог
Если journald разросся, сначала проверьте объём, затем удалите старые записи через journalctl --vacuum-*, а после этого задайте лимиты в конфигурации. Так вы не потеряете нужные данные и не будете каждый раз чистить логи руками.




[…] Как уменьшить размер логов journald в Linux без потери нужных… […]