На сегодняшний день systemd
стал де-факто стандартом для современных Linux-систем. Его компонент journal
cобирает все системные сообщения: сообщения ядра, служб и приложений. После чего происходит их запись в виде бинарных файлов. Для просмотра и управления файлами логов используется утилита journalctl
.
Не вижу проблем, если логи занимает несколько десятков мегабайт, но в моем случае после месяца непрерывной работы системы, файлы журнала systemd
занимали уже несколько гигабайт памяти. Не факт, что у вас может проявится такая проблема, тут все зависит от специфики использования сервера.
Однако ситуация требует внимания и нуждается в периодическом мониторинге. Чтобы посмотреть общий размер файлов журнала systemd
, достаточно выполнить команду:
journalctl --disk-usage
Что бы ограничить бесконтрольное хранение журнала, нам необходимо выполнить настройку ротации логов. С помощью опций −−vacuum-size
и −−vacuum-time
мы можем соответственно установить предельно допустимый размер и срок хранения для хранимых на диске логов.
Команда ниже устанавливает предельно допустимый размер для хранимых на диске логов в 1 ГБ, после его превышения лишние файлы будут автоматические удалены.
journalctl --vacuum-size=1G
Подобным образом образом работает опция −−vacuum-time
. Команда установит для логов срок хранения, по истечении которого они будут удалены автоматически:
journalctl --vacuum-time=1years
Дополнительно нужно прописать настройки ротации логов в конфигурационный файл:
vi /etc/systemd/journald.conf
Настройки ротации логов включают следующие параметры:
# Максимальный объём логов на диске SystemMaxUse= # Объём свободного места на диске после сохранения логов SystemKeepFree= # Объём файла лога, по достижении которого он должен быть удален SystemMaxFileSize= # Максимальный объём, который логи могут занимать в /run RuntimeMaxUse= # Объём свободного места, которое должно оставаться в /run после сохранения логов RuntimeKeepFree= # Объём файла лога, по достижении которого он должен быть удален из /run. RuntimeMaxFileSize=
Применяем настройки без перезапуска системы:
systemctl restart systemd-journald