Все в одном
Этот универсальный Docker-образ включает все компоненты ClickStack с открытым исходным кодом:
- ClickHouse
- HyperDX
- коллектор OpenTelemetry (OTel) (открывает OTLP на портах
4317и4318) - MongoDB (для постоянного хранения состояния приложения)
В этом варианте включена аутентификация, что позволяет сохранять панели мониторинга, оповещения и сохранённые поисковые запросы между сеансами и пользователями.
Подходит для
- Демонстраций
- Локального тестирования полного стека
Шаги развертывания
Развертывание с помощью Docker
Следующая команда запустит коллектор OpenTelemetry (на портах 4317 и 4318) и интерфейс HyperDX (на порту 8080).
Образы ClickStack теперь публикуются как clickhouse/clickstack-* (ранее docker.hyperdx.io/hyperdx/*).
Переход к интерфейсу HyperDX
Перейдите по адресу http://localhost:8080, чтобы открыть интерфейс HyperDX.
Создайте пользователя, указав имя пользователя и пароль, который соответствует требованиям.
После нажатия кнопки Create для встроенного экземпляра ClickHouse будут созданы источники данных.

Пример использования альтернативного экземпляра ClickHouse см. в разделе "Использование ClickHouse Cloud".
Приём данных
Инструкции по приёму данных см. в разделе "Ingesting data".
Сохранение данных и настроек
Чтобы сохранять данные и настройки между перезапусками контейнера, вы можете изменить приведённую выше команду Docker, чтобы смонтировать каталоги по путям /data/db, /var/lib/clickhouse и /var/log/clickhouse-server. Например:
Развертывание в продуктивной среде
Этот вариант не следует использовать в продуктивной среде по следующим причинам:
- Непостоянное (неперсистентное) хранилище: Все данные сохраняются с использованием нативной overlay‑файловой системы Docker. Такая конфигурация не обеспечивает необходимую производительность при масштабировании, а данные будут потеряны при удалении или перезапуске контейнера, если только пользователи не смонтируют необходимые файловые пути.
- Отсутствие изоляции компонентов: Все компоненты запускаются внутри одного контейнера Docker. Это не позволяет независимо масштабировать и мониторить их, а также приводит к тому, что любые ограничения
cgroupприменяются глобально ко всем процессам. В результате компоненты могут конкурировать за ресурсы CPU и оперативную память.
Настройка портов
Если вам нужно изменить порты приложения (8080) или API (8000), которые использует HyperDX Local, необходимо изменить команду docker run, чтобы пробросить соответствующие порты и задать несколько переменных окружения.
Порты OpenTelemetry можно настроить, просто изменив флаги проброса портов. Например, заменив -p 4318:4318 на -p 4999:4318, вы измените HTTP-порт OpenTelemetry на 4999.
Использование ClickHouse Cloud
Этот дистрибутив можно использовать с ClickHouse Cloud. Хотя локальный экземпляр ClickHouse по‑прежнему будет развёрнут (но не будет использоваться), OTel collector можно настроить на использование экземпляра ClickHouse Cloud, задав переменные среды CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER и CLICKHOUSE_PASSWORD.
Например:
CLICKHOUSE_ENDPOINT должен указывать на HTTPS-эндпоинт ClickHouse Cloud, включая порт 8443, например: https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
После входа в интерфейс HyperDX перейдите в Team Settings и создайте подключение к вашему сервису ClickHouse Cloud, а затем настройте необходимые источники.
Настройка OTel collector
Конфигурацию OTel collector при необходимости можно изменить — см. раздел "Изменение конфигурации".
Выбор schema: Map или JSON
По умолчанию ClickStack хранит атрибуты в столбцах Map(LowCardinality(String), String). Это рекомендуемая schema для рабочих нагрузок обсервабилити. В сочетании с бакетизированной сериализацией Map и текстовыми индексами по ключам и значениям Map она обеспечивает выборочный поиск без накладных расходов на приём данных для каждого ключа, характерных для динамических JSON-подстолбцов.
Schema с типом JSON доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Она не рекомендуется в качестве schema по умолчанию. Полное сравнение и список переменных окружения, необходимых для включения поддержки JSON, см. в разделе Map vs JSON type.