概述
阿里雲的可觀測性體系: 日誌管理、監控管理
日誌管理
Kubernetes可觀測性體系概述
-
可觀測性指如何從外部輸出推測及衡量體系內部狀態
-
Kubernetes可觀測性體系包括:監控和日誌,是大型分佈式系統的重要基礎設施
- 監控可以幫助開發者插卡系統的運行狀態
- 日誌可以協助問題的排查和診斷
- 在Kubernetes中,監控和日誌屬於生態的一部分,他並不是核心組件,因此大部分的能力依賴上層的雲廠商的適配。
- Kubernetes定義了介入的接口標準和規範,任何符合接口的組件都可以快速集成。
-
Logging-日誌
- 基於阿里雲日誌服務SLS提供了完整的日誌方案,可以對應用日誌進行收集、處理,並提供了操作審計,kubernetes事件中心等能力。
-
Metrics-監控指標
- 對基礎設施服務(比如ECS、存儲、網絡),雲監控提供了全面的監控。
- 對於業務應用的性能指標,ARMS無需修改業務代碼即可對Java和PHP應用提供全方位的性能監控。
-
Tracing-全鏈路追蹤
- Tracing Analysis爲開發者提供了完整的分佈式應用調用鏈路統計、拓撲分析等工具。
- 能夠幫助開發者快速發現和診斷分佈式應用中的性能瓶頸,提升微服務應用的性能和穩定性。
Kubernetes日誌使用場景
Kubernetes日誌使用場景主要分爲四個大的場景:
- 主機內核的日誌: 協助開發者進行一些常見的問題與診斷:網絡棧異常、驅動異常、文件系統異常、影像節點(內核)穩定的異常。
- Runtime日誌:主要包括Docker日誌
- 核心組件的日誌:APIServer日誌可以用來審計,Scheduler日誌可以診斷調度,etcd日誌可以查看存儲狀態,Ingress日誌可以分析接入層流量
- 部署應用的日誌:可以通過應用日誌分析插卡業務層的狀態,狀態異常。
Kubernetes日誌的採集
從採集位置上劃分,主要分爲三種:
- 宿主機文件
- 容器內文件
- 容器標準/錯誤輸出
阿里雲ACK日誌服務
可創建兩種日誌:
- 集羣日誌服務
- 應用配置日誌服務
監控
監控類型
從監控類型上劃分,在Kubernetes中可以分成4個不同的類型:
- 資源監控:主要監控CPU、內存、網絡等常規指標
- 性能監控:應用的內部監控,通常是通過Hook的機制在虛擬機層、字節碼執行層通過隱式調用,或者是在應用層顯示注入,獲得更深層次的一個監控指標,一般是用來應用的調優和診斷的。
- 安全監控:安全監控主要是對安全進行的一系列的監控監控,類似像越權管理、安全漏洞掃描等。
- 事件監控:事件監控緊密貼合Kubernetes的設計理念,補充常規監控方案的欠缺和弊端。
監控工具
- Cloud Monitor: 基礎資源監控
- SLS: 阿里雲日誌服務
- AHAS: 架構感知監控,應用高可用服務AHAS
- ARMS APM:阿里雲應用性能監控ARMS
- ARMS Prometheus:阿里雲託管版Prometheus
- XTrace:鏈路追蹤Tracing Analysis
基礎資源監控Cloud Monitor
-
雲監控
- 是一項針對阿里雲資源和互聯網應用進行監控的服務
- 雲監控用於監控各雲服務資源的監控指標,探測雲服務ECS和運營商站點的可用性,並針對制定監控指標設置報警。
- 全面瞭解阿里雲上資源的使用情況和業務運行狀況,並及時對故障資源進行處理,保證業務正常運行。
-
查看容器監控數據
-
管理報警規則
日誌服務SLS
-
主要負責日誌的採集、分析
-
可採集以下日誌:
- APIServer等核心組件的日誌
- Service Mesh/Ingress等接入層的日誌
- 應用的標準日誌
-
提供上層的日誌分析能力
-
默認提供了基於API Server的審計分析能力、接入層的可觀測性展現,應用層的日誌分析
應用實時監控服務ARMS
- 是一款阿里雲應用性能管理(APM)類監控產品
- 可以基於前端、應用、業務自定義等維度,迅速便捷地爲企業構架秒級響應的業務監控能力
- ARMS提供一系列的監控定製功能,包括數據接入、數據計算、數據存儲、大盤展示與報警、下游API對接等環節
- 用戶需要關心三件事:數據從哪裏來、實時計算怎麼編排、數據怎麼用
架構感知監控AHAS
- AHAS是架構感知監控,通常在Kubernetes集羣中負載的類型大部分爲微服務,微服務的調用拓撲也比較複雜,因此當集羣的網絡鏈路出問題時,如何快速定位問題、發現問題、診斷問題則成爲了最大的難題。
- AHAS通過網絡的流量和走向,將集羣的拓撲進行展現,提供更高層次的問題診斷方式。
- 爲Kubernetes應用安裝AHAS探針後,AHAS能自動識別系統中的Pod、Deployment、Service和它們與其他組件的依賴關係
- 通過採集Kubernetes元信息,構建Kubernetes資源的物理拓撲關係,支持自建Kubernetes集羣、阿里雲容器服務Kubernetes集羣
不同層次的監控解決方案
從可觀測性的角度,以ACK爲基礎的系統架構可以粗略分爲4個層次,自下而上分別是:
- 基礎設施層
- 容器性能層
- 應用性能層
- 用戶業務層
阿里雲容器服務ACK監控方案詳解
-
基礎設施層可觀測性:包括架構可視化感知方案和基礎設施指標監控方向
-
集羣、容器的性能指標監控:阿里雲託管版Prometheus監控方案、開源Prometheus監控方案、事件的監控方案
-
應用性能可觀測性:無侵入應用監控APM監控方案、侵入應用監控APM監控方案
-
用戶業務可觀測性:自定義日誌監控方案
小結
-
阿里雲容器服務ACK版可觀測性體系包括:
-
Logging-日誌
-
Metrics-監控指標
-
Tracing-全鏈路追蹤
-
-
阿里雲容器服務ACK版集成了日誌服務、在創建集羣時啓用日誌服務、快速採集Kubernetes集羣的容器日誌、包括容器的標準輸出以及容器內的文本文件
-
阿里雲容器服務ACK版提供了雲原生標準的監控接口
-
它將監控的數據消費能力進行了標準化解耦
-
可以實現和不同雲廠商提供的監控服務進行標準化接入
-
目前已經實現多個監控雲服務打通接入
-
-
阿里雲容器服務ACK版監控生態解決方案分爲:
-
基礎設施層場景的可觀測性
-
容器性能層場景的可觀測性
-
應用性能層場景的可觀測性
-
用戶業務層場景的可觀測性
-