一体化
这个综合的 Docker 镜像包含所有 ClickStack 组件:
- ClickHouse
- HyperDX
- OpenTelemetry (OTel) 收集器(在端口
4317和4318上暴露 OTLP) - MongoDB(用于持久化应用状态)
此选项包括身份验证,使仪表板、警报和保存的查询在会话和用户之间保持一致。
适合的场景
- 演示
- 完整堆栈的本地测试
部署步骤
访问 HyperDX 用户界面
访问 http://localhost:8080 来访问 HyperDX 用户界面。
创建一个用户,提供符合要求的用户名和密码。
单击 Create 后,将为集成的 ClickHouse 实例创建数据源。

有关使用替代 ClickHouse 实例的示例,请参见 “创建 ClickHouse Cloud 连接”。
持久化数据和设置
为了在容器重启之间持久化数据和设置,用户可以修改上述 Docker 命令以挂载路径 /data/db、/var/lib/clickhouse 和 /var/log/clickhouse-server。例如:
部署到生产环境
此选项不应部署到生产环境,原因如下:
- **非持久性存储:**所有数据使用 Docker 本地的覆盖文件系统存储。此设置不支持大规模性能,如果删除或重启容器,将会丢失数据——除非用户 挂载所需文件路径。
- **缺乏组件隔离:**所有组件在单个 Docker 容器中运行。这阻止了独立扩展和监视,并将任何
cgroup限制全局应用于所有进程。因此,组件可能会争夺 CPU 和内存。
自定义端口
如果您需要自定义 HyperDX 本地运行的应用程序(8080)或 API(8000)端口,您需要修改 docker run 命令以转发相应的端口并设置几个环境变量。
自定义 OpenTelemetry 端口可以通过修改端口转发标志轻松更改。例如,将 -p 4318:4318 替换为 -p 4999:4318 将 OpenTelemetry HTTP 端口更改为 4999。
使用 ClickHouse Cloud
此发行版可以与 ClickHouse Cloud 一起使用。虽然仍将部署本地的 ClickHouse 实例(并被忽略),但 OTel 收集器可以通过设置环境变量 CLICKHOUSE_ENDPOINT、CLICKHOUSE_USER 和 CLICKHOUSE_PASSWORD 来配置使用 ClickHouse Cloud 实例。
例如:
CLICKHOUSE_ENDPOINT 应为 ClickHouse Cloud HTTPS 端点,包括端口 8443,例如 https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
连接到 HyperDX 用户界面后,访问 Team Settings,并创建到您的 ClickHouse Cloud 服务的连接,随后添加所需的数据源。有关示例流程,请参见 这里。
配置 OpenTelemetry 收集器
如有需要,可以修改 OTel 收集器配置 - 请参见 “修改配置”。
JSON 类型支持
ClickStack 自版本 2.0.4 起开始对 JSON 类型 提供测试支持。
有关此类型的好处,请参见 JSON 类型的好处。
为了启用对 JSON 类型的支持,用户必须设置以下环境变量:
OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'- 在 OTel 收集器中启用支持,确保使用 JSON 类型创建模式。BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true- 在 HyperDX 应用程序中启用支持,允许查询 JSON 数据。
例如: