Docker Compose
Все компоненты ClickStack Open Source распространяются отдельно в виде отдельных Docker-образов:
- ClickHouse
- HyperDX
- OpenTelemetry (OTel) collector
- MongoDB
Эти образы можно комбинировать и развёртывать локально с помощью Docker Compose.
Docker Compose открывает дополнительные порты для обсервабилити и ингестии на основе стандартной конфигурации otel-collector:
13133: endpoint проверки работоспособности для расширенияhealth_check24225: Fluentd-приёмник для ингестии логов4317: OTLP gRPC-приёмник (стандарт для трейсов, логов и метрик)4318: OTLP HTTP-приёмник (альтернатива gRPC)8888: endpoint метрик Prometheus для мониторинга самого коллектора
Эти порты обеспечивают интеграцию с различными источниками телеметрии и делают OpenTelemetry collector готовым к эксплуатации в продакшене для разнообразных сценариев ингестии.
Подходит для
- Локального тестирования
- Proof-of-concept проектов / создания прототипов
- Продакшн-развертываний, где отказоустойчивость не требуется, и одного сервера достаточно для размещения всех данных ClickHouse
- При развертывании ClickStack, но размещении ClickHouse отдельно, например с использованием ClickHouse Cloud.
Шаги развертывания
Клонирование репозитория
Чтобы развернуть с помощью Docker Compose, клонируйте репозиторий ClickStack, перейдите в каталог и выполните docker compose up:
Перейдите в интерфейс HyperDX
Перейдите по адресу http://localhost:8080, чтобы открыть интерфейс HyperDX.
Создайте пользователя, указав имя пользователя и пароль, соответствующий требованиям.
После нажатия Create будут созданы источники данных для экземпляра ClickHouse, развернутого с помощью Docker Compose.
Вы можете переопределить подключение по умолчанию к встроенному экземпляру ClickHouse. Подробнее см. раздел "Использование ClickHouse Cloud".

Пример использования альтернативного экземпляра ClickHouse приведен в разделе "Использование ClickHouse Cloud".
Заполните данные подключения
Чтобы подключиться к развернутому экземпляру ClickHouse, просто нажмите Create и примите настройки по умолчанию.
Если вы предпочитаете подключиться к собственному внешнему кластеру ClickHouse, например ClickHouse Cloud, вы можете вручную ввести свои учетные данные для подключения.
Если будет предложено создать источник, сохраните все значения по умолчанию и заполните поле Table значением otel_logs. Все остальные настройки должны быть определены автоматически, после чего вы сможете нажать Save New Source.

Изменение настроек Compose
Вы можете изменять настройки стека, например используемую версию, через файл с переменными окружения:
Настройка OTel collector
Конфигурацию OTel collector можно при необходимости изменить — см. «Изменение конфигурации».
Использование ClickHouse Cloud
Этот дистрибутив можно использовать с ClickHouse Cloud, но он отличается от Managed ClickStack. В этой конфигурации вы самостоятельно управляете UI ClickStack, используя ClickHouse Cloud только для вычислений и хранения. Если у вас нет особой причины управлять UI отдельно, рекомендуется использовать Managed ClickStack, который включает встроенную аутентификацию и дополнительные корпоративные функции и устраняет необходимость самостоятельно управлять UI ClickStack.
Вам необходимо:
-
Удалить сервис ClickHouse из файла
docker-compose.yml. При тестировании это необязательно, так как развернутый экземпляр ClickHouse просто будет игнорироваться, хотя и будет расходовать локальные ресурсы. Если вы удаляете сервис, убедитесь, что любые ссылки на него, такие какdepends_on, также удалены. -
Настроить OTel collector на использование экземпляра ClickHouse Cloud, задав переменные окружения
CLICKHOUSE_ENDPOINT,CLICKHOUSE_USERиCLICKHOUSE_PASSWORDв compose-файле. В частности, добавьте переменные окружения в сервис OTel collector:Значение
CLICKHOUSE_ENDPOINTдолжно быть конечной точкой HTTPS ClickHouse Cloud, включая порт8443, например:https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443. -
Подключившись к UI HyperDX и создавая подключение к ClickHouse, используйте свои учетные данные ClickHouse Cloud.
Выбор schema: Map или JSON
По умолчанию ClickStack хранит атрибуты в столбцах Map(LowCardinality(String), String). Это рекомендуемая schema для рабочих нагрузок обсервабилити. В сочетании с бакетизированной сериализацией Map и текстовыми индексами по ключам и значениям Map она обеспечивает выборочный поиск без накладных расходов на приём данных для каждого ключа, характерных для динамических JSON-подстолбцов.
Schema с типом JSON доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Она не рекомендуется в качестве schema по умолчанию. Полное сравнение и список переменных окружения, необходимых для включения поддержки JSON, см. в разделе Map vs JSON type.