江蘇移動基於Prometheus實現百億級話單實時全景監控

資料和雲發表於2020-03-27

文章轉載來源:  

摘要:江蘇移動IT運維團隊以SRE理念為指導,結合實時監控“高併發寫入”、“低查詢延時,高查詢併發”、“輕量級儲存”等實際訴求,深入研究時序資料庫的特性和適用程度,打造符合自身系統運維特點的效能管理平臺,實現百億級話單處理過程的實時全景監控分析。

背景

隨著流量業務的高速發展以及已經到來的5G時代,業務支撐系統的規模不斷增大、服務不斷增多,業務、應用和系統執行效能指標資料持續以指數級的速度增長,每日計費話單量已突破百億。系統監控的實時性、準確性的能力不足成為運維工作的瓶頸。

江蘇移動IT運維團隊以SRE理念為指導,結合實時監控“高併發寫入”、“低查詢延時,高查詢併發”、“輕量級儲存”等實際訴求,深入研究時序資料庫的特性和適用程度,打造符合自身系統運維特點的效能管理平臺,實現百億級話單處理過程的實時全景監控分析。

時序庫選型

目前市場較流行的時序資料庫產品有Prometheus、Graphite、InfluxDB、OpenTSDB等,我們比對了這些產品的使用範圍、優缺點。

dce0d6f64da74c4682afa9ee76b84ae2.jpeg

透過比較,我們發現Prometheus最適合搭建BOSS運維監控系統。單個的Prometheus例項就能實現每秒上百萬的取樣,同時支援對於採集資料的快速查詢。Prometheus對於取樣資料進行壓縮儲存,16位元組的取樣資料平均只需要1.37個位元組的儲存空間,極大減少了儲存資源佔用。查詢實時資料時,磁碟I/O平均負載小於1%。

效能管理平臺架構設計

本方案中運維人員以Prometheus時序庫為中心,實現與應用相關的所有實時監控資料的採集、清洗、儲存,並實時展現系統總體和各環節、各獨立應用處理效能、趨勢性的預測和智慧分析,準確掌握系統執行健康度。

6bba84c25649437db33f5a4bbe9cf140.jpeg

圖1 系統架構

1、根據業務系統的部署,我們在雙中心各部署一套Prometheus叢集。

2、對於系統、應用日誌、Java應用我們採用拉取方式採集指標資料;對於應用、業務、元件的效能指標資料採用推送閘道器(pushgateway)暫存資料,然後再由Prometheus拉取的方式採集。

3、為保證實時採集和查詢的高效能,採集Prometheus時序庫中儲存短期內較近資料,同時寫入一份到遠端的歷史時序庫中。

4、視覺化展示和實時告警透過負載均衡從Prometheus和歷史庫中採集資料。

適配性改造

在部署和使用過程中我們發現原生Prometheus存在一些不足,為此我們進行了一些適配改造工作。

1、夯實高可用能力: 原生的Prometheus部署都是單點的,不足以保證資料可用性,為此我們透過服務註冊的方式實現了Prometheus的高可用性。叢集啟動時每個節點都嘗試獲取鎖,獲取成功的節點成為主節點執行任務,若主節點當機,從節點獲取鎖成為主節點並接管服務。

d6a8ac94bc9442cc832ca96fdc2d9e62.jpeg

圖2 高可用能力實現方式

2、最佳化資料儲存方式: 在Prometheus節點上儲存短週期資料用於告警實時觸發和展現,引入InfluxDB用於實時傳輸並儲存長週期的歷史資料,保證採集資料的連續性併為後續資料探勘提供資源支撐。

3、自研改造推送閘道器元件: 在實際使用過程中我們發現推送閘道器(pushgateway)中的資料有較大機率被重複採集到Prometheus中,容易產生錯誤的效能資料和誤告警。為此我們在Prometheus的採集方法中增加從pushgateway拉取資料後主動刪除資料的保障機制,確保資料採集的唯一性。

4、擴充整合資料展示方式: 效能資料視覺化展示原先採用Grafana原生元件,但是使用過程中發現外掛配置靈活性不足,難以展現多種形式關聯指標資料的情形。因此我們自研了視覺化工具,實現涵蓋系統、應用、業務效能等多維度指標的個性化展示,實時掌控系統健康狀態。

5、更改時區: 原生的Prometheus查詢指標時頁面顯示的指標趨勢圖是根據GMT時間顯示的,與北京時間相差8小時,為此我們將原始碼中獲取時間的方式修改成從本地系統時間獲取,成功解決了該問題。

指標採集範圍

結合實際運維場景及需求,整體指標採集分為兩個方面,效能指標和業務指標:

61ba8df8a9654bd19985a7e992b806d8.jpeg

實時展示

透過對各類指標資料加工匯聚,生成BOSS系統健康度統一檢視, 涵蓋各應用效能、業務量、各類服務呼叫量及響應時間等,可以靈活透過多種維度實時展示指標資料,支援下鑽到具體應用、具體程式效能指標,快速實時掌握第一手運維監控資料,實現“運維監控一張圖”,大幅提升系統監控和分析效率,有效節約運維人力資源。

ef0045a7d282435bafcf7def08f81b93.gif

圖3 實時全景檢視

趨勢預測及異常檢測

海量的效能時序資料是運維的寶貴資料資產沉澱,對基礎資料進行有效的建模分析和規劃,輔以合理的演算法學習,實現部分場景的智慧化分析和監測,將大幅提升運維效能,目前已應用於以下運維場景:

1、效能預測: 透過對應用處理速度的實時監控、歷史資料比對分析,自動計算應用處理最大速度,實時準確預測完成待處理話單所需時間。

2、業務趨勢預測: 透過對時序庫中儲存大量系統和業務指標資料按天、周、月維度進行平均、加權序時平均、移動平均、加權移動平均、特列統計等分析,預測未來話單處理趨勢、系統資源利用趨勢,為系統容量管理提供合理依據。

3、異常檢測: 透過對資料進行環比分析、同比分析、均值變化分析、相同時間視窗內資料的均值和標準差分析、區域性資料波動分析、週期性特徵分析等演算法及時發現業務處理異常。

3f9fdde6fd344ba788006b0604e1fb85.jpeg

圖4 效能預測場景示意

總結與展望

目前效能管理平臺能滿足每秒10萬級的監控指標入庫,支撐百億級話單處理過程的實時監控。可透過對這些海量資料的分析,實現容量、效能、故障的精準定位和預測,並前置性地做好應對措施以規避問題的產生和蔓延。

該效能平臺已成功應用在BOSS系統,未來將進一步總結經驗並持續改進提升,陸續向其他業務支撐領域和管信領域進行推廣。

作者丨王娟、王鑫、田叔
來源丨IT運維新視界(ID:gh_44ebc0cc0179)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2682958/,如需轉載,請註明出處,否則將追究法律責任。

相關文章