Skip to content

Эксплуатация

Рекомендации по мониторингу и обслуживанию в продакшене.

Логи

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 aux

RabbitMQ

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

  • rabbitrabbitmq-diagnostics ping
  • producer — HTTP на порт API (настраивается в compose)
  • consumer — процесс в контейнере

При падении consumer Docker перезапустит контейнер (restart: unless-stopped).