You need to enable JavaScript to run this app.
导航

LogCollector CRD 采集原理

最近更新时间2023.11.13 16:31:41

首次发布时间2023.10.13 14:01:11

日志服务支持通过 CRD 方式创建容器日志的采集配置,本文档介绍 LogCollector CRD 的工作原理。

实现原理

除控制台方式之外,日志服务还提供 LogCollector CRD 方式快速创建 LogCollector 采集配置。LogCollector CRD 可以通过声明方式定义和管理日志服务资源,以类似 CRD 方式管理 Kubernetes 资源。您可以在 YAML 文件中定义日志服务资源,并通过 kubectl apply 命令来创建或更新已定义的资源,日志服务会根据指令自动创建和更新日志项目、日志主题、机器组或采集配置。
LogCollector CRD 方式创建采集配置的操作简单便捷,可快速批量创建多个采集配置,但需要一定的工具学习成本,且要求您熟悉 Kubernetes 和 CRD,适用于 Kubernetes 的高阶用户。

基本概念

概念

说明

LogCollector CRD

LogCollector CRD 是火山引擎日志服务提供的 Kubernetes 资源定义,其对应的定制资源为 LogCollector CR。在 Kubernetes 集群中定义并应用 LogCollector CRD,可使 LogCollector CR 在对应的集群可用。

LogCollector CR

LogCollector CR 是由 LogCollector CRD 定义的资源实例。您可以使用 kubectl 命令行工具来创建、删除或查询 LogCollector CR,以此管理 LogCollector 采集配置,例如通过创建 LogCollector CR 来创建一个 LogCollector 采集配置。

LogCollector Controller

LogCollector Controller 的主要作用是监控 Kubernetes 集群的 LogCollector CR 状态并执行相应的操作。例如,当 LogCollector Controller 监控到新的 LogCollector CR 时,会自动创建该 CR 中定义的采集配置;当 LogCollector Controller 监控到有 LogCollector CR 被删除时,也会自动删除该 CR 对应的采集配置。

实现流程

通过 LogCollector CRD 方式采集容器日志的内部流程如下:

  1. 使用 kubectl 命令创建 LogCollector CRD 和 LogCollector CR。
  2. LogCollector Controller 监听到 LogCollector CR 的更新。
  3. LogCollector Controller 根据 LogCollector CR 的内容,自动向 TLS 服务端发送请求,创建日志项目、日志主题、机器组以及采集配置,并且自动绑定采集配置和机器组。
  4. LogCollector 定期请求 TLS 服务端,获取最新的采集配置并进行热加载。
  5. LogCollector 根据采集配置采集各个容器上的标准输出或文本日志。
  6. LogCollector 将采集到的日志发送到 TLS 服务端。