Перейти к основному содержанию
Все компоненты ClickStack с открытым исходным кодом поставляются по отдельности в виде отдельных Docker-образов:
  • ClickHouse
  • HyperDX
  • OpenTelemetry (OTel) Collector
  • MongoDB
Эти образы можно объединить и развернуть локально с помощью Docker Compose. Docker Compose открывает дополнительные порты для обсервабилити и ингестии на основе стандартной конфигурации otel-collector:
  • 13133: конечная точка проверки работоспособности для расширения health_check
  • 24225: приёмник Fluentd для ингестии журналов
  • 4317: приёмник OTLP gRPC (стандарт для трассировок, журналов и метрик)
  • 4318: приёмник OTLP HTTP (альтернатива gRPC)
  • 8888: конечная точка метрик Prometheus для мониторинга самого коллектора
Эти порты позволяют интегрироваться с различными источниками телеметрии и делают OpenTelemetry Collector готовым к использованию в продакшн для самых разных сценариев ингестии.

Подходит для

  • Локального тестирования
  • Пилотных проектов
  • Развертываний в продакшне, где отказоустойчивость не нужна и одного сервера достаточно для хранения всех данных ClickHouse
  • Развертывания ClickStack, если ClickHouse размещается отдельно, например в ClickHouse Cloud.

Шаги развертывания


1

Клонируйте репозиторий

Чтобы развернуть с помощью Docker Compose, клонируйте репозиторий ClickStack, перейдите в каталог и выполните docker-compose up:
git clone https://github.com/ClickHouse/ClickStack.git
docker compose up
2

Перейдите в интерфейс HyperDX

Перейдите по адресу http://localhost:8080, чтобы открыть интерфейс HyperDX.Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям.После нажатия Create будут созданы источники данных для экземпляра ClickHouse, развернутого с помощью Docker Compose.
Переопределение подключения по умолчаниюВы можете переопределить подключение по умолчанию к встроенному экземпляру ClickHouse. Подробнее см. в разделе “Using ClickHouse Cloud”.
Пример использования другого экземпляра ClickHouse см. в разделе “Using ClickHouse Cloud”.
3

Заполните сведения о подключении

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

Изменение настроек Compose

Вы можете изменить настройки стека, например используемую версию, в файле переменных окружения:
user@example-host clickstack % cat .env

# Используется docker-compose.yml
IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
LOCAL_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-local
ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-otel-collector
CODE_VERSION=2.8.0
IMAGE_VERSION_SUB_TAG=.8.0
IMAGE_VERSION=2
IMAGE_NIGHTLY_TAG=2-nightly
IMAGE_LATEST_TAG=latest

# Настройка URL-адресов домена
HYPERDX_API_PORT=8000 #необязательно (не должен использоваться другими сервисами)
HYPERDX_APP_PORT=8080
HYPERDX_APP_URL=http://localhost
HYPERDX_LOG_LEVEL=debug
HYPERDX_OPAMP_PORT=4320

# Конфигурация OTel/ClickHouse
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE=default

Настройка OpenTelemetry collector

При необходимости конфигурацию OTel collector можно изменить — см. «Изменение конфигурации».

Использование ClickHouse Cloud

Этот дистрибутив можно использовать с ClickHouse Cloud, но это отличается от варианта Управляемый ClickStack. В этой конфигурации вы самостоятельно управляете интерфейсом ClickStack, а ClickHouse Cloud используете только для вычислений и хранилища. Если у вас нет веской причины запускать интерфейс отдельно, мы рекомендуем использовать Управляемый ClickStack: он включает встроенную аутентификацию и дополнительные возможности уровня Enterprise, а также избавляет от необходимости самостоятельно управлять интерфейсом ClickStack. Вам следует:
  • Удалить сервис ClickHouse из файла docker-compose.yml. При тестировании это необязательно, так как развернутый экземпляр ClickHouse будет просто игнорироваться, хотя и будет впустую расходовать локальные ресурсы. Если вы удаляете сервис, убедитесь, что все ссылки на него, такие как depends_on, тоже удалены.
  • Изменить OTel collector так, чтобы он использовал экземпляр ClickHouse Cloud, задав в файле compose переменные окружения CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER и CLICKHOUSE_PASSWORD. В частности, добавьте эти переменные окружения в сервис OTel collector:
    otel-collector:
        image: ${OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}
        environment:
          CLICKHOUSE_ENDPOINT: '<CLICKHOUSE_ENDPOINT>' # здесь HTTPS-конечная точка
          CLICKHOUSE_USER: '<CLICKHOUSE_USER>'
          CLICKHOUSE_PASSWORD: '<CLICKHOUSE_PASSWORD>'
          HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: ${HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE}
          HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
          OPAMP_SERVER_URL: 'http://app:${HYPERDX_OPAMP_PORT}'
        ports:
          - '13133:13133' # расширение health_check
          - '24225:24225' # приёмник Fluentd
          - '4317:4317' # приёмник OTLP gRPC
          - '4318:4318' # приёмник OTLP HTTP
          - '8888:8888' # расширение метрик
        restart: always
        networks:
          - internal
    
    CLICKHOUSE_ENDPOINT должен быть HTTPS-конечной точкой ClickHouse Cloud, включая порт 8443, например: https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
  • При подключении к интерфейсу HyperDX и создании подключения к ClickHouse используйте свои учётные данные Cloud.

Выбор схемы: Map или JSON

По умолчанию ClickStack хранит атрибуты в столбцах Map(LowCardinality(String), String). Это рекомендуемая схема для рабочих нагрузок обсервабилити. В сочетании с сериализацией Map по бакетам и текстовыми индексами по ключам и значениям в Map она обеспечивает точечные lookup-операции без накладных расходов на приём для каждого ключа, характерных для динамических подстолбцов JSON. Схема с типом JSON доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Использовать её по умолчанию не рекомендуется. Полное сравнение и переменные окружения, необходимые для включения поддержки JSON, см. в разделе Map vs JSON type.
Последнее изменение 10 июня 2026 г.