Эксплуатация
Рекомендации по мониторингу и обслуживанию в продакшене.
Логи
bash
# Все сервисы
docker compose logs -f
# Только consumer (конвертация)
docker compose logs -f consumer
# Producer (входящие запросы)
docker compose logs -f producerПамять consumer
Consumer запускает тяжёлые процессы (LibreOffice, ffmpeg). В docker-compose.yml задан лимит mem_limit: 4g.
Признаки проблем:
- Линейный рост RSS без отката — проверьте версию образа (исправления утечек каналов и HTTP)
- OOM kill — увеличьте
mem_limitили уменьшите число параллельных воркеров
Проверка процессов внутри контейнера:
bash
docker compose exec consumer ps auxRabbitMQ
Management UI доступен, если пробросить порт 15672. Логин/пароль — из .env.
Полезные метрики:
- Глубина очередей
main_preview,documentgenerator_create - Сообщения в dead-letter очередях (
*_dead)
Обновление образов
bash
docker compose pull
docker compose up -d
docker image prune -fРезервное копирование
Критичные данные:
- Volume
rabbitmq— состояние очередей - Volume
consumer— временные файлы (обычно не требует бэкапа)
bash
docker run --rm -v bitrix24-converter-go_rabbitmq:/data -v $(pwd):/backup alpine \
tar czf /backup/rabbitmq-backup.tar.gz -C /data .Reverse proxy (TLS)
Для доступа с другого хоста поднимите reverse proxy на этот же сервер к 127.0.0.1:8100 и ограничьте доступ (IP портала, mTLS, VPN):
nginx
server {
listen 443 ssl;
server_name converter.example.com;
# allow только IP Битрикс24;
# allow 1.2.3.4;
# deny all;
location /convert {
proxy_pass http://127.0.0.1:8100;
proxy_read_timeout 300s;
}
location /health {
proxy_pass http://127.0.0.1:8100;
}
}Не делайте ports: "8100:8100" без bind на localhost — API без авторизации.
Healthcheck
rabbit—rabbitmq-diagnostics pingproducer— HTTP на порт API (настраивается в compose)consumer— процесс в контейнере
При падении consumer Docker перезапустит контейнер (restart: unless-stopped).