前言
我們在做系統運維保障的時候,關注從前端負載均衡到后端服務的流量情況是很有必要的,可以了解每個后端服務實例接收的流量大小,這有助于確定資源分配是否合理,能夠幫助找出后端服務中的性能瓶頸。同時,當系統出現故障時,如部分用戶無法正常訪問服務,分析負載均衡到后端服務的流量可以快速確定是負載均衡器的問題還是后端服務的問題(例如:如果負載均衡器到某個后端服務的流量突然中斷或者異常下降,而其他后端服務正常,就可以重點排查這個出現問題的后端服務)。
下面我們通過一個實際的例子,來看下我們可以如何通過觀測云來進行從前端到后端的問題分析和排查。
觀測云
觀測云(?www.guance.com?)是一個統一實時監測平臺,它提供全面的系統可觀測性解決方案,幫助用戶快速實現對云平臺、云原生、應用及業務的監控需求。觀測云的核心功能包括:基礎設施監測,日志采集和分析,用戶訪問監測(RUM),應用性能監測(APM),服務可用性監測(撥測),安全巡檢,智能監控等等。
在這個實際案例中,客戶是使用的某專有云的負載均衡,后端配置了云主機做為實例。通過觀測云,可以從這幾個維度來進行可觀測的建設:
- 通過觀測云的 Func 工具(?func.guance.com?)接入云平臺的負載均衡指標,包括實例、監聽器、后端服務實例和端口等維度。Func 提供自定義函數功能,允許用戶通過編寫代碼來實現特定的數據處理、轉換和接入操作。通過 Func 可以靈活地將外部數據引入觀測云的監控體系,例如云平臺監控 API。不同的云平臺都有自己的監控 API,這些 API 提供了獲取云資源監控數據的接口,例如獲取服務器的 CPU 使用率、網絡流量、存儲使用情況等數據。
- 通過觀測云的統一數據采集器 DataKit,安裝在云主機環境中,提供如下維度的可觀測數據:
- 多種系統資源的性能指標,如 CPU 使用率、內存占用、磁盤 I/O、網絡流量等,還能整合日志、事件等數據,為系統監控提供全面數據支持
- eBPF 網絡數據,能夠采集四層、七層網絡數據,可監控網絡連接、流量、延遲、丟包等指標,分析網絡性能問題,還能識別網絡中的異常流量和潛在安全威脅
- 應用性能數據采集,接收鏈路數據,采集應用程序的性能指標,如響應時間、吞吐量、錯誤率等,以及分布式鏈路追蹤信息,幫助用戶全面了解應用性能狀況
分析步驟
有了以上數據之后,我們來看一下如何聯動分析和下鉆:
1、通過儀表盤做為入口,可以及時了解云平臺中負載均衡的流量情況,也包括流量較大的負載均衡的詳細信息(負載均衡的 ID、VIP、端口以及后端云主機實例的 IP 和端口信息)。不過需要注意的是,由于云平臺的 API 一般有讀取限制,因此通過這種方式拉取監控指標,有一定的時間間隔。
2、如果發現有流量較大或者異常的情況,可以直接點擊儀表盤的視圖,進行跳轉,查看詳細的 eBPF 網絡數據。
觀測云支持圖表內置關聯鏈接和自定義關聯鏈接,可以實現從當前圖表跳轉至目標頁面,同時也支持自定義,通過模板變量中對應的變量值傳送數據信息,實現數據聯動。圖表鏈接 - 觀測云文檔
3、定位到相關的云主機,流量確實不小,接下來進一步分析了該主機相關的應用服務情況,發現有很多報錯也就是狀態是 error 的鏈路,并且持續時間都很長。點開某條鏈路,能夠看到相關的 span 調用有上萬條,造成了網絡的頻繁訪問。這時候就可以直接把相關的數據轉發給研發同學來進一步分析和優化了。