全部產品
Search
文件中心

Container Service for Kubernetes:日誌概述

更新時間:Aug 19, 2025

叢集上的應用、容器以及基礎架構組件都會持續產生大量分散的日誌資料,使得日誌的採集和管理較為複雜。ACK叢集與阿里雲Log ServiceSLS整合,提供解決方案簡化日誌管理流程。

說明

如需瞭解SLS的功能以及基本術語,請參見什麼是Log Service術語表

日誌採集組件介紹

日誌採集組件與SLS深度整合,通過自動化發現方式採集容器日誌,有效簡化日誌管理流程。該組件支援文本日誌、Binlog、HTTP資料等多種格式。日誌資料可直接持久化儲存至SLS,並能夠藉助SLS的即時分析與查詢功能快速識別和定位異常問題,提升故障處理效率,降低營運成本。當前支援的日誌採集組件如下。

  • LoongCollector採集:LoongCollector是Log Service推出的新一代採集Agent,是Logtail的升級版,未來還將融合Arms的相關採集Agent能力,包括Prometheus抓取和eBPF無侵入採集等。

  • Logtail採集:Logtail是Log Service提供的日誌採集Agent,用於採集阿里雲ECS、自建IDC或其他雲廠商等伺服器上的日誌。Logtail基於記錄檔,無侵入式採集日誌。您無需修改應用程式代碼,且採集日誌不會影響您的應用程式運行。

日誌採集原理

以下分別介紹日誌採集的兩種方式及其流程。

採集流程

在ACK叢集中,通過部署日誌採集組件,將各類日誌資料安全傳輸至SLS進行儲存和分析。此方式簡化了配置和管理,提升了效率。基本流程如下:

整個流程包括:

  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。這不僅便於集中管理和分析控制面的組件運行狀態,還有助於快速排查問題、監控組件健康情況及驗證自訂參數配置的效果。

每種Log ServiceLogstore對應一個Kubernetes控制面組件。

採集ACK託管叢集控制面組件日誌

網路組件日誌

  • 支援採集Ingress組件的訪問日誌,協助您瞭解應用接入層的流量動態。

  • 支援採集CoreDNS日誌,協助您識別和解決DNS解析緩慢、異常訪問請求等問題。

資料面組件日誌

支援對儲存外掛程式Terway網路Flannel網路Auto Scaling等外掛程式進行日誌採集。

採集叢集資料面組件日誌

使用限制

限制項

限制說明

叢集版本

  • 使用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組件

  • CPU:最少預留0.1 Core。

  • 記憶體:主機情境最少需要 30MB,K8s情境最少需要 150MB。K8s Controller/Operator最少需要 100MB。

實際使用量與採集速率、監控目錄和檔案數量、發送阻塞程度有關,請保證實際使用率 < 限制80%。

更多使用限制,請參見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過程中有任何疑問,歡迎您聯絡我們