云原生日志采集插件
插件简介
云原生日志采集插件(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-3分钟。 |
不涉及 |
权限说明
云原生日志采集插件中的fluent-bit组件会根据用户的采集配置,读取各节点上容器标准输出、容器内文件日志以及节点日志并采集。
fluent-bit组件运行需要以下权限:
- CAP_DAC_OVERRIDE:忽略文件的 DAC 访问限制。
- CAP_FOWNER:忽略文件属主 ID 必须和进程用户 ID 相匹配的限制。
- DAC_READ_SEARCH:忽略文件读及目录搜索的 DAC 访问限制。
- SYS_PTRACE:允许跟踪任何进程。
安装插件
- 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到云原生日志采集插件,单击“安装”。
- 在安装插件页面,根据需求选择“规格配置”。
- 选择“系统预置规格”时,您可根据节点日志量选择“小规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
“小规格”适用于单节点日志小于5000条/s、5MB/s的集群;“大规格”适用于单节点日志小于10000条/s、10MB/s的集群。
- 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。
- 选择“系统预置规格”时,您可根据节点日志量选择“小规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
- (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(不区分大小写),如果不填写单位则表示以字节为单位。
- 设置插件实例的部署策略。
调度策略对于DaemonSet类型的插件实例不会生效。
表1 插件调度配置 参数
参数说明
多可用区部署
- 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
- 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。
- 完成以上配置后,单击“安装”。
组件说明
容器组件 |
说明 |
资源类型 |
---|---|---|
fluent-bit |
轻量级的日志收集器和转发器,部署在每个节点上采集日志。 |
DaemonSet |
cop-logs |
负责生成采集文件的软链接,和fluent-bit运行在同一Pod。 |
DaemonSet |
log-operator |
负责生成内部的配置文件。 |
Deployment |
otel-collector |
负责收集来自不同应用程序和服务的日志数据,集中后上报至LTS。 |
Deployment |
插件使用说明
该插件支持采集容器标准输出日志、容器文件日志、节点日志及K8s事件日志。您可以选择使用云日志服务(LTS)或应用运维管理服务(AOM)存储日志,但二者支持的日志类型存在差异,详情请参见表3。
日志存储位置 |
支持的日志类型 |
使用说明 |
---|---|---|
LTS |
|
请前往日志中心创建策略,具体配置方法请参见通过云原生日志采集插件采集容器日志。 |
AOM |
Kubernetes事件 |
当集群版本为1.19.16、1.21.11、1.23.9或1.25.4及以上时,默认上报所有异常事件和部分正常事件,具体配置方法请参见Kubernetes事件上报应用运维管理(AOM)。 |
版本记录
插件版本 |
支持的集群版本 |
更新特性 |
---|---|---|
1.6.1 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 |
|
1.6.0 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 |
|
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 |
|
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事件日志进行采集与转发。 |