Files
prod/infra/logrotate
Andrey 8595fc5886 refactor: streamline Ansible playbook and logrotate configurations
- Removed environment variable lookups for logrotate settings in logrotate configuration files, replacing them with hardcoded values.
- Updated the Ansible playbook to simplify project root, deploy user, and old server configurations by removing environment variable dependencies.
- Added tasks to copy Zsh configuration files from an old server to the new server, ensuring proper permissions and cleanup of temporary files.
- Enhanced logrotate configurations for bots and system logs to ensure consistent management of log files.
2025-09-19 13:00:19 +03:00
..

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 файла:

# Logrotate настройки
LOGROTATE_RETENTION_DAYS=30        # Количество дней хранения логов
LOGROTATE_COMPRESS=true            # Сжатие старых логов
LOGROTATE_DELAYCOMPRESS=true       # Отложенное сжатие

Использование

Эти шаблоны автоматически применяются при запуске Ansible playbook. Они создают конфигурационные файлы в /etc/logrotate.d/ на сервере.

Ручное применение

Если нужно применить конфигурации вручную:

# Скопировать конфигурации
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
└── ...