- 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.
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
└── ...