# Logrotate Configuration Эта директория содержит конфигурационные файлы для автоматической ротации логов. ## Файлы ### `logrotate_bots.conf.j2` Шаблон конфигурации для логов ботов и Docker контейнеров: - Логи ботов в `{{ project_root }}/bots/*/logs/*.log` - Stderr логи ботов в `{{ project_root }}/bots/*/bot_stderr.log` - Docker контейнер логи в `/var/lib/docker/containers/*/*.log` ### `logrotate_system.conf.j2` Шаблон конфигурации для системных сервисов: - Nginx логи в `/var/log/nginx/*.log` - Системные логи (syslog, mail, auth, cron и др.) - Fail2ban логи - Docker daemon логи - Prometheus node exporter логи ## Переменные окружения Конфигурации используют следующие переменные из `.env` файла: ```bash # Logrotate настройки LOGROTATE_RETENTION_DAYS=30 # Количество дней хранения логов LOGROTATE_COMPRESS=true # Сжатие старых логов LOGROTATE_DELAYCOMPRESS=true # Отложенное сжатие ``` ## Использование Эти шаблоны автоматически применяются при запуске Ansible playbook. Они создают конфигурационные файлы в `/etc/logrotate.d/` на сервере. ### Ручное применение Если нужно применить конфигурации вручную: ```bash # Скопировать конфигурации sudo cp logrotate_bots.conf.j2 /etc/logrotate.d/bots sudo cp logrotate_system.conf.j2 /etc/logrotate.d/system # Проверить конфигурацию sudo logrotate -d /etc/logrotate.conf # Принудительная ротация sudo logrotate -f /etc/logrotate.conf ``` ## Настройки по умолчанию - **Ежедневная ротация**: все логи ротируются каждый день - **Сжатие**: старые логи сжимаются gzip - **Хранение**: 30 дней (настраивается через переменную) - **Автоматический перезапуск сервисов**: после ротации логов ## Структура логов После настройки логи будут организованы следующим образом: ``` /var/log/ ├── nginx/ │ ├── access.log │ ├── access.log.1.gz │ ├── error.log │ └── error.log.1.gz └── ... {{ project_root }}/bots/*/logs/ ├── bot.log ├── bot.log.1.gz ├── bot.log.2.gz └── ... ```