Systemd-journald

Материал из sysadm
Перейти к навигации Перейти к поиску

Обзор

Ссылки по теме

Хранилище

/run/log/journal (в памяти)
/var/log/journal (на диске, по умолчанию не создано)

Чистка

# вывод текущего размера хранилища
journalctl --disk-usage

# чистка хранилища до заданного размера
journalctl --vacuum-size=200M

# проверка файлов хранилища на повреждения
journalctl --verify


Файлы конфигурации

# размещение файлов конфигурации
       /etc/systemd/journald.conf
       /etc/systemd/journald.conf.d/*.conf
       /run/systemd/journald.conf.d/*.conf
       /usr/lib/systemd/journald.conf.d/*.conf
       /etc/systemd/journald@NAMESPACE.conf
       /etc/systemd/journald@NAMESPACE.conf.d/*.conf
       /run/systemd/journald@NAMESPACE.conf.d/*.conf
       /usr/lib/systemd/journald@NAMESPACE.conf.d/*.conf

# параметры
# параметры с префиксом Runtime управляют хранилищем журнала в памяти /run/log/journal
# параметры с префиксом System управляют хранилищем журнала на диске /var/log/journal, если каталога не существуют то все параметры с этим префиксом игнорируются

SystemMaxUse=200M       (default 10%, но не более 4G)   максимальный размер хранилища журналов на диске
SystemKeepFree=4G       (default 15%, но не более 4G)   сколько места на диске должно оставаться свободным
# учитываются оба параметра SystemMaxUse и SystemKeepFree,
#  если нарушается SystemKeepFree, то хранилище журнала перестает расти, но не уменьшает уже занятый объем
#  если нарушается SystemMaxUse, то удаляются самые старые архивные файлы, пока условие не будет выполнено

SystemMaxFileSize=10M   (default SystemMaxUse/8) максимальный размер одного файла журнала
SystemMaxFiles=100      (default 100)            максимальное количество файлов журнала

Перезапуск сервиса

systemctl restart systemd-journald

Создание хранилища на диске (по умолчанию не создано)

mkdir /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

Проблемы

Проблема

На консоль выдаются сообщения

Data hash table of /run/log/journal/.../system.journal has a fill level at 75.0 (...), suggesting rotation
/run/log/journal/.../system.journal: Journal header limits reached or header out-of-date, rotating

Причина

По умолчанию в RHEL9 (и его производных) журнал пишется только в память, в моменты когда в журнал падает слишком много сообщений, размер /run/log/journal может превысить 75% от размера файловой системы в памяти /run/log. Также могут быть превышены лимиты RuntimeMaxUse=(10% от размера файловой системы /run/log)

Решение

На форумах предлагают увеличить размер файловой системы в памяти /run/log.

Я пока решил так, но не уверен что поможет

mkdir /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald