opened image

Развёртывание Keitaro Tracker в Docker Compose

 

 

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)

 

Резервное копирование:

 

СлойМетодЧастота
MySQLmysqldump --single-transaction в tmpfs, затем gzip и выгрузка в S31 ч
ClickHouseclickhouse-backup create и загрузка в S34 ч
Статика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, вы получите отказоустойчивую, управляемую и безопасную платформу для аналитики рекламного трафика, готовую к масштабированию до десятков миллионов кликов в сутки.