借助DataStream和多路復用實現可觀察性
實時查看日志數據有助于確定應用程序的管理方式和基礎設施的擴展方式。為了確定并解決最終用戶遇到的問題,我們往往需要獲取來自多個來源(如CDN、安全系統、服務器端等)的日志,然而這可能導致復雜的基礎設施設置,會產生不同級別的可見性需求,并且由于數據量大,往往還會產生較高的數據出口成本。
延伸閱讀,點擊鏈接了解 Akamai Cloud Computing
為了實現高效、可預測且具有成本效益的可觀察性工作流,一種方法是實施基于云的多路復用解決方案,在將日志數據發送到相關DevOps團隊之前,先進行數據攝取和解析。結合Akamai的DataStream邊緣日志報告,多路復用可以幫助企業管理日志的傳輸方式和位置,提升數據安全性,并降低整體成本。
本文概括介紹了可觀察性工作流中的業務挑戰、集成和遷移的關鍵要點,并展示了使用Linode Kubernetes Engine(LKE)運行Elastic Stack(ELK)和Vector的多路復用參考架構。
DataStream和多路復用工作流
以下是在可觀察性工作流中使用多路復用與DataStream的大致步驟:
- 運行DataStream的邊緣服務器接收客戶端請求。
- DataStream將日志數據作為單一流輸出到運行多路復用軟件解決方案的LKE集群,該解決方案由ELK棧和Vector組成。
- ELK和Vector攝取日志數據,對日志進行分析、解析,并輸出到用戶定義的對象存儲端點。
- 區域對象存儲桶用于存儲已解析的日志數據。
應對不同挑戰
跨團隊管理可觀察性需求
使用多路復用將日志數據發送給需要的團隊。
許多企業(尤其是大型企業)往往需要將特定日志數據發送給多個地理區域的特定團隊。然而,并不是每個地區的每個團隊都需要(或應該擁有)每一條數據來達到所需的可見性水平。處理未經篩選、未經解析的日志數據不僅耗時易出錯,而且也會造成不必要的安全風險。
將多路復用方法引入可觀察性工作流,可確保相關DevOps團隊只獲取他們所需的數據。這不僅提高了數據安全性,還能提升效率并降低整體日志存儲成本。
海量數據
通過避免傳輸不必要的數據來降低成本。
日志數據對于有效的可觀察性工作流至關重要。然而,日志數據龐大、數量眾多且持續不斷;大量日志數據必須傳輸到某個地方,如果在到達目的地之前沒有正確解析,就可能造成不必要的存儲和數據出口成本。
多路復用可提前整理數據并使用數據“標識符”(如日志特定元數據)將已解析日志定向到指定的目的地,從而降低這些成本。這樣,不僅日志能被發送給正確的團隊,還確保了非必要數據不會首先被發送,從而減少了整體日志存儲量。
在分布式架構中維持可觀察性
確保不同類型日志在需要的地方進行分發。
分布式架構是高可用性、高流量應用的標配。隨著分布式架構的實施,往往會涉及多地區、多VPC、多微服務以及與每個組件相關的日志。除了大量數據外,這還可能導致復雜的監控和可見性需求,這些需求可能因地區而異。
將基于云的多路復用與DataStream邊緣日志記錄相結合,可精確控制CDN、安全系統、服務器端和其他日志如何在多區域基礎設施中處理和分發。
集成和遷移工作
本文涉及的多路復用解決方案不需要遷移任何與應用程序相關的軟件或數據。該解決方案是一種與位置無關的,基于云的管道,位于企業的邊緣交付基礎設施和日志存儲端點(如Amazon S3兼容的桶、Google Cloud Storage等)之間。
通過以下示例,大家可以通過將云端多路復用架構指向Akamai的對象存儲(而非第三方對象存儲解決方案),借此降低整體數據出口成本。
多路復用DataStream設計示意圖
下圖使用單區域、可擴展的LKE集群運行ELK和Vector,從DataStream攝取并解析單一日志流。解析后的日志被發送到由對象存儲桶組成的區域日志處理基礎設施,并在那里進行處理和存儲:
- 發出請求。最終用戶提交應用請求。
- 邊緣服務器接收請求。請求被Akamai的邊緣基礎設施接收,該基礎設施運行了DataStream。如果該請求在邊緣未緩存,最終用戶請求的HTTP數據將被轉發到運行用戶請求信息的區域SaaS集群。
- HTTP數據:HTTP數據傳輸不受影響,也與基于云的多路復用日志解析解決方案無關。
- 日志發送到云基礎設施進行多路復用。DataStream根據最終用戶的請求捕獲并傳輸日志信息。日志不是直接發送到區域日志處理基礎設施,而是以單一流的形式發送到Akamai Cloud上的單區域LKE集群。
- 日志被解析和分發。運行ELK和Vector多路復用解決方案的LKE集群攝取、處理、排序并將解析后的日志傳輸到區域本地日志處理基礎設施。
- 區域桶接收并存儲解析后的日志。由對象存儲桶和軟件組成的本地日志處理基礎設施,會根據解析過程中提供的數據標識符攝取并存儲解析后的日志。這些桶位于與運行最終用戶查詢應用程序SaaS集群相同的區域。
系統和組件
- 邊緣CDN和安全性:Akamai的邊緣基礎設施,接收并路由最終用戶的請求和數據。
- DataStream:Akamai的邊緣原生日志報告服務,是此場景中使用的邊緣解決方案之一。DataStream通過捕獲性能和安全日志并將這些數據流傳輸到用戶定義的目標,提供對流量交付的可見性。
- SaaS集群:跨多個區域的節點集群,運行應用程序后端。
- 本地日志處理:用于攝取LKE集群輸出的日志數據的對象存儲桶和軟件,該LKE集群運行日志多路復用解決方案。與應用程序的SaaS集群位于相同的區域。
- 可選的其他區域處理軟件包括本地ELK?;騎rafficPeak。
- LKE:Linode Kubernetes Engine是Akamai云計算的托管Kubernetes平臺。Kubernetes集群可以通過Cloud Manager、Linode CLI或Linode API快速高效地部署。
- ELK:由Elasticsearch、Kibana和Logstash組成的軟件棧。ELK棧能夠可靠且安全地從任何來源、任何格式的數據中獲取數據,然后進行搜索、分析和可視化。
- Vector:數據解析軟件,用于收集、轉換和路由輸入/輸出數據,包括日志信息。
通過上述解決方案,我們即可在Akamai云計算平臺上實施基于云的多路復用可觀察性解決方案,確保在將日志數據發送到相關團隊之前,先進行必要的數據攝取和解析。在Akamai DataStream邊緣日志和多路復用能力的幫助下,企業將能更好地管理日志傳輸方式和位置,在提升數據安全性的同時大幅降低數據存儲和出口成本。
歡迎通過注冊賬號并獲得額度,親自試用Akamai云計算服務。
—————————————————————————————————————————————————
如您所在的企業也在考慮采購云服務或進行云遷移,
點擊鏈接了解Akamai Linode的解決方案