- ClickHouse
- HyperDX
- OpenTelemetry (OTel) collector
- MongoDB
otel-collector 配置,Docker Compose 会额外暴露一些用于可观测性和摄取的端口:
13133:health_check扩展 的健康检查端点24225:用于日志摄取的 Fluentd receiver4317:OTLP gRPC receiver (traces、logs 和 metrics 的标准端口)4318:OTLP HTTP receiver (gRPC 的替代方案)8888:用于监控 collector 自身的 Prometheus metrics 端点
适用于
- 本地测试
- 概念验证
- 不要求容错能力,且单台服务器足以承载所有 ClickHouse 数据的生产部署
- 部署 ClickStack 但将 ClickHouse 单独托管时,例如使用 ClickHouse Cloud。
部署步骤
访问 HyperDX UI
访问 http://localhost:8080 打开 HyperDX UI。创建用户时,请提供符合要求的用户名和密码。点击Create 后,系统会为通过 Docker Compose 部署的 ClickHouse 实例创建数据源。覆盖默认连接你可以覆盖集成的 ClickHouse 实例的默认连接。详情请参阅”Using ClickHouse Cloud”。
填写连接详细信息
要连接到已部署的 ClickHouse 实例,只需点击 Create 并接受默认设置即可。如果你想连接自己的外部 ClickHouse 集群 (例如 ClickHouse Cloud) ,也可以手动输入连接凭据。如果系统提示创建数据源,请保留所有默认值,并在Table 字段中填写 otel_logs。其余设置应会自动检测完成,然后你就可以点击 Save New Source。修改 Compose 设置
配置 OpenTelemetry collector
使用 ClickHouse Cloud
-
从
docker-compose.yml文件中移除 ClickHouse 服务。如果只是用于测试,这一步是可选的,因为已部署的 ClickHouse 实例会被直接忽略,不过会浪费本地资源。如果移除了该服务,请确保一并删除所有对它的引用,例如depends_on。 -
修改 OTel collector,使其通过在 compose 文件中设置环境变量
CLICKHOUSE_ENDPOINT、CLICKHOUSE_USER和CLICKHOUSE_PASSWORD来使用 ClickHouse Cloud 实例。具体来说,将这些环境变量添加到 OTel collector 服务中:CLICKHOUSE_ENDPOINT应为 ClickHouse Cloud 的 HTTPS 端点,并包含端口8443,例如https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443 - 连接到 HyperDX UI 并创建与 ClickHouse 的连接时,请使用您的 Cloud 凭据。
schema 选择:Map 与 JSON
Map(LowCardinality(String), String) 列。这是可观测性 workloads 推荐使用的 schema。结合 bucketed map serialization 以及针对 map 键和值的文本索引,它可以实现有针对性的 lookup,同时避免动态 JSON 子列逐键摄取带来的额外开销。
JSON 类型的 schema 也已提供,目前处于 Beta 阶段,适合在属性键集合较小且稳定的 workloads 上进行评估。不建议将其作为默认选项。有关完整对比以及启用 JSON 支持所需的环境变量,请参见 Map vs JSON type。