更新时间:2025-07-07 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:允许跟踪任何进程。

安装插件

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

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

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

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

  3. (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(不区分大小写),如果不填写单位则表示以字节为单位。

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

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

    表1 插件调度配置

    参数

    参数说明

    多可用区部署

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

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

组件说明

表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