Вопрос или проблема
По какой-то причине мой сервер с SLES 15 SP4 не сохраняет данные журнала в journalctl более чем на 2 дня.
Мой journald.conf выглядит так:
[Journal]
Storage=persistent
Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
SystemMaxUse=10G
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
MaxRetentionSec=2month
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes
#Audit=yes
Но что бы я ни пробовал, журналов старше 2 дней нет.
Я также пробовал флаги --since
и --until
, но всё безуспешно.
Что я могу сделать, чтобы логи journald были постоянными?
Ответ или решение
Ваша проблема с журналом journalctl
на сервере SLES 15 SP4, который, по-видимому, сохраняет логи лишь на два дня, может быть вызвана рядом факторов. Основываясь на вашей конфигурации journald.conf
и изложенной проблеме, предоставлю теоретическое обоснование, примеры и их применение для решения данной ситуации.
Теория
Сначала разберем ключевые аспекты работы systemd-journald
и параметры конфигурации:
-
Storage=persistent: Данный параметр указывает, что логи сохраняются на диске в директории
/var/log/journal
, а не только в оперативной памяти. -
SystemMaxUse=10G: Определяет максимальный объем памяти, занимаемый журналами. При достижении этого лимита старые лог-файлы удаляются.
-
MaxRetentionSec=2month: Данный параметр указывает, что логи должны храниться не более 2 месяцев. Однако, если другие ограничения (например, по объему) достигнуты раньше, это может повлиять на действительную длительность хранения.
-
RateLimitIntervalSec и RateLimitBurst: Эти параметры контролируют, как часто и сколько сообщений может быть записано, чтобы предотвратить переполнение логов.
В вашей ситуации, проблема может быть связана с тем, что параметр SystemMaxUse=10G
достигает своего предела быстрее, чем предполагалось, из-за высокоактивного уровня логирования или из-за недостаточного свободного места, доступного серверу.
Примеры
-
Проверка использования дискового пространства журналами:
Вы можете использовать команду
journalctl --disk-usage
, чтобы определить, сколько места фактически занимают журналы. Это поможет понять, не достигнут ли лимит, установленный вSystemMaxUse
. -
Анализ существующих логов:
Используйте команду
journalctl --verify
, чтобы убедиться, что ни один из существующих файлов журнала не поврежден. Поврежденные файлы могут быть автоматически удаленыsystemd-journald
, что уменьшает общее число доступных логов.
Применение
-
Оптимизация параметров в journald.conf:
Если дисковое пространство ограничено, может быть полезно пересмотреть значение
SystemMaxUse
. Например, уменьшите его и установитеSystemMaxFileSize
, чтобы ограничить размер отдельных файлов журнала. Также вы можете освободить место, уменьшивSystemMaxFiles
, тем самым ограничивая количество файлов. -
Проверка системных ограничений и внешних вмешательств:
Убедитесь, что на уровень уборки логов не оказывают влияние внешние скрипты или ограничения дискового хранения, заданные извне
journald.conf
. Внешние utility или резервные процессы могут оказывать неосознанное воздействие на журналы. -
**Мониторинг изменений»:
Установите слежение за конфигурацией
journald.conf
, чтобы быть в курсе любых изменений, которые могут быть внесены администраторами или автоматизированной системой управления конфигурацией. -
Резервное копирование логов:
Если логи содержат критически важные данные, настройте на вашем сервере резервное копирование журналов. Используйте планировщик задач, такой как
cron
, чтобы архивировать данные журналов периодически и хранить их в безопасном месте.
Заключение
Необходимо учитывать, что параметры конфигурации должны быть настраиваемыми в соответствии с вашими конкретными нуждами и ограничениями. Настоятельно рекомендую внимательно изучить структуру вашего дискового пространства и текущие процессы, чтобы убедиться в отсутствии факторов, влияющих на текущую функциональность журнала. Таким образом, корректная настройка и регулярный мониторинг помогут вам добиться желаемого результата – долговременного сохранения логов на вашем сервере.