從應對日十億量級監控項解密浪潮雲平臺大規模叢集監控
浪潮雲平臺InCloud OpenStack是面向下一代雲資料中心和雲原生應用的智慧雲作業系統,全面基於OpenStack,採用開放標準技術路線,實現使用者業務的自動感知、業務的智慧管理和服務的自動化交付,為使用者構建開放、融合、安全的雲,支撐面向未來的智慧計算世界。浪潮雲平臺InCloud OpenStack已成功應用於金融、政府、能源、環保、教育等行業,累計擁有3000+使用者。
OpenStack是開源 IaaS解決方案,元件眾多,架構複雜,並且技術棧長。隨著基於OpenStack的客戶系統和業務規模的快速提升,實現對系統和業務進行高效、快速、靈活監控和告警的需求越來越迫切,既要保證服務的高可用、高效能、可擴充套件,又要提高異常處理效率,降低損失。
以zabbix、為代表的傳統監控,具有采集方式多樣、外掛成熟、配置靈活等優點,但在大規模OpenStack叢集監控中,卻存在如下缺點:
配置麻煩,無法根據節點上執行的服務自動配置監控項。 效能瓶頸,多采用關係型資料庫,併發能力、讀寫效能等無法支撐大規模叢集。 使用者介面專業複雜,不夠簡單易用。 不易擴充套件,以監控為目標,不易新增智慧分析等功能。
浪潮雲平臺InCloud OpenStack監控模組,提升監控效率
浪潮雲平臺InCloud OpenStack監控模組就是在這個背景下誕生並不斷進行優化的,其整體架構圖如下所示,此架構能夠有效提升監控資料獲取密度與儲存數量級,為運維決策提供資料支撐。
浪潮雲平臺InCloud OpenStack監控模組
浪潮雲平臺InCloud OpenStack監控模組提供了簡單易用的頁面供使用者進行監控管理配置及檢視,包括:支援資源實時指標、歷史曲線;支援採集配置、告警配置、通知配置;支援配置的及時下發和快速生效;支援告警歷史記錄、通知歷史記錄的管理。
浪潮雲平臺InCloud OpenStack監控頁面
面對日十億量級監控項,浪潮InCloud OpenStack如何實現秒級監控?
大規模監控是浪潮雲平臺InCloud OpenStack解決的最核心問題。以某行業客戶的InCloud OpenStack專案為例,其監控模組的物理伺服器規模有500+臺,效能資料採集週期10秒,服務資料週期1-5分鐘,當全部監控項都設定為採集時,每個節點約2000+監控項/週期,每天叢集約產生50億項監控資料。
面對如此龐大量級的監控項,並實現秒級監控,需要解決五個主要問題:大規模部署和海量監控的採集配置該如何進行?大規模叢集的採集壓力如何化解?監控資料的實時性和高併發如何應對?多OpenStack叢集的集中監控如何實現?面對海量告警,又該怎樣快速定位問題?
面對這五個棘手問題,浪潮雲平臺InCloud OpenStack逐一給出瞭解決方案:
1、容器化一鍵部署
叢集規模的擴大對於雲平臺監控的部署特別是監控的配置的要求很高,浪潮雲平臺InCloud OpenStack監控模組的安裝部署實現了容器化,採用Kolla-ansible進行一鍵化部署,部署流程包括採集配置、容器部署、配置表初始化、指令碼釋出、監控變數匯入、頁面匯入等,部署時根據OpenStack節點角色自動配置採集項,例如當此節點部署有mariadb服務,則此節點配置mariadb相關採集;當此節點部署nova-compute服務時,則此節點配置nova-compute相關採集。通過此方案InCloud OpenStack實現了監控一鍵部署。
2、主被動混合採集機制
浪潮雲平臺InCloud OpenStack監控模組資料採集支援集中採集、代理採集以及事件採集三種採集方式,如下圖所示,可實現異構裝置的資料採集,具體包括OpenStack系統本身(宿主機、虛擬機器、叢集、容器、核心服務)、原生OpenStack(宿主機、虛擬機器、叢集、核心服務)、作業系統、資料庫、儲存服務、中介軟體、CEPH儲存等。
這種主被動混合採集機制,既減少了效能資料的採集壓力,有效地校驗了關鍵資源的資料完整性,又提高了關鍵資料的實時性。
混合採集機制
3、高效快取,兼顧時效
浪潮雲平臺InCloud OpenStack採集控器採用客戶端快取機制,可以配置時間和快取量兩個快取閾值,預設時間閾值,只有達到閾值時,才能觸發資料傳送,這種機制大大減低了儲存端的寫入併發,同時兼顧了資料的時效性。另外客戶端採集採用go語言開發,具有併發好、資源佔用低、外掛開發簡單等優點。
高效快取,兼顧時效
4、多OpenStack監控級聯架構
隨著多雲的應用越來越廣泛,多資料中心的集中監控亟待解決。浪潮雲平臺InCloud OpenStack採用自研監控管理元件pluto級聯方案,每個OpenStack叢集採用獨立的pluto用於配置管理上層pluto的介面進行呼叫;而上層的監控平臺的pluto對所有叢集的pluto進行統管,並對各叢集資料進行分析。其架構圖如下所示:
監控級聯架構
5、智慧告警聚合及分析
大規模叢集的海量洪水告警及問題的快速定位是運維過程中需解決的最大難題,浪潮雲平臺InCloud OpenStack監控模組採用兩種方式解決此問題:一是以資源為粒度傳送通知。例如宿主機、雲主機等為資源型別,宿主機A為一個資源,監控模組會對該資源的所有監控項進行聚合,以告警項最嚴重的狀態為資源狀態傳送通知,如下圖所示;二是根因分析,採用jaccard等演算法對告警進行分析,得到根本原因,供運維人員參考。
告警聚合流程
此外,整個浪潮雲平臺InCloud OpenStack監控系統採用鬆耦合的架構,可以新增Hadoop儲存歷史資料,實現高吞吐量和超大規模資料集的處理,也可以新增Spark作為監控告警資料分析工具。
浪潮雲平臺InCloud OpenStack已經在多個行業完成部署,其監控模組幫助某金融機構和商業公司實現了大規模叢集監控,其中,某商業公司InCloud OpenStack私有云單叢集建設規模超過1000臺伺服器,位列全球TOP5,藉助先進的資料中心架構,核心業務實現了彈性計算資源及穩定的平臺,監控模組亦滿足其對資料實時性、高併發的監控需求,保證了服務的高可用、高效能、可擴充套件,有效提升資料中心運維保障效率。