# Логи journald слишком большие: как проверить и ограничить размер журнала

На многих серверах Linux журнал systemd постепенно становится самым большим объектом в /var. Можно посмотреть его размер, один раз сократить его и задать ограничение, чтобы он оставался небольшим, не затрагивая другие файлы логов.

## 1. Узнайте, сколько места занимает журнал

Выполните journalctl --disk-usage. Команда выведет общий размер архивных и активных файлов журнала. Обычно они находятся в /var/log/journal (постоянное хранение) или в /run/log/journal (хранение только в памяти).
Если каталога /var/log/journal не существует, возможно, система хранит журнал только в памяти, и наблюдаемый размер ограничен объёмом ОЗУ, а не диска.

## 2. Однократная очистка

Чтобы размер журнала не превышал заданное значение, выполните sudo journalctl --vacuum-size=500M. Чтобы оставить только свежие записи, выполните sudo journalctl --vacuum-time=14d. Обе команды удаляют старые архивные файлы журнала; содержавшиеся в них логи потом восстановить нельзя.
Снова выполните journalctl --disk-usage для проверки. Очистка удаляет архивные файлы целиком, поэтому итоговый размер может быть немного больше или меньше заданного.

## 3. Задайте постоянное ограничение

Откройте /etc/systemd/journald.conf (или создайте файл-дополнение в /etc/systemd/journald.conf.d/) и укажите SystemMaxUse=500M в разделе [Journal]. Если хотите также сохранять свободное место, можно использовать SystemKeepFree=1G. SystemMaxUse ограничивает постоянный журнал; RuntimeMaxUse делает то же для журнала в памяти.
Примените настройку командой sudo systemctl restart systemd-journald, а через некоторое время проверьте journalctl --disk-usage.

## 4. Решите, что нужно сохранить

Меньший журнал означает более короткую историю для отладки. Если вам нужна более длинная история какой-то службы, отправляйте её логи в другое место, а не храните всё на сервере.
Посмотрите, какая служба пишет больше всего: journalctl -b -p warning --no-pager | tail покажет последние предупреждения, а служба, которая пишет тысячи строк в минуту, заслуживает исправления в источнике.

## FAQ

**Безопасно ли выполнять journalctl --vacuum-size?**

Для самой системы — да: команда удаляет только старые архивные файлы журнала. Вы теряете эту историю логов, поэтому сначала убедитесь, что она не нужна для расследования.

**Нужно ли что-то перезапускать после правки journald.conf?**

Перезапустите systemd-journald (sudo systemctl restart systemd-journald). С этого момента ограничение действует, а старые файлы удаляются по мере ротации журнала.

**Почему нет /var/log/journal?**

Постоянное хранение отключено или установлено в auto, но каталога нет. Тогда журнал находится в /run/log/journal в памяти и теряется при перезагрузке. Создавайте /var/log/journal и перезапускайте journald, только если вам нужно постоянное хранение.

Source: https://raincleaner.eu/ru/guides/journald-logs-too-big-limit-journal-size