Перейти к основному содержанию
Перейти к основному содержанию

Все в одном

Этот комплексный Docker-образ включает все компоненты ClickStack:

  • ClickHouse
  • HyperDX
  • OpenTelemetry (OTel) collector (предоставляющий OTLP по портам 4317 и 4318)
  • MongoDB (для хранения состояния приложения)

Этот вариант поддерживает аутентификацию, что позволяет сохранять дашборды, оповещения и сохранённые поисковые запросы между сеансами и пользователями.

Подходит для

  • демонстраций
  • локального тестирования всего стека

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


Развертывание с помощью Docker

Следующая команда запустит коллектор OpenTelemetry (на портах 4317 и 4318) и интерфейс HyperDX (на порту 8080).

docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

Перейдите по адресу http://localhost:8080, чтобы получить доступ к интерфейсу HyperDX.

Создайте пользователя, указав имя пользователя и пароль, который соответствует требованиям.

После нажатия Create будут созданы источники данных для интегрированного экземпляра ClickHouse.

Интерфейс HyperDX

Пример использования альтернативного экземпляра ClickHouse смотрите в разделе «Создание подключения ClickHouse Cloud».

Приём данных

Инструкции по приёму данных смотрите в разделе «Приём данных».

Сохранение данных и настроек

Чтобы сохранять данные и настройки при перезапусках контейнера, пользователи могут изменить приведённую выше команду docker, чтобы смонтировать каталоги /data/db, /var/lib/clickhouse и /var/log/clickhouse-server. Например:

# убедитесь, что каталоги существуют
mkdir -p .volumes/db .volumes/ch_data .volumes/ch_logs
# измените команду для монтирования путей
docker run \
  -p 8080:8080 \
  -p 4317:4317 \
  -p 4318:4318 \
  -v "$(pwd)/.volumes/db:/data/db" \
  -v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
  -v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
  docker.hyperdx.io/hyperdx/hyperdx-all-in-one

Развертывание в production‑среде

Этот вариант не следует использовать в production‑среде по следующим причинам:

  • Неперсистентное хранилище: Все данные сохраняются с использованием нативной overlay‑файловой системы Docker. Такая конфигурация не обеспечивает масштабируемую производительность, а данные будут потеряны при удалении или перезапуске контейнера, если только вы не смонтируете необходимые пути в файловой системе.
  • Отсутствие изоляции компонентов: Все компоненты запускаются внутри одного Docker‑контейнера. Это не позволяет независимо масштабировать и мониторить их и приводит к тому, что любые ограничения cgroup применяются глобально ко всем процессам. В результате компоненты могут конкурировать за CPU и память.

Настройка портов

Если вам нужно изменить порты приложения (8080) или API (8000), на которых работает HyperDX Local, вам потребуется изменить команду docker run, чтобы пробросить нужные порты и задать несколько переменных окружения.

Порты OpenTelemetry настраиваются простым изменением флагов проброса портов. Например, можно заменить -p 4318:4318 на -p 4999:4318, чтобы изменить HTTP-порт OpenTelemetry на 4999.

docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

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

Этот дистрибутив можно использовать с ClickHouse Cloud. При этом локальный экземпляр ClickHouse всё равно будет развёрнут, но использоваться не будет, а OTel collector можно настроить на работу с экземпляром ClickHouse Cloud с помощью переменных окружения CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER и CLICKHOUSE_PASSWORD.

Например:

export CLICKHOUSE_ENDPOINT=<HTTPS ENDPOINT>
export CLICKHOUSE_USER=<CLICKHOUSE_USER>
export CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>

docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

CLICKHOUSE_ENDPOINT должен указывать на HTTPS-эндпоинт ClickHouse Cloud, включая порт 8443, например: https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443

После подключения к интерфейсу HyperDX перейдите в Team Settings и создайте подключение к вашему сервису ClickHouse Cloud, а затем настройте необходимые источники. Пример последовательности действий см. здесь.

Настройка OTel collector

Конфигурацию OTel collector при необходимости можно изменить — см. раздел "Изменение конфигурации OTel collector".

JSON type support

Beta feature. Learn more.
Beta Feature - not production ready

JSON type support in ClickStack is a beta feature. While the JSON type itself is production-ready in ClickHouse 25.3+, its integration within ClickStack is still under active development and may have limitations, change in the future, or contain bugs.

ClickStack has beta support for the JSON type from version 2.0.4.

For the benefits of this type see Benefits of the JSON type.

In order to enable support for the JSON type users must set the following environment variables:

  • OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' - enables support in the OTel collector, ensuring schemas are created using the JSON type.
  • BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true - enables support in the HyperDX application, allowing JSON data to be queried.

Например:

docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one