通过 Vector 发送数据
- 托管 ClickStack
- 开源 ClickStack
以下指南假设您已创建托管 ClickStack 服务并记录了相应的服务凭据。如果尚未完成,请先参阅托管 ClickStack 的 Getting Started 指南,按步骤操作至提示配置 Vector 为止。
1
创建数据库和表
Vector 要求在摄取数据之前预先定义好表和 schema。首先创建一个数据库。可以通过 ClickHouse Cloud 控制台 完成。在下面的示例中,我们使用 为您的数据创建一个表。该表应与数据的输出 schema 相匹配。下面的示例假设采用经典的 Nginx 结构。请根据您的数据相应调整,并遵循 schema 最佳实践。我们强烈建议您先熟悉主键的概念,并根据此处所述指南选择主键。
logs:Nginx 主键上述主键是基于 ClickStack UI 中 Nginx 日志的常见访问模式设定的,但在生产环境中可能需要根据你的工作负载进行调整。
2
在 Vector 配置中添加 ClickHouse sink
修改 Vector 配置,加入 ClickHouse sink,并更新 默认情况下,我们建议使用
inputs 字段,使其从现有管道接收事件。此配置假定你的上游 Vector 管道已经将数据处理为符合目标 ClickHouse schema 的格式,也就是说,各字段都已完成解析、正确命名,并设置为适合插入的类型。有关如何将原始日志行解析并规范化为适用于 ClickStack 的 schema 的完整示例,请参见下方的 Nginx 示例。json_each_row 格式,它会将每个事件编码为每行一个 JSON 对象。这是 ClickStack 摄取 JSON 数据时默认且推荐使用的格式,应优先于其他替代格式,例如将 JSON 对象编码为字符串的格式。ClickHouse sink 也支持 Arrow stream encoding (目前处于 Beta 阶段) 。这种方式可以提供更高的吞吐量,但也有一些重要约束:数据库和表必须是静态的,因为 schema 只会在启动时拉取一次,并且不支持动态路由。因此,Arrow 编码最适合固定且定义明确的摄取管道。我们建议查阅 Vector documentation 中可用的 sink 配置选项:上面的示例使用的是托管 ClickStack 的默认用户。对于生产部署,我们建议创建专用的摄取用户,并为其分配适当的权限和限制。
4
创建数据源
创建一个日志数据源。如果当前还没有数据源,首次登录时系统会提示你创建一个。否则,请前往 Team Settings,添加一个新的数据源。上述配置假定采用 Nginx 风格的 schema,并将
time_local 列用作时间戳。应尽可能使用在主键中声明的时间戳列。此列为必填项。我们还建议更新 Default SELECT,明确指定日志视图中返回哪些列。如果还有其他可用字段,例如服务名称、日志级别或 body 列,也可以一并配置。如果时间戳显示列与表主键中使用且在上方配置的列不同,也可以单独覆盖。在上面的示例中,数据里并不存在 Body 列。相反,它是通过一个 SQL 表达式定义的,用于根据现有字段重建一条 Nginx 日志行。有关其他可选项,请参阅配置参考。5
探查数据
前往日志视图探查数据,并开始使用 ClickStack。
使用 Vector 的示例数据集
- 托管 ClickStack
- 开源 ClickStack
以下指南假设您已创建托管 ClickStack 服务并记录了相应的服务凭据。如果尚未完成,请先参阅托管 ClickStack 的 Getting Started 指南,按步骤操作直至出现配置 Vector 的提示。
1
安装 Vector
继续之前,请确保在计划运行摄取管道的系统上已安装 Vector。请按照 Vector 官方安装指南 安装适合您环境的预构建二进制文件或软件包:安装完成后,在继续执行下面的配置步骤之前,请确认
vector 可执行文件已在您的路径中。它也可以安装在与 ClickStack OTel collector 相同的实例上。在将 Vector 部署到生产环境时,请遵循架构和安全方面的最佳实践。2
下载示例数据
如果你想用示例数据集进行试验,请下载下面的 nginx 示例。
这些数据采集自一个 Nginx 实例;该实例已配置为以 JSON 格式输出日志,以便于解析。有关这些日志的 Nginx 配置,请参阅”使用 ClickStack 监控 Nginx 日志”。
3
创建数据库和表
在开始摄取数据之前,Vector 需要预先定义好表和 schema。首先创建一个数据库。可以通过 ClickHouse Cloud 控制台 完成。创建一个名为 创建一个用于存储数据的表。
logs 的数据库:Nginx 主键上述主键是根据 ClickStack UI 中 Nginx 日志的常见访问模式设定的,但在生产环境中可能需要根据实际工作负载进行调整。
4
复制 Vector 配置
复制 Vector 配置,并创建一个
nginx.yaml 文件,设置 CLICKHOUSE_ENDPOINT 和 CLICKHOUSE_PASSWORD。上述示例使用了托管 ClickStack 的默认用户。对于生产环境中的部署,我们建议创建专用的摄取用户,并为其设置适当的权限和限制。
5
启动 Vector
使用以下命令启动 Vector,并先创建数据目录,用于记录文件偏移量。
7
创建数据源
创建一个日志数据源。如果还没有任何数据源,首次登录时系统会提示你创建一个。否则,请前往 Team Settings 并添加新的数据源。该配置假定使用 Nginx schema,并将 这会根据结构化字段还原日志行。有关其他可用选项,请参阅配置参考。
time_local 列作为 timestamp。这是在主键中声明的 timestamp 列。此列是必填项。我们还将默认 select 指定为 time_local, remote_addr, status, request,用于定义日志视图中会返回哪些列。在上面的示例中,数据中并不存在 Body 列。相反,它被定义为以下 SQL expression:8
浏览数据
前往
2025 年 10 月 20 日 的搜索视图,查看数据并开始使用 ClickStack。