集群上的应用、容器以及基础架构组件都会持续产生大量分散的日志数据,使得日志的采集和管理较为复杂。ACK集群与阿里云日志服务SLS紧密集成,提供了一套日志管理解决方案,简化日志管理流程。
日志采集组件介绍
Logtail组件是由SLS提供的专门用于采集ACK集群内日志数据的Agent。您可以在控制台安装该组件,以无侵入的方式采集多种类型的日志文件,包括文本日志、Binlog、HTTP数据,支持标准容器、Kubernetes集群等容器集群的日志数据采集。如果您追求易用性、集成便捷性、资源效率以及成本控制,则推荐使用Logtail组件采集日志。
如需了解Logtail和开源组件的功能区别,请参见日志采集Agent对比。
日志采集原理
以下分别对日志采集方式和采集流程这两个方面进行说明。
采集流程
在ACK集群中,通过部署Logtail组件作为数据收集的桥梁,将各类日志数据安全地收集并传输至SLS进行存储和分析。此方式可以简化日志采集的配置和管理,提高了日志管理的灵活性和效率。使用Logtail采集日志的基本流程和架构如下所示。
整个流程包括:
部署Logtail。具体操作,请参见安装Logtail组件(阿里云Kubernetes集群)。
安装Logtail组件时,默认创建AliyunLogConfig CRD和安装alibaba-log-controller,实现ACK集群内AliyunLogConfig与日志服务中采集配置的关联关系。
Logtail按照配置采集数据:Logtail获取创建的采集配置并根据配置内容进行工作。
安装Logtail后,需要创建采集配置,支持通过控制台、CRD配置和环境变量配置采集日志。具体操作,请参见通过DaemonSet采集Kubernetes容器文本日志、通过DaemonSet方式采集Kubernetes容器标准输出(旧版)、通过Sidecar方式采集Kubernetes容器文本日志。
上报日志至SLS:收集到的日志数据会被Logtail实时上传至SLS。
采集方式
在Kubernetes集群中,日志采集分为Sidecar和DaemonSet两种方式,两种采集方式对应的采集流程和适用场景有所不同。
DaemonSet方式:Logtail组件安装在kube-system命名空间下,DaemonSet名为
logtail-ds
。每个节点的Logtail负责采集这个节点上所有运行的Pod的数据(包括标准输出和文件)。详细信息,请参见通过DaemonSet采集Kubernetes容器文本日志。Sidecar方式:节点中除了业务主容器外,还会运行Logtail的Sidecar容器(需要您手动为业务Pod注入Logtail容器),Logtail容器和主容器共享日志的Volume。在使用虚拟节点时,请使用Sidecar容器方式。详细信息,请参见通过Sidecar方式采集Kubernetes容器文本日志。
分类 | DaemonSet方式 | Sidecar方式 |
分类 | DaemonSet方式 | Sidecar方式 |
适用场景 | 日志分类明确、功能较单一的集群。
| 大型、混合型集群。 如果您需要对每个Pod使用不同的日志采集配置,可以采取该方式进行日志采集。但该方式的单Pod产生的日志量大、资源消耗大。 |
资源占用 | 在每个节点上运行一个Logtail Pod。 | 在每个Pod上运行一个Logtail容器。 |
部署运维 | 只需维护DaemonSet。 | 每个需要采集日志的Pod都需要部署Logtail容器。 |
采集日志类型 | 标准输出和文本日志。 | 文本日志。 |
支持的日志类型
在ACK集群中,支持从不同源头采集日志数据,并将其安全地传输至SLS进行存储和分析。
日志类型 | 说明 | 相关文档 |
日志类型 | 说明 | 相关文档 |
应用(容器)日志 | 支持快速采集ACK集群的容器日志,包括容器的标准输出以及容器内的文本文件。 |
|
控制面组件日志 | 支持采集API Server、kube-scheduler、kube-controller-manager、cloud-controller-manager、Controlplane-Events、ALB Ingress Controller等控制面组件日志,采集到的日志会被发送到指定的Logstore。这不仅便于集中管理和分析控制面的组件运行状态,还有助于快速排查问题、监控组件健康状况及验证自定义参数配置的效果。 每种日志服务Logstore对应一个Kubernetes控制面组件。 | |
网络组件日志 |
| |
系统插件日志 |
使用限制
限制项 | 限制说明 |
限制项 | 限制说明 |
集群版本 |
|
|
更多使用限制,请参见Logtail限制说明。
计费说明
在ACK集群中使用SLS所产生的费用=集群管理费用+SLS费用。
常见问题
如何将Project中的日志复制到另一个Project中?
如需将project-a
中logstore-a
的访问日志复制到新建project-b
的logstore-b
中,从而后续在project-b
进行统一的查询与分析,请参见复制Logstore数据。
如果日志采集状态异常怎么办?
您在使用Logtail采集容器(标准容器、Kubernetes)日志时,如果采集状态异常,可以根据如何排查容器日志采集异常依次进行问题排查、运行状态检查等运维操作。
关于日志丢失、删除日志、降低日志存储费用等常见问题
如需了解如何变更日志保存天数、如何关闭日志采集等信息,请参见Logstore相关问题。
Logtail相关问题
如需了解Logtail日志采集延时情况、如何采集历史日志、修改Logtail配置后多久生效等问题,请参见Logtail基本问题。
联系我们
如果您在使用ACK过程中有任何疑问,欢迎您联系我们。
- 本页导读 (1)
- 日志采集组件介绍
- 日志采集原理
- 采集流程
- 采集方式
- 支持的日志类型
- 使用限制
- 计费说明
- 常见问题
- 如何将Project中的日志复制到另一个Project中?
- 如果日志采集状态异常怎么办?
- 关于日志丢失、删除日志、降低日志存储费用等常见问题
- Logtail相关问题
- 联系我们