Краткий
Мы запускаем наши рабочие нагрузки в kubernetes на AWS EKS. Все наши приложения пишут логи в /var/журнал/app_logs
каталог с использованием путь к хосту
. (да, это не лучшая практика, это связано с устаревшей кодовой базой, в конечном итоге мы хотим перейти на STDOUT).
Проблемы, с которыми мы сталкиваемся:
- Мы полагаемся на почасовую
logrotate
вращать файлы под /var/журнал/app_logs
- Во время почасовой границы мы склонны терять логлайны
- При расследовании кажется, что
копироватьусечение
создает этот datalos
- Похоже, что приложение не может записывать в файл журнала во время ротации журнала, и мы теряем эти журналы во время ротации.
- Поскольку эти службы работают в
кубернет
контейнеры/капсулы, мы не сможем использовать останавливаться
оказание услуг, вращать
и Начало
сервисный подход.
Рабочие узлы EKS запущены Амазон Линукс (центос)
.
logrotate.conf
мы используем:
"/var/log/app_logs/*.log" {
создать 664 фу фу
ежедневно
отсутствует
копироватьусечение
повернуть 7
компресс
задержка сжатия
непустой
общие скрипты
постротировать
/bin/bash /opt/scripts/upload-logs.sh
эндскрипт
}
Можем ли мы что-нибудь сделать, чтобы избежать этой потери данных, настроив logrotate
конфигурация? или есть ли какие-либо аналогичные инструменты, которые решают эту проблему в средах на основе kubernetes.