更新时间:2025-09-11 GMT+08:00
分享

云原生日志采集插件

插件简介

云原生日志采集插件(原名log-agent)是基于开源fluent-bit和opentelemetry构建的云原生日志、K8s事件采集插件。log-agent支持基于CRD的日志采集策略,可以根据您配置的策略规则,对集群中的容器标准输出日志、容器文件日志、节点日志及K8s事件日志进行采集与转发。同时支持上报K8s事件到AOM,用于配置事件告警,默认上报所有异常事件和部分正常事件。

自1.3.2版本起,云原生日志采集插件默认会将上报所有Warning级别事件以及部分Normal级别事件到应用运维管理(AOM),上报的事件可用于配置告警。当集群版本为1.19.16、1.21.11、1.23.9或1.25.4及以上时,安装云原生日志采集插件后,事件上报AOM将不再由控制面组件上报,改为由云原生日志采集插件上报,卸载插件后将不再上报事件到AOM。

日志采集可靠性说明

日志系统的核心功能在于记录业务组件的全生命周期状态数据(包括启动初始化、退出、运行时信息及异常事件等),主要服务于组件运行状态查看与故障根因分析等运维场景。

请注意标准输出流(stdout/stderr)及本地日志文件采用非持久化存储机制,其数据完整性受制于以下风险因素:

  • 日志轮转压缩机制可能触发历史文件清除。
  • Kubernetes Pod实例终止导致的临时存储卷回收。
  • 节点存储空间限制触发的操作系统自动清理。

尽管云原生日志采集插件通过多级缓冲、优先级队列、断点续传等机制优化采集可靠性,但在以下场景仍存在日志采集丢失的可能:

  • 业务日志吞吐量超过采集端处理能力。
  • 业务Pod终止并立即被容器引擎回收。
  • 日志采集器Pod运行异常。

以下是基于云原生日志管理的最佳实践建议,请您认真考虑并采纳:

  • 请通过专用高可靠性通道记录并持久化关键业务数据(如金融交易)。
  • 请勿在日志中进行记录客户信息、支付凭证、会话令牌等敏感数据。

约束与限制

仅支持1.17及以上版本集群。

插件性能规格

性能项

说明

备注

单条日志大小

单条日志不得超过512k,多行日志采集则每行日志单独计算长度。

不涉及

最大采集文件数

单个节点所有日志采集规则监听的文件数不超过4095个文件。

不涉及

日志采集速率

  • 插件低于1.5.0版本,每个集群限制单行日志采集速率不超过10000条/秒,多行日志不超过2000条/秒。
  • 插件为1.5.0及以上版本,单节点限制日志采集速率不超过20000条/s、10MB/s。

超过限制尽可能提供服务,不保证服务质量。

配置更新

配置更新生效的延时约1-3分钟。

不涉及

权限说明

云原生日志采集插件中的fluent-bit组件会根据用户的采集配置,读取各节点上容器标准输出、容器内文件日志以及节点日志并采集。

fluent-bit组件运行需要以下权限:

  • CAP_DAC_OVERRIDE:忽略文件的 DAC 访问限制。
  • CAP_FOWNER:忽略文件属主 ID 必须和进程用户 ID 相匹配的限制。
  • DAC_READ_SEARCH:忽略文件读及目录搜索的 DAC 访问限制。
  • SYS_PTRACE:允许跟踪任何进程。

云原生日志采集插件通过上述权限提升日志读取能力。但若日志文件存储在外部挂载的文件系统(如SFS),该权限可能无法生效。为确保日志采集正常,请确保paas用户(UID 10000)拥有日志所在目录的读权限和执行权限、以及目录下文件的读权限。

安装插件

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到云原生日志采集插件,单击“安装”
  3. 在安装插件页面,根据需求选择“规格配置”

    • 选择“系统预置规格”时,您可根据节点日志量选择“小规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。

      “小规格”适用于单节点日志小于5000条/s、5MB/s的集群;“大规格”适用于单节点日志小于10000条/s、10MB/s的集群。

    • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。

  4. (1.6.1及以上版本的插件支持)配置插件参数,相关参数说明请参见Tail

    参数名称

    参数解释

    默认取值

    大规格

    其他规格

    初始缓冲区大小(Buffer_Chunk_Size)

    设置初始缓冲区大小以读取文件。

    256k

    128k

    缓冲区最大限制值(Buffer_Max_Size)

    设置每个受监视文件的缓冲区大小限制。当需要增加缓冲区时,此值用于限制内存缓冲区可以增加多少。如果超过此限制,则将从监控文件列表中删除该文件。

    1024k

    512k

    内存缓冲区限制(Mem_Buf_Limit)

    数据追加到引擎时的内存限制。如果达到此限制,插件读取日志文件数据将暂停;刷新数据后,将再次恢复。

    300mb

    40mb

    参数单位支持k、kb、m、mb、g、gb(不区分大小写),如果不填写单位则表示以字节为单位。

  5. 设置插件实例的部署策略。

    调度策略对于DaemonSet类型的插件实例不会生效。

    表1 插件调度配置

    参数

    参数说明

    多可用区部署

    • 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
    • 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。

  6. 完成以上配置后,单击“安装”

组件说明

表2 log-agent组件

容器组件

说明

资源类型

fluent-bit

轻量级的日志收集器和转发器,部署在每个节点上采集日志。1.5.0及以上版本将直接上报日志到LTS,低于1.5.0版本则上报到otel-collector。

DaemonSet

cop-logs

负责生成采集文件的软链接,和fluent-bit运行在同一Pod。

DaemonSet

log-operator

负责生成内部的配置文件。

Deployment

otel-collector

负责采集Kubernetes事件上报到LTS以及AOM,同时接收日志数据上报至LTS。

其中,日志数据上报范围与插件版本有关。低于1.5.1版本时,该组件会上报不同应用程序和服务的日志数据,在1.5.1及以上版本则仅上报弹性到CCI的工作负载日志。

Deployment

插件使用说明

该插件支持采集容器标准输出日志、容器文件日志、节点日志及K8s事件日志。您可以选择使用云日志服务(LTS)或应用运维管理服务(AOM)存储日志,但二者支持的日志类型存在差异,详情请参见表3

表3 日志存储位置说明

日志存储位置

支持的日志类型

使用说明

LTS

  • 容器标准输出日志
  • 容器文件日志
  • 节点日志

请前往日志中心创建策略,具体配置方法请参见通过云原生日志采集插件采集容器日志

Kubernetes事件

具体配置方法请参见采集Kubernetes事件

控制平面组件日志

具体配置方法请参见采集控制面组件日志

Kubernetes审计日志

具体配置方法请参见采集Kubernetes审计日志

NGINX Ingress插件日志

具体配置方法请参见采集NGINX Ingress访问日志

AOM

Kubernetes事件

当集群版本为1.19.16、1.21.11、1.23.9或1.25.4及以上时,默认上报所有异常事件和部分正常事件,具体配置方法请参见Kubernetes事件上报应用运维管理(AOM)

相关文档

  • 安装云原生日志采集插件后,您可以使用日志中心,帮助您实现Kubernetes集群的日志采集,详情请参见日志中心概述
  • 日志采集过程中可能会出现采集中断、数据丢失等情况,为确保日志的完整性和可用性,建议您设置日志采集状态的监控与告警,详情请参见日志采集状态监控及告警最佳实践

版本记录

表4 云原生日志采集插件版本记录

插件版本

支持的集群版本

更新特性

1.7.4

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

v1.32

所有命名空间的标准输出采集策略支持通过实例标签配置黑名单

1.7.3

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

v1.32

适配CCE v1.32集群

1.7.2

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

支持日志gzip压缩上报LTS

1.7.1

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

修复部分问题

1.7.0

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

支持v1.31集群

1.6.1

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

  • 支持自动创建LTS日志流
  • 支持配置Buffer_Chunk_Size、Buffer_Max_Size、Mem_Buf_Limit参数
  • 上报到AOM的事件中添加pod_ip字段

1.6.0

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

  • 支持v1.30集群
  • 安全加固:将插件使用的查询secret的权限限制在monitoring命名空间

1.5.2

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

新增创建容器日志默认日志流时索引功能

1.5.1

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

  • 支持v1.29集群
  • 支持日志从各节点直接上报LTS

1.4.5

v1.21

v1.23

v1.25

v1.27

v1.28

修复部分问题

1.4.2

v1.21

v1.23

v1.25

v1.27

v1.28

  • 支持v1.28集群
  • 支持本地集群日志采集
  • 支持GPU事件上报AOM字段特殊处理

1.3.10

v1.17

v1.19

v1.21

v1.23

v1.25

v1.27

v1.28

修复fluent-bit内存崩溃漏洞

1.3.6

v1.17

v1.19

v1.21

v1.23

v1.25

v1.27

-

1.3.4

v1.17

v1.19

v1.21

v1.23

v1.25

v1.27

  • 支持v1.27集群
  • 默认不再上报标准输出和Kubernetes事件到云日志服务(LTS)

1.3.2

v1.17

v1.19

v1.21

v1.23

v1.25

支持Kubernetes事件上报至AOM

1.3.0

v1.17

v1.19

v1.21

v1.23

v1.25

支持v1.25集群

1.2.3

v1.17

v1.19

v1.21

v1.23

-

1.2.2

v1.17

v1.19

v1.21

v1.23

log-agent是基于开源fluent-bit和opentelemetry构建的云原生日志采集插件。log-agent支持基于CRD的日志采集策略,可以根据您配置的策略规则,对集群中的容器标准输出日志、容器文件日志、节点日志及K8s事件日志进行采集与转发。

相关文档