作者:裘文成(翊韜)
摘要
隨著企業全球化業務的擴展,如何高效、經濟且可靠地將分布在海外各地的應用與基礎設施日志統一采集至阿里云日志服務 (SLS) 進行分析與監控,已成為關鍵挑戰。
本文聚焦于阿里云高性能日志采集 Agent(iLogtail/LoongCollector)在海外場景下的應用,深入探討了如何為不同部署環境(包括本地機房、跨云平臺及阿里云環境)設計最佳的網絡接入鏈路。我們優先推薦 LoongCollector,因為它能提供更優的可靠性,尤其是在多目標發送場景下。文中詳細分析了多種網絡方案,涵蓋公網直連、全球加速 (GA) 優化、阿里云內網以及專線 /CEN/VPN 接入等方式。
此外,本文還重點介紹了成本優化策略,包括利用 CloudLens for SLS 進行用量診斷,以及將公網鏈路遷移至私網以降低成本。同時,詳細拆解了兩種核心的多目標發送配置:一是通過 Agent 雙寫實現跨地域容災(數據冗余),二是實現多地域/多目標日志分發(按需路由)。
本文旨在為企業構建穩定、低成本、高可用的全球日志系統提供全面的實踐指導和配置參考。
一、 背景與挑戰
隨著企業全球化業務的擴展,日志數據作為可觀測性、故障排查及合規審計的基石,其統一采集與分析變得至關重要。然而,將分布于全球(包括本地機房、其他云廠商、阿里云海外區域)的日志統一接入阿里云 SLS 的過程中,企業普遍面臨以下關鍵挑戰,這些挑戰直接關系到接入鏈路的選擇、整體成本的控制以及系統的高可用性保障:
-
鏈路質量與穩定性挑戰
- 海外公網鏈路質量參差不齊,普遍存在高延遲、高抖動和丟包問題,嚴重影響日志傳輸的實時性與完整性,對接入鏈路的可靠性與效率提出嚴峻考驗。如何選擇和優化網絡路徑,是保障數據穩定傳輸的首要難題。
-
成本控制壓力
- 海量日志通過公網傳輸產生的出流量費用是主要的成本負擔之一,尤其在多云和全球化部署下,如何有效降低數據傳輸成本成為迫切需求。不合理的鏈路選擇或缺乏優化策略會導致成本失控。
-
高可用與容災需求
- 日志系統作為關鍵基礎設施,其可用性至關重要。單一的采集鏈路或目標 SLS Project 存在單點故障風險時,如何通過多目標發送實現跨地域/跨可用區容災,保障日志數據在各種故障場景下不丟失、可持續服務,是確保業務連續性的核心要求。
-
多環境與合規復雜性
- 日志源分布在本地數據中心、多云環境及阿里云不同地域,增加了 Agent 統一部署、配置和管理的復雜度。同時,數據跨境傳輸還需滿足當地數據安全合規要求(如數據本地化等),為鏈路設計和數據處理增加了額外的約束。
二、 核心采集利器:iLogtail/LoongCollector 優勢
在應對上述挑戰時,選擇合適的采集 Agent 至關重要。iLogtail 和 LoongCollector 作為阿里云官方推薦的 Agent,都具備強大的基礎能力,但在可靠性和某些高級特性上,LoongCollector 提供了進一步的增強。
兩者共同的核心優勢:
- 輕量高效:C++ 核心,資源占用低(CPU、內存),對業務服務器性能影響極小。
- 全能采集:支持文件日志、容器日志 (Stdout/Stderr, 文件)、Syslog、HTTP 等多種數據源。
- 強大處理 (Processor 插件):支持在 Agent 端對數據進行解析 (JSON, Regex, 分隔符等)、過濾、脫敏等預處理,從源頭減少無效數據傳輸,優化成本和后端處理效率。
- 發送壓縮:內置支持?
lz4?
壓縮算法,能顯著降低網絡傳輸流量。 - 高可靠傳輸:具備本地磁盤緩存、斷點續傳、失敗重試、流量整形等機制,有效應對網絡波動,保障數據“不丟不重”
- 靈活輸出與多目標:支持將數據發送至 SLS,且單個 Agent 實例可配置將同一份數據同時發送到多個目標 SLS Endpoint(用于雙寫容災或遷移)。
- 云原生與生態集成:與阿里云 ECS、容器服務 ACK/ASK 等深度集成,支持 K8s 環境下的便捷部署 (DaemonSet, Sidecar) 和配置管理 (CRD)。
推薦優先選擇 LoongCollector 的理由:
- 增強的可靠性 - 網絡異常隔離:
- LoongCollector 相比 iLogtail 具有更高的可靠性。一個顯著的優勢是支持發送側網絡異常隔離機制。
- 當配置 Agent 向多個地域(例如新加坡和杭州)的 SLS Endpoint 發送日志時,如果其中一個目標地域(比如新加坡)的網絡連接發生異常(超時、中斷等),LoongCollector 會智能地隔離通往該異常地域的數據發送鏈路。
- 這意味著,向新加坡發送失敗不會阻塞或影響向杭州或其他正常地域的數據發送。這極大地提升了多目標輸出場景下的整體數據傳輸穩定性和時效性,避免了“一點故障影響全局”的問題。
結論:雖然 iLogtail 仍然是一款功能強大的 Agent,但對于有高可靠性要求、特別是涉及多地域日志發送等復雜場景的用戶,強烈建議優先選用 LoongCollector?以獲得其更優的穩定性和網絡容錯能力。目前?LoongCollector?正在灰度發布中,如有更多的疑問,可以工單咨詢我們。
- 版本推薦:
- iLogtail:推薦 2.1.7 版本及以上
- LoongCollector:推薦 3.0.9 版本及以上
三、 鏈路設計:構建高效穩定的數據通道
根據業務部署位置、網絡條件、成本預算以及對延遲、穩定性和安全性的要求,可以選擇不同的接入鏈路方案:
-
方案一:直連公網 Endpoint
- 架構:海外服務器 (Agent) -> 公網 -> SLS 公網 Endpoint (目標 Region)
- 優點:配置最簡單,無需額外購買阿里云網絡產品。
- 缺點:成本中(需要公網流量費用),網絡質量差(跨國延遲高、不穩定),安全性依賴 HTTPS。
- 適用場景:可接受網絡波動和延遲的場景。
-
方案二:通過全球加速優化公網
- 架構:海外服務器 (Agent) -> 公網 -> 就近阿里云 PoP (GA 加速接入點) -> 阿里云骨干網 -> SLS Endpoint (目標 Region, 特別是內地)
- 優點:顯著改善跨國公網傳輸質量,降低延遲和丟包率,部署相對簡單(在 SLS 控制臺開啟傳輸加速,并修改Agent的data endpoint為全球加速域名即可)。
- 缺點:成本高,增加全球加速流量費用,但可能因減少源端重傳、提高效率而間接優化總成本。
- 適用場景:需要遠距離(尤其跨境到中國內地)日志傳輸;對日志實時性、穩定性有較高要求的業務。
- 配置文檔請參考管理傳輸加速【1】和如何開啟網絡傳輸加速服務【2】
-
方案三:阿里云上服務同 Region 私網接入 (最優成本與性能)
- 架構:海外阿里云服務器 (Agent) -> 阿里云 VPC 網絡 -> SLS?私網?Endpoint (同 Region)
- 優點:網絡質量最佳(低延遲、高穩定),安全性最高(數據不出 VPC),成本最低(同 Region 無公網費用)。
- 缺點:要求業務服務器和目標 SLS Project 必須部署在同一阿里云 Region 的 VPC 內。
- 適用場景:強烈推薦所有部署在阿里云上且日志需采集到同 Region SLS 的業務。
-
方案四:混合云/多云場景下,通過專線/云企業網 (CEN) 接入私網
- 架構:海外服務器 (Agent in IDC/其他云 VPC) -> 物理專線/VPN/CEN -> 阿里云 VPC -> SLS?私網?Endpoint (目標 Region)
- 優點:提供私網隔離的安全保障,網絡質量和穩定性優于公網及 GA(尤其是專線)。
- 缺點:需要客戶通過云企業網CEN【3】、高速通道【4】等產品提供的功能將網絡打通,成本最高(涉及專線租賃費、CEN 實例費、帶寬包或流量費),配置部署相對復雜,周期較長。
- 適用場景:本地數據中心 (IDC) 或多云環境需要與阿里云建立高質量私網連接;日志量巨大,對實時性、穩定性、安全性要求極高的核心業務;預算充足。
- 跨地域內網訪問需要提工單支持【5】
方案對比總結表:
四、成本優化策略:節省每一分費用
除了選擇合適的網絡鏈路,還可以通過以下策略進一步優化成本:
4.1 利用 CloudLens for SLS 診斷日志量與公網流量異常
隨著業務的持續增長,接入 SLS 的日志數據量通常會隨之上升。然而,有時可能會出現預期之外的日志量或公網流量激增,這往往源于應用程序打印了過多冗余信息、或者采集配置不夠精確(例如,采集了非必要的調試日志、日志存在重復采集或采集路徑范圍過大采集了無關日志文件)。這些情況不僅可能導致不重要的日志占據了大量資源,還會顯著增加相關的網絡傳輸和存儲成本。
為了有效監控和診斷此類問題,阿里云日志服務 SLS 提供了?CloudLens for SLS?功能。這項服務為您提供了一個集中化的視圖,能夠清晰展示您賬號下所有 Project?的核心資源消耗指標,包括:
-
日志寫入量:
- 各 Project 的實時及歷史寫入數據量。
-
公網流出流量:
- 通過公網 Endpoint 寫入產生的流量。
-
全球加速流量:
- 若使用了全球加速優化鏈路,此項會顯示相關流量。
通過分析 CloudLens 提供的報表 (查看 CloudLens 數據報表【6】),您可以快速定位到消耗量異常(過高或突增)的 Project 或特定時間段。這有助于您及時發現并排查不符合預期的日志寫入行為,例如:
- 識別是哪個業務或哪類日志導致了流量高峰。
- 評估采集配置是否需要優化(如調整采集路徑)。
- 判斷是否存在應用層面的日志打印問題。
基于這些洞察,您可以采取針對性的優化措施,控制成本并提升資源使用效率。如果您在分析 CloudLens 數據或排查具體問題時需要進一步協助,歡迎隨時通過提交工單聯系阿里云技術支持。
參考文檔:如何使用 CloudLens for SLS 可以幫助您分析資源用量【7】和查看 CloudLens for SLS 數據報表?【8】
4.2 數據壓縮,降低網絡帶寬消耗
日志數據,尤其是原始文本日志,往往包含大量冗余信息,直接通過網絡傳輸會消耗可觀的帶寬資源。特別是在跨地域、跨國或通過公網傳輸日志的場景下,高昂的網絡帶寬成本是日志系統總體擁有成本 (TCO) 的重要組成部分。為了有效緩解這一問題,阿里云日志服務 (SLS) 的采集 Agent?LoongCollector?和?iLogtail?均支持在數據發送前進行客戶端壓縮。
核心壓縮技術:LZ4 算法
- 高速與高效:主要采用?
lz4
?壓縮算法。lz4
?是一種高速無損壓縮算法,其核心優勢在于提供了極快的壓縮和解壓速度,同時對客戶端(即日志產生的服務器)的 CPU 資源消耗相對較低。這使其非常適合日志采集這種需要高吞吐量、低延遲的實時數據流處理場景,避免對業務應用的性能產生顯著影響。 - 默認啟用了?
lz4
?壓縮功能:?用戶無需進行額外配置,即可自動享受數據壓縮帶來的網絡帶寬節省。 - 壓縮率:通常可以達到?5 到 10 倍?的壓縮率。
- 效果監控:用戶可以通過阿里云提供的?CloudLens for SLS?功能,查看日志項目 (Project) 的寫入流量壓縮比等相關指標。這提供了一個直觀的方式來量化壓縮功能帶來的實際網絡帶寬節省效果。
4.3 優化日志上報:過濾非必要數據以降低成本與提升效率
在許多場景下,并非所有產生的日志都具有同等的分析價值。例如,調試(DEBUG)級別的日志在生產環境中可能并非必需,或者某些頻繁打印的健康檢查日志對核心業務分析意義不大。將這些低價值或冗余的日志上傳至 SLS 會不必要地增加網絡傳輸成本、SLS 索引和存儲費用,并可能干擾關鍵信息的快速定位。
iLogtail 和 LoongCollector 提供了強大的?Processor 插件機制,允許在 Agent 端對采集到的日志進行預處理和過濾,從而在數據發送前就丟棄掉不需要的日志條目。
您可以根據具體需求,靈活選用以下方法在 Agent 端實現日志過濾:
-
使用 Processor 過濾插件:
- 利用 iLogtail 或 LoongCollector 提供的原生過濾插件或擴展過濾插件,您可以配置匹配規則,過濾無用的日志。
-
基于SPL實現:
- 對于一些復雜的過濾邏輯,可以使用 SPL 編寫處理邏輯,將解析與過濾步驟結合起來。
參考文檔:
- 原生插件:過濾處理【9】
- 擴展插件:過濾日志【10】
- 基于SPL實現正則解析+過濾處理【11】
4.4 平滑遷移:阿里云上服務日志采集從公網切換至私網鏈路
對于歷史上使用公網接入,現希望切換到成本更低、性能更優的私網的場景,往往需要平穩過渡,避免監控中斷。這通常涉及到在遷移期間配置 Agent 進行雙寫。本節將圍繞以下兩個典型場景展開詳細說明。
- 場景1 (日志本地化):原先所有地域日志集中采集到 Project A,現需將 Region B 的日志遷移至同 Region 的 Project B。遷移期間,Region B 的 Agent 同時向 Project A (跨公網/GA) 和 Project B (同 Region 私網) 寫入,保證監控連續性。待 Project B 穩定運行后,停止向 Project A 的寫入。
- 場景2 (業務區域遷移):業務從 Region A 遷移至 Region B。遷移期間,部分服務仍在 A,部分已在 B。為保證統一監控視圖(例如在 Project B),Region A 的 Agent 需要配置雙寫:一份寫入 Project A (同 Region 私網),一份寫入 Project B (跨公網/GA)。待業務完全遷移至 B 后,停止向 Project A 的寫入(或反之,取決于最終監控中心)。
具體步驟可以參考【最佳實踐】還在跨境傳輸數據?數據跨境合規治理實踐— Logtail 數據本地化無損遷移方案【12】
五、多地域日志分發:將不同日志發送到不同目的地
除了為容災或遷移將同一份數據發送到多個地域(如第 4.3 和第五部分所述的雙寫場景)之外,還存在另一種常見需求:
不同日志發送到不同目的地:日志將來自同一臺服務器或 K8s 節點的不同類型或不同來源的日志,分別發送到位于不同地域的 SLS ?中進行處理和分析。
例如:
- 業務機器組在新加坡
- 將系統日志(如 /var/log/messages)中心化采集到統一運維監控的 Project A(位于上海地域)。
- 將業務應用日志(如 app.log)采集到業務所在 Region 的 Project B(位于新加坡地域)。
iLogtail 和 LoongCollector 完全支持這種場景,核心實現方式是為同一個 Agent 實例配置多個 endpoint,具體步驟可以參考以下步驟。
ECS
-
假設 ECS 機器在新加坡,需要同時往上海和新加坡地域寫日志。
-
在日志服務控制臺上,創建 Project A(位于上海地域)和 Project B(位于新加坡地域)。
-
在日志服務控制臺 Project A 和 Project B 下,分別創建機器組。
-
在客戶端所在的服務器上,設置?iLogtail/LoongCollector?的?
ilogtail_config.json?
文件,支持雙地域寫入。
下面提供了?iLogtail/LoongCollector?的?ilogtail_config.json?
配置樣例。其中?LoongCollector?也兼容?iLogtail?的?ilogtail_config.json?
配置樣例。
iLogtail 的?ilogtail_config.json?
配置樣例
{..."config_server_address":"http://logtail.ap-southeast-1-intranet.log.aliyuncs.com","config_server_address_list": ["http://cn-shanghai.log.aliyuncs.com"],"data_server_list": [{"cluster": "ap-southeast-1","endpoint":"ap-southeast-1-intranet.log.aliyuncs.com"},{"cluster": "cn-shanghai","endpoint":"cn-shanghai.log.aliyuncs.com" // 如果需要全球加速,此處換成log-global.aliyuncs.com}],...
}
LoongCollector?的?ilogtail_config.json?
配置樣例
{..."primary_region" : "ap-southeast-1","config_servers" :["http://logtail.ap-southeast-1-intranet.log.aliyuncs.com","http://logtail.cn-shanghai.log.aliyuncs.com"],"data_servers" :[{"region" : "ap-southeast-1","endpoint_list": ["ap-southeast-1-intranet.log.aliyuncs.com"]},{"region" : "cn-shanghai","endpoint_list": ["cn-shanghai.log.aliyuncs.com" // 如果需要全球加速,此處換成log-global.aliyuncs.com]}],...
}
- 重啟?iLogtail/LoongCollector
ACK
-
假設 ACK 集群在新加坡,需要同時往上海和新加坡地域寫日志。
-
在日志服務控制臺上,創建 Project A(位于上海地域)和 Project B(位于新加坡地域)。
-
在日志服務控制臺 Project A 和 Project B 下,分別創建機器組。
-
在 ACK 上,設置?iLogtail/LoongCollector?的?
ilogtail_config.json?
文件,支持雙地域寫入。
iLogtail/LoongCollector?的?ilogtail_config.json?
配置樣例具體可以參考上文?ECS?
中提供的樣例。
a. 創建 configmap
b. 修改 logtail-ds/loongcollector-ds 的 deployment
- 將配置文件作為 configmap 掛載進 logtail-ds/loongcollector-ds
- 修改 ALIYUN_LOGTAIL_CONFIG,指向掛載后的文件路徑
- 重啟 logtail-ds/loongcollector-ds
如何驗證多地域采集成功
- 觀察 Project A 和 Project B 機器組心跳,確認兩個機器組的心跳都是 OK 的,且機器是一致的
參考文檔【13】
- 觀察兩個地域 Project A/Logstore A 和 Project B/Logstore B 下的數據是否有上報
注意:采集狀態監控建議使用?CloudLens for SLS【14】
- Logtail 整體狀態【15】
- Logtail 文件采集監控【16】
- Logtail 異常監控【17】
六、實現跨地域容災:配置采集雙寫
采集雙寫是一種高可用策略,指通過配置,讓客戶端上的 iLogtail/LoongCollector Agent 將同一份日志數據實時、并行地發送到位于不同地域(或同一地域不同可用區)的兩個獨立的阿里云日志服務 (SLS) Project 中。當某個日志服務 可用區發生故障時,您可以采用該方法,將日志采集快速切換到另一個可用的 SLS 地域。
首先您先參考第五章節,配置好多地域采集環境,然后將您的容災 project 下的采集配置開啟允許文件多次采集,即可實現日志被雙寫到容災 project 下。
七、 實施建議與最佳實踐總結
-
評估先行:根據業務部署環境、日志量、實時性/穩定性要求、安全合規需求和成本預算,綜合評估并選擇最合適的網絡鏈路方案。
-
成本與性能權衡:沒有萬能方案,需在成本、性能、安全、復雜度之間找到平衡點。優先考慮同 Region 私網。
-
監控與告警到位:利用 CloudLens 監控整體資源消耗;配置 SLS 告警監控寫入成功率、延遲;監控 Agent 自身狀態 (CPU, 內存, 錯誤日志,網絡鏈路質量)。
-
更可靠的 Agent(LoongCollector):iLogtail/LoongCollector 本身具備高可靠性(緩存、重試),且 LoongCollector 相比 iLogtail 具備更高的可靠性(網絡發送異常隔離等),目前 LoongCollector 正在發布灰度中。
-
LoongCollector 雙寫機制:通過將日志并行發送至多個目標,既能實現跨地域容災(主目標故障時寫入備用目標,避免數據丟失),也能支持平滑遷移(如在公網轉私網等網絡變更場景下,通過臨時雙寫保障服務連續性,避免中斷)。
-
更多疑問:如有更多的疑問,可以工單咨詢我們。
【1】管理傳輸加速
https://help.aliyun.com/zh/sls/user-guide/transmission-acceleration
【2】Logtail 網絡類型,啟動參數與配置文件
https://help.aliyun.com/zh/sls/user-guide/select-a-network-type
【3】什么是云企業網
https://help.aliyun.com/zh/cen/product-overview/what-is-cen
【4】什么是高速通道
https://help.aliyun.com/zh/express-connect/product-overview/what-is-express-connect/
【5】工單支持
https://selfservice.console.aliyun.com/ticket/category/sls/today?spm=a2c4g.86660.0.0.18564dadamoJnw
【6】查看 CloudLens 數據報表
https://help.aliyun.com/zh/sls/user-guide/view-data-reports-2
【7】使用 CloudLens for SLS 分析資源用量
https://help.aliyun.com/zh/sls/user-guide/use-cloudlens-for-sls-to-analyze-resource-usage
【8】查看 CloudLens for SLS 數據報表
https://help.aliyun.com/zh/sls/user-guide/view-data-reports-2
【9】原生插件:過濾處理
https://help.aliyun.com/zh/sls/user-guide/filtration-treatment?spm=a2c4g.11186623.help-menu-search-28958.d_0
【10】擴展插件:過濾日志
https://help.aliyun.com/zh/sls/user-guide/filter-logs?spm=a2c4g.11186623.help-menu-28958.d_2_1_1_2_7_15.94421c72xxV9yd
【11】基于 SPL 實現正則解析+過濾處理
https://help.aliyun.com/zh/sls/user-guide/use-spl-to-collect-text-logs?spm=a2c4g.11186623.help-menu-search-28958.d_1#7aaac3fc1bb1w
【12】【最佳實踐】還在跨境傳輸數據?數據跨境合規治理實踐—Logtail 數據本地化無損遷移方案
https://open.observability.cn/article/xdl26gztdaksogwz/
【13】機器組
https://help.aliyun.com/zh/sls/user-guide/machine-group-overview/?spm=a2c4g.28958.0.i1#section-ijx-mp1-ry
【14】CloudLens for SLS
https://help.aliyun.com/zh/sls/user-guide/cloudlens-for-sls/?spm=a2c4g.456864.0.0.43aa5328FzA7Vx
【15】Logtail 整體狀態
https://help.aliyun.com/zh/sls/user-guide/view-data-reports-2?spm=a2c4g.425764.0.0.73992508OlDYuD#section-79i-58x-ako
【16】Logtail 文件采集監控
https://help.aliyun.com/zh/sls/user-guide/view-data-reports-2?spm=a2c4g.425764.0.0.73992508OlDYuD#section-dws-ox4-jnj
【17】Logtail 異常監控
https://help.aliyun.com/zh/sls/user-guide/view-data-reports-2?spm=a2c4g.425764.0.0.73992508OlDYuD#section-7br-4e0-ctu