Назад | Перейти на главную страницу

Получение ротации журналов для работы с Elasticsearch и Log4j2

Недавно мы обнаружили, что наши серверы ES 6.5 никогда не очищают старые файлы журналов. Основываясь на различной информации, найденной в Google, я придумал эту конфигурацию для log4j2, которую мы применили к серверам перед непрерывным перезапуском всего кластера.

appender.rolling.type = RollingFile
appender.rolling.name = rolling
appender.rolling.fileName = {{ log_path }}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n
appender.rolling.filePattern = {{ log_path }}-%d{yyyy-MM-dd}.log
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 14

Однако на следующий день старые файлы все еще были там. Мы хотим удалить файлы старше 14 дней или перевернуть их, когда размер превышает 100 МБ.

Бонус: есть ли способ заменить это старым добрым logrotate? Я не доверяю этому материалу log4j2, документация сбивает с толку (иногда это XML, иногда странный корпус, на который жалуется ES), и очень сложно найти хорошие примеры.