#Что означает ошибка
Каталог /var/log/journal разросся
Журнал systemd (/var/log/journal) может занимать гигабайты, если не ограничен размер. По умолчанию лимит — 10 % файловой системы, до 4 ГБ, но на небольших дисках это ощутимо. Журнал можно уменьшить и настроить без потери нужных записей.
Сначала узнайте занимаемое место.
Затем очистите и задайте постоянный лимит.
Журнал systemd-journald может занимать гигабайты. Ограничить его размер можно параметром SystemMaxUse и очисткой старых записей командой journalctl.
[Journal]
SystemMaxUse=500M#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не ограничен размер журнала | Нет лимита. | Задайте SystemMaxUse. |
| Много ошибок от службы | Журнал растёт быстро. | Найдите источник сообщений. |
| Хранится слишком долго | Старые записи. | Очистите по времени. |
| Постоянное хранение включено | Журнал на диске. | Настройте хранение. |
#Пошаговое решение
- Узнайте размер журналаНа Linux-хосте откройте терминал и выполните
journalctl --disk-usage; увидите объём всех системных журналов, а не размер одного файла. Затемdf -h /var/logиdf -i /var/log, чтобы убедиться, что заполнена именно эта файловая система и не исчерпаны inode. - Найдите шумную службуОткройте
journalctl -p warning -b --no-pager | tail -n 100и найдите службу, которая пишет сообщения слишком часто; для неё используйтеjournalctl -u имя.service --since "1 hour ago". Если одна ошибка повторяется тысячами раз, устранение причины в службе полезнее, чем регулярная очистка журналов. - Сократите журналЕсли нужно освободить место без потери недавних событий, сохраните журналы для расследования и выполните
sudo journalctl --vacuum-size=500Mилиsudo journalctl --vacuum-time=14dс выбранным ограничением. Операция удаляет только архивные файлы журнала; активные могут оставаться большими. Не выполняйтеrm -rf /var/log/journal. - Задайте SystemMaxUseЧтобы ограничить будущий рост, откройте
/etc/systemd/journald.confлибо создайте отдельный файл в/etc/systemd/journald.conf.d/, задайтеSystemMaxUse=500Mв секции[Journal]с учётом размера диска. Перед редактированием сохраните копию и убедитесь, что настройка не конфликтует с другими drop-in-файлами. - Перезапустите journaldПосле корректировки конфигурации выполните
sudo systemctl restart systemd-journald, затемjournalctl --disk-usage. Перезапуск журнала может создать короткий промежуток изменения сбора событий; на критичных системах согласуйте его. Через некоторое время проверьте рост и повторяющиеся сообщения нужной службы. - Размер журналаLinux · Терминал (Bash)КомандаРазмер журнала.
journalctl --disk-usage
#Проверка
Выполните journalctl --disk-usage и du -sh /var/log/journal. Посмотрите, какие службы шумят: journalctl --since today -o json | jq -r ._SYSTEMD_UNIT | sort | uniq -c | sort -nr | head. Часто виновата одна служба, пишущая ошибки в цикле — исправьте её (см. журнал journalctl -u имя).
#Очистка
Оставить последние 500 МБ: sudo journalctl --vacuum-size=500M. Оставить записи за 2 недели: sudo journalctl --vacuum-time=2weeks. Ограничить число файлов: --vacuum-files=5. Принудительно ротировать: sudo journalctl --rotate. Эти команды удаляют старые архивные записи, текущие не затрагиваются.
#Постоянный лимит
Отредактируйте /etc/systemd/journald.conf (или создайте /etc/systemd/journald.conf.d/size.conf): [Journal] → SystemMaxUse=500M → SystemKeepFree=1G → MaxRetentionSec=1month. Примените: sudo systemctl restart systemd-journald. Для оперативной памяти вместо диска: Storage=volatile (журнал пропадает после перезагрузки). Если нужно хранить долго, настройте пересылку в центральный сервер логов.
journalctl --disk-usagesudo journalctl --vacuum-size=500Msudo journalctl --vacuum-time=2weeksКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.