叢集上的應用、容器以及基礎架構組件都會持續產生大量分散的日誌資料,使得日誌的採集和管理較為複雜。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進行儲存和分析。此方式簡化了配置和管理,提升了效率。基本流程如下:
整個流程包括:
部署日誌採集組件。
在為您的叢集安裝日誌採集組件時,除了建立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)
配置採集資料:擷取建立的採集配置並根據配置內容進行工作。
建立採集配置,支援通過控制台、CRD配置或環境變數配置採集日誌。具體操作,請參見採集ACK叢集容器日誌、通過DaemonSet方式採集Kubernetes容器標準輸出(舊版)、通過Sidecar方式採集Kubernetes容器文本日誌。
上報日誌至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 Server、kube-scheduler、kube-controller-manager、cloud-controller-manager、Controlplane-Events、ALB Ingress Controller等控制面組件日誌,採集到的日誌會被發送到指定的Logstore。這不僅便於集中管理和分析控制面的組件運行狀態,還有助於快速排查問題、監控組件健康情況及驗證自訂參數配置的效果。 每種Log ServiceLogstore對應一個Kubernetes控制面組件。 | |
網路組件日誌 |
| |
資料面組件日誌 | 支援對儲存外掛程式、Terway網路、Flannel網路和Auto Scaling等外掛程式進行日誌採集。 |
使用限制
限制項 | 限制說明 |
叢集版本 |
|
| |
實際使用量與採集速率、監控目錄和檔案數量、發送阻塞程度有關,請保證實際使用率 < 限制80%。 更多使用限制,請參見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過程中有任何疑問,歡迎您聯絡我們。