摘要本指南介绍如何将遥测数据从由 Telflo 管理的 OpenTelemetry Collectors 发送到 ClickStack。您将学习如何:
- 在 Telflo 的可视化编辑器中或通过命令行客户端构建 collector 配置
- 将遥测数据发送到开源版或托管 ClickStack,或直接写入 ClickHouse
- 将配置远程部署到 collector 机群
- 确认遥测数据已进入 ClickStack 或您的 ClickHouse 表
什么是 Telflo?
Telflo 是面向 OpenTelemetry Collectors 的厂商中立 control plane,可对整个 collector 机群的 collector 配置进行集中管理。它通过可视化编辑器、管道 测试以及 configuration 的远程部署,让大规模机群也易于管理。Telflo 管理的是标准的 upstream OpenTelemetry collector builds,既没有 Telflo 专属的 distribution,也没有私有 agent,因此团队现有的 collectors 无需更换 build 即可继续运行。 除浏览器外,Telflo 还可通过命令行客户端使用。将其与 ClickStack MCP 服务器搭配,查询遥测数据 的同一个 agent 即可直接修复生成这些数据的管道。为什么选择 Telflo + ClickStack?
ClickStack 负责大规模的摄取、存储和分析查询。Telflo 则集中运维为其供给数据的 OpenTelemetry Collector 机群,覆盖各类主机、集群和区域。 Telflo 提供:- 跨主机、容器和 Kubernetes 集中管理 OpenTelemetry Collector
- 可视化管道编辑,并支持面向整个机群或单个分组的受控滚动发布
- 变更在下发到生产环境 collector 之前,先基于样本遥测数据进行验证
- 将同一份遥测数据同时路由到 ClickStack 和其他目标端
- 机群可见性:哪些 collector 在线、各自运行的是什么配置,以及哪些已发生配置漂移
前置条件
- 一个目标端:开源 ClickStack、托管 ClickStack,或自管理的 ClickHouse 实例
- Telflo 账户 (在 telflo.com 创建账户)
- 运行 collector 的环境:一台 VM 或一个 Kubernetes 集群
- 开源 ClickStack:你的 ClickStack OTLP 端点 (HTTP 为
4318,gRPC 为4317) 以及摄取 API key,可在 HyperDX 的 Team Settings → API Keys 中找到 (参考文档见此) - 托管 ClickStack:你的 ClickHouse Cloud 服务端点 (端口
8443) 以及一个摄取用户 (参见创建摄取用户) - 自管理 ClickHouse:你的 ClickHouse 端点、用于存放 ClickStack 表的数据库,以及具备创建和写入这些表权限的用户 (参见创建摄取用户)
- 从 collector 到你的 ClickStack 或 ClickHouse 端点的网络连通性
将 ClickStack 与 Telflo 集成
1
创建 collector 配置
- 登录 Telflo。在 Configurations 列表中,点击 New Configuration,然后点击 Blank configuration。
- 在 Name Your Configuration 中输入名称并点击 Create。
- 添加 receivers:针对采集的每一类 telemetry,从组件面板中拖拽一个 receiver 到画布上。
- 添加 processors:Memory Limiter 和 Batch,以及在数据离开 collector 之前用于调整数据形态所需的其他 processors。参见 Telflo 支持的 processors 完整列表。
2
添加 exporter
三种方式使用相同的编辑器、相同的发布步骤和相同的 fleet,唯一的区别在于 exporter。请选择与你的部署相对应的选项卡:开源 ClickStack 通过 OTLP 并配合摄取密钥接收数据;托管 ClickStack 和自管理 ClickHouse 则直接写入 ClickStack 表。从 receivers 出发,经处理器连线至 exporter,每种信号对应一条管道。status 行会显示 config valid,或提示待修复的错误数量;YAML 选项卡则展示生成的配置。在正式上线之前,你可以让样本遥测数据流经该配置,查看最终的输出结果。请参阅 Telflo 中的测试。或者,你只需描述想要实现的目标,由 Telflo AI 助手 (点击工具栏中的 AI 按钮打开) 为你构建、校验并测试配置。你自己的 agent 也可以通过 Telflo 命令行客户端完成同样的操作。
- 开源 ClickStack
- 托管 ClickStack
- 自管理 ClickHouse
- 将 OTLP/HTTP exporter 拖到画布上。
- 将 Endpoint 设置为你的 ClickStack OTLP HTTP 端点,例如
http://clickstack.example.com:4318。 - 在 HTTP Headers 下点击 Add header,然后在 Header name 中填入
authorization,在 Header value 中填入${env:CLICKSTACK_INGESTION_KEY}。Telflo 会在你安装 collector 时提示输入该值,因此密钥不会存储在配置中。
4317 上使用 OTLP exporter,并在 gRPC Metadata Headers 下设置相同的请求头。3
发布版本
在工具栏中点击 Publish。已发布的版本为只读;如需继续迭代,请点击 Create New Version。
4
创建并部署 Fleet
- 进入 Fleet,点击 New Fleet,选择 collector 的运行位置:VM 上或 Kubernetes 中。填写 Name 后点击 Create fleet。
- 在该 fleet 的 Deploy Groups 选项卡中,点击 Default 组的 Assign,然后选择已发布的 configuration 及 version。
- 点击该组的 Install,为 configuration 引用的每个环境变量填入值;Telflo 会将它们加入安装命令。请按照 Telflo 的安装说明,在 collector 需要运行的位置执行该命令。该命令中包含 fleet 的安装 token 以及你填入的值,因此应将其视为敏感信息。
- 在 Collectors 选项卡中,collector 的状态会依次显示为 Pending pickup、Applying,最后是 In sync。
5
验证遥测数据
打开 HyperDX,在 搜索 视图中搜索你的某个服务;查看指标请使用 Chart Explorer。若使用托管 ClickStack,请在 ClickHouse Cloud 控制台中打开你的服务并点击 Launch ClickStack。若使用自管理 ClickHouse,则可直接查询 ClickStack 表,例如
SELECT ServiceName, count() FROM otel_logs GROUP BY ServiceName。高级配置
扇出路由
同一份遥测数据可以同时发往 ClickStack 用于长期存储、在迁移期间发往另一个平台,并发往 SIEM 进行安全分析。在画布上添加导出器,将其连接到需要向其输送数据的管道,或者直接从 Telflo 流程库中的预置管道入手。压缩与性能
- OTLP/HTTP 与 OTLP 导出器:Compression 保持为 gzip。
- ClickHouse 导出器:保持 Async Insert 开启,Compression 保持为 lz4,并在其上游添加 Batch 处理器。参见优化 insert。
后续步骤
- 构建仪表盘:在 HyperDX 中为日志、指标和链路追踪创建可视化图表
- 设置告警:在 ClickStack 中针对关键状况配置告警
- 借助 AI assistant 优化:让它调整管道或给出测试建议
- 从其他厂商迁移:flows 可覆盖整个 cutover 过程,替换机群上已有的 agent,并在你对比两者期间同时向两个后端双写数据