更新时间:2024-11-12 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。

约束与限制

仅支持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.2及以上版本的插件支持)配置插件参数,相关参数说明请参见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

轻量级的日志收集器和转发器,部署在每个节点上采集日志。

DaemonSet

cop-logs

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

DaemonSet

log-operator

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

Deployment

otel-collector

负责收集来自不同应用程序和服务的日志数据,集中后上报至LTS。

Deployment

插件使用说明

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

表3 日志存储位置说明

日志存储位置

支持的日志类型

使用说明

LTS

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

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

AOM

Kubernetes事件

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

版本记录

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

插件版本

支持的集群版本

更新特性

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.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.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事件日志进行采集与转发。