全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:日志概述

更新时间:May 21, 2025

集群上的应用、容器以及基础架构组件都会持续产生大量分散的日志数据,使得日志的采集和管理较为复杂。ACK集群与阿里云日志服务SLS集成,提供解决方案简化日志管理流程。

说明

如需了解SLS的功能以及基本术语,请参见什么是日志服务术语表

日志采集组件介绍

日志采集组件与SLS深度集成,通过自动化发现方式采集容器日志,有效简化日志管理流程。该组件支持文本日志、Binlog、HTTP数据等多种格式。日志数据可直接持久化存储至SLS,并能够借助SLS的实时分析与查询功能快速识别和定位异常问题,提升故障处理效率,降低运维成本。当前支持的日志采集组件如下。

  • LoongCollector采集:LoongCollector是日志服务推出的新一代采集Agent,是Logtail的升级版,未来还将融合Arms的相关采集Agent能力,包括Prometheus抓取和eBPF无侵入采集等。

  • Logtail采集:Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC或其他云厂商等服务器上的日志。Logtail基于日志文件,无侵入式采集日志。您无需修改应用程序代码,且采集日志不会影响您的应用程序运行。

日志采集原理

以下分别介绍日志采集的两种方式及其流程。

采集流程

在ACK集群中,通过部署日志采集组件,将各类日志数据安全传输至SLS进行存储和分析。此方式简化了配置和管理,提升了效率。基本流程如下:

image

整个流程包括:

  1. 部署日志采集组件。

    在为您的集群安装日志采集组件时,除了创建AliyunLogConfig CRD,还根据不同的日志采集组件部署相应的资源,以实现ACK集群内AliyunLogConfig与SLS采集配置的关联。

    • LoongCollector组件:loongcollector-ds(DaemonSet)、loongcollector-operator(Deployment)、alibaba-log-configuration(ConfigMap)

    • Logtail组件:logtail-ds(DaemonSet)、alibaba-log-controller(Deployment)、alibaba-log-configuration(ConfigMap)

  2. 配置采集数据:获取创建的采集配置并根据配置内容进行工作。

    创建采集配置,支持通过控制台、CRD配置或环境变量配置采集日志。具体操作,请参见采集ACK集群容器日志通过DaemonSet方式采集Kubernetes容器标准输出(旧版)通过Sidecar方式采集Kubernetes容器文本日志

  3. 上报日志至SLS:日志采集组件实时上传日志数据至SLS。

采集方式

在Kubernetes集群中,日志采集分为Sidecar和DaemonSet两种方式,两种采集方式对应的采集流程和适用场景有所不同。

  • DaemonSet  日志采集组件部署在kube-system命名空间下,以DaemonSet的形式运行。每个节点的日志采集Pod负责采集该节点上所有Pod的数据(包括标准输出和文件)。 详细信息,请参见采集ACK集群容器日志

  • Sidecar

    每个业务Pod中运行一个日志采集容器,与主容器共享日志Volume。详细信息,请参见通过Sidecar方式采集Kubernetes容器文本日志

分类

DaemonSet方式

Sidecar方式

适用场景

日志分类明确、功能较单一的集群。

  • 集群属于单一租户,功能单一或业务不多。

  • 希望对同一个节点的容器使用相同的日志采集配置。

  • 希望采集标准输出流。

  • 希望资源消耗低。

大型、混合型集群。

如需对每个Pod使用不同的日志采集配置,可以采取该方式进行日志采集。但该方式的单Pod产生的日志量大、资源消耗大。

资源占用

在每个节点上运行一个日志采集 Pod。

在每个Pod上运行一个日志采集容器。

部署运维

只需维护DaemonSet。

每个需要采集日志的Pod都需要部署日志采集容器。

采集日志类型

标准输出和文本日志。

文本日志。

支持的日志类型

在ACK集群中,支持从不同源头采集日志数据,并将其安全地传输至SLS进行存储和分析。

日志类型

说明

相关文档

应用(容器)日志

快速采集ACK集群的容器日志,包括容器的标准输出以及容器内的文本文件。

控制面组件日志

支持采集API Serverkube-schedulerkube-controller-managercloud-controller-manager、Controlplane-Events、ALB Ingress Controller等控制面组件日志,采集到的日志会被发送到指定的Logstore。这不仅便于集中管理和分析控制面的组件运行状态,还有助于快速排查问题、监控组件健康状况及验证自定义参数配置的效果。

每种日志服务Logstore对应一个Kubernetes控制面组件。

采集ACK托管集群控制面组件日志

网络组件日志

  • 支持采集Ingress组件的访问日志,帮助您了解应用接入层的流量动态。

  • 支持采集CoreDNS日志,帮助您识别和解决DNS解析缓慢、异常访问请求等问题。

数据面组件日志

支持对存储插件Terway网络Flannel网络弹性伸缩等插件进行日志采集。

收集系统插件日志

使用限制

限制项

限制说明

集群版本

  • 使用DaemonSet方式采集日志时,要求Kubernetes为1.10.0及以上版本(支持Mount propagation: HostToContainer)。

  • 使用CRD方式(alibaba-log-controller组件)采集日志时,要求Kubernetes为1.16.0及以上版本。

    Kubernetes 1.7.0及以上版本提供的apiextensions.k8s.io/v1beta1 API也支持CRD能力,但Beta版本的API稳定性取决于具体的Kubernetes版本,稳定性未知。

LoongCollector

  • loongcollector-ds:每个节点至少预留0.1 Core CPU,256 MB内存。

  • loongcollector-operator:至少预留0.1 Core CPU,128 MB内存。

logtail-ds组件

  • logtail-ds:每个节点至少预留0.1 Core CPU,256 MB内存。

  • alibaba-log-controller:至少预留0.05 Core CPU,100 MB内存。

更多使用限制,请参见Logtail限制说明

计费说明

在ACK集群中使用SLS所产生的费用 = 集群管理费用 + SLS费用。

  • 集群管理费用:由ACK收取。ACK托管集群Pro版收取,ACK托管集群基础版ACK专有版集群不收取。详情请参见计费概述

  • SLS费用:以按量付费方式进行统一计费。产生的Logstore费用由SLS收取,详情请参见计费概述

常见问题

如何将Project中的日志复制到另一个Project中?

如需将project-alogstore-a的访问日志复制到新建project-blogstore-b中,从而在project-b进行统一的查询与分析,请参见复制Logstore数据

如果日志采集状态异常怎么办?

您在使用Logtail采集容器(标准容器、Kubernetes)日志时,如果采集状态异常,可以根据如何排查容器日志采集异常依次进行问题排查、运行状态检查等运维操作。

关于日志丢失、删除日志、降低日志存储费用等常见问题

如需了解如何变更日志保存天数、如何关闭日志采集等信息,请参见Logstore相关问题

Logtail相关问题

如需了解Logtail日志采集延时情况、如何采集历史日志、修改Logtail配置后多久生效等问题,请参见Logtail基本问题

联系我们

如果您在使用ACK过程中有任何疑问,欢迎您联系我们