Keitaro Tracker — это мощная система для трекинга и аналитики рекламного трафика. Хотя Zomro опубликовала пример docker-compose.yml, запуск контейнера keitaro/keitaro напрямую невозможен без авторизации, поскольку образ приватный. В этой статье рассмотрим реальные способы запуска Keitaro с Docker Compose, включая дополнительные пути и важные замечания.
1. Почему образ keitaro/keitaro недоступен?
Контейнер keitaro/keitaro — это непубличный образ. Для его получения нужно использовать официальный установщик Keitaro (kctl.sh), который:
проверяет лицензию,
получает временные токены доступа,
скачивает нужный образ (иногда в виде
.tar.gz),либо авторизует вас в приватном реестре.
Поэтому ручной pull образа через docker pull keitaro/keitaro не сработает.
2. Установка через kctl.sh (официальный путь)
# Создать рабочую директорию (опционально)
mkdir -p /opt/keitaro && cd /opt/keitaro
# Убедитесь, что установлен jq
sudo apt update && sudo apt install -y jq
# Создать нужные директории
sudo mkdir -p /var/log/keitaro
sudo chown $(whoami):$(whoami) /var/log/keitaro
# Запуск скрипта
curl -fsSL https://files.keitaro.io/scripts/releases/stable/kctl.sh | bash -s -- install
После этого установка будет управляться через kctl, а docker-compose.yml и .env будут созданы автоматически.
3. Где взять docker-compose.yml и образы после установки?
После успешного запуска kctl.sh, в директории /opt/keitaro появятся:
docker-compose.yml— с актуальными приватными тегами.env— c вашей лицензией и настройками окруженияисходники Keitaro (в volume
./keitaro)
Теперь вы можете править конфигурации вручную:
Добавлять прокси, балансировку, расширенные тома и мониторинг
Подключать внешние volumes
Обновлять теги в
.env
4. Альтернатива: Запрос образа вручную
Если вы хотите полностью контролировать процесс без kctl, можно обратиться в поддержку Keitaro и запросить .tar.gz образ или токен доступа к их Docker Registry.
После получения:
docker load < keitaro-11.3.2.tar.gz
Теперь keitaro/keitaro будет доступен локально, и docker-compose сможет его использовать.
5. Бэкапы, мониторинг и безопасность (Best practices)
Резервное копирование:
| Слой | Метод | Частота |
|---|---|---|
| MySQL | mysqldump --single-transaction в tmpfs, затем gzip и выгрузка в S3 | 1 ч |
| ClickHouse | clickhouse-backup create и загрузка в S3 | 4 ч |
| Статика | rsync --link-dest с ротацией hard-link'ов | 1 д |
Храните минимум 3 последних снапшота, проверяйте восстановление на staging-узле раз в квартал.
Мониторинг и логирование:
Prometheus + Grafana — latency редиректов, QPS MySQL/ClickHouse, нагрузка Redis
Vector — сбор логов контейнеров в формате JSON, запись в ClickHouse для анализа
Alertmanager — алерты при
5xx > 1%,p50 redirect > 150ms,disk-free < 20%
Безопасность:
Закрываем порты 3306, 9000, 8123 наружу; доступны только 80/443
В Nginx активируем CSP, X-Frame-Options, HSTS (max-age ≥ 31536000)
Проверка уязвимостей:
docker scout cvesилиtrivy— минимум раз в неделюИзоляция контейнеров:
read_only: true,cap_drop
Модульная структура:
Для больших проектов разбивайте конфигурацию на файлы db.yml, web.yml, metrics.yml и используйте include в Compose v2.23+.
6. Вывод
Публично использовать docker-compose.yml без подготовки невозможно. Образ Keitaro требует авторизации, которую предоставляет только официальный установщик kctl. Но после первоначальной установки вы получаете полноценный Docker-стек, который можно кастомизировать, масштабировать и переносить.
Следуя описанным best practices, вы получите отказоустойчивую, управляемую и безопасную платформу для аналитики рекламного трафика, готовую к масштабированию до десятков миллионов кликов в сутки.