彭亮*,牛鐵,魏寶亮,趙毅
中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100083
高性能計(jì)算在大氣、生態(tài)、高能物理、材料科學(xué)、生命科學(xué)等各個(gè)領(lǐng)域應(yīng)用廣泛,計(jì)算能力逐漸從P級(jí)向E 級(jí)發(fā)展,集群規(guī)模日益龐大且結(jié)構(gòu)復(fù)雜[1-3]。為保障其持續(xù)穩(wěn)定運(yùn)行,需要自動(dòng)化以及智能化的監(jiān)控系統(tǒng)支持系統(tǒng)運(yùn)維管理。與以往中小規(guī)模集群不同,節(jié)點(diǎn)和設(shè)備數(shù)超過(guò)10000 的超大規(guī)模計(jì)算集群具有系統(tǒng)架構(gòu)復(fù)雜、監(jiān)控對(duì)象絕對(duì)數(shù)量多、監(jiān)控?cái)?shù)據(jù)高度并發(fā)等特點(diǎn)[4-5],它的監(jiān)控系統(tǒng)將面臨性能、精準(zhǔn)化、擴(kuò)展性等多方面的問(wèn)題:
(1)高度并發(fā)的數(shù)據(jù)傳輸問(wèn)題。來(lái)自數(shù)萬(wàn)節(jié)點(diǎn)的百萬(wàn)條甚至更多監(jiān)控?cái)?shù)據(jù),要在短時(shí)間內(nèi)、頻繁地匯聚與保存。
(2)海量監(jiān)控?cái)?shù)據(jù)快速讀取問(wèn)題。日均數(shù)百GB的監(jiān)控?cái)?shù)據(jù)在持續(xù)積累和存儲(chǔ)后,需要在使用時(shí)被快速檢索和讀取。
(3)龐大系統(tǒng)中諸多業(yè)務(wù)的差異化精準(zhǔn)監(jiān)控問(wèn)題。管理人員需要針對(duì)不同業(yè)務(wù)以及運(yùn)維監(jiān)控需求,定制化精準(zhǔn)采集所需的監(jiān)控?cái)?shù)據(jù)。
(4)超大規(guī)模集群及多集群橫向擴(kuò)展問(wèn)題。隨著系統(tǒng)規(guī)模的持續(xù)增加,簡(jiǎn)單的二層Agent/Server 架構(gòu)無(wú)法滿足大量節(jié)點(diǎn)及多計(jì)算集群的統(tǒng)一監(jiān)控需求,特別是對(duì)位于不同地域、不同架構(gòu)的計(jì)算集群監(jiān)控。
本文結(jié)合實(shí)際需求,設(shè)計(jì)和實(shí)現(xiàn)了一套工作于超大規(guī)模計(jì)算集群的監(jiān)控系統(tǒng),具備上萬(wàn)節(jié)點(diǎn)和設(shè)備的CPU、內(nèi)存、網(wǎng)絡(luò)、I/O 等運(yùn)行狀態(tài)數(shù)據(jù)、計(jì)算作業(yè)數(shù)據(jù),以及管理員自定義監(jiān)控?cái)?shù)據(jù)的采集、分布式存儲(chǔ)和快速讀取能力,并在此基礎(chǔ)上開(kāi)發(fā)出自動(dòng)故障告警、個(gè)性化數(shù)據(jù)展示等功能。同時(shí),基于獨(dú)特的架構(gòu)設(shè)計(jì),該監(jiān)控系統(tǒng)具有良好的橫向擴(kuò)展能力,可支持異地集群監(jiān)控?cái)?shù)據(jù)的采集與接入。目前該系統(tǒng)部署和應(yīng)用于中國(guó)科學(xué)院某超大型超級(jí)計(jì)算系統(tǒng)中,同時(shí)異地部署于中國(guó)科學(xué)院“地球大數(shù)據(jù)科學(xué)工程”的專用計(jì)算系統(tǒng)[6]中,對(duì)幫助管理員在海量數(shù)據(jù)中快速發(fā)現(xiàn)和定位故障,保障其持續(xù)穩(wěn)定運(yùn)行具有重要意義。
通過(guò)整機(jī)商業(yè)采購(gòu)的高性能計(jì)算集群,常常捆綁有廠商自行開(kāi)發(fā)的商業(yè)版集群監(jiān)控系統(tǒng)。由于和硬件系統(tǒng)出自同一廠商,其具有良好的適配性和兼容性,能夠最大限度地獲取集群內(nèi)各類硬件的狀態(tài)及告警數(shù)據(jù),并通過(guò)高度定制化的圖形界面予以展示。不過(guò),由于商業(yè)開(kāi)發(fā)十分重視成本核算,因此商業(yè)監(jiān)控軟件在功能、監(jiān)控范圍及展示上往往比較固化,更新迭代較慢,很難及時(shí)滿足運(yùn)行管理中與具體業(yè)務(wù)相關(guān)的個(gè)性化監(jiān)控需求。因此,這類監(jiān)控軟件更適合于單純的對(duì)硬件系統(tǒng)的自動(dòng)化監(jiān)控和告警。
商業(yè)軟件之外,Ganglia、Zabbix 以及近年興起的Prometheus 等開(kāi)源軟件系統(tǒng)都可以實(shí)現(xiàn)集群監(jiān)控功能,但也存在各自的局限性。如,Ganglia 采用多播方式完成數(shù)據(jù)傳遞,通過(guò)一個(gè)節(jié)點(diǎn)即可收集到同網(wǎng)段所有節(jié)點(diǎn)的數(shù)據(jù),且支持分層管理和動(dòng)態(tài)增刪功能。但當(dāng)集群規(guī)模持續(xù)增大時(shí),由組播風(fēng)暴產(chǎn)生的全局?jǐn)?shù)據(jù)冗余特性會(huì)導(dǎo)致網(wǎng)絡(luò)性能大幅降低[7]。Zabbix 功能齊全、模板化管理操作方便,但其數(shù)據(jù)存儲(chǔ)于關(guān)系型數(shù)據(jù)庫(kù)極大限制了自身的讀寫性能[8],降低了可擴(kuò)展性。Prometheus 安裝簡(jiǎn)單、插件豐富、查詢高效,但在拉取數(shù)據(jù)時(shí)均需與監(jiān)控端建立TCP鏈接,在面對(duì)超大規(guī)模采集對(duì)象時(shí),需要另外搭建聯(lián)邦集群緩解性能壓力和數(shù)據(jù)丟失問(wèn)題,增加了系統(tǒng)管理難度[9-10]。
綜上所述,現(xiàn)有集群監(jiān)控軟件在面對(duì)海量數(shù)據(jù)采集、傳輸、檢索時(shí)均有不足,難以滿足10000 以上節(jié)點(diǎn)超大規(guī)模計(jì)算集群的實(shí)際監(jiān)控需求,需要從軟件架構(gòu)、傳輸機(jī)制、業(yè)務(wù)耦合、數(shù)據(jù)存儲(chǔ)等方面進(jìn)行改進(jìn)和優(yōu)化。
超大規(guī)模計(jì)算集群監(jiān)控系統(tǒng)主要由數(shù)據(jù)采集、傳輸處理、持久化存儲(chǔ)、個(gè)性化展示,以及告警管理等模塊組成,其主體框架如圖1所示。
圖1 監(jiān)控主體架構(gòu)Fig.1 Architecture of monitoring system
數(shù)據(jù)采集模塊通過(guò)在監(jiān)控端部署采集代理定時(shí)收集默認(rèn)指標(biāo)、自定義指標(biāo)以及業(yè)務(wù)相關(guān)數(shù)據(jù),整理成約定的數(shù)據(jù)格式,發(fā)布至消息管道。數(shù)據(jù)處理組件依據(jù)消息主題訂閱管道中的數(shù)據(jù),在對(duì)其解析處理后實(shí)時(shí)寫入數(shù)據(jù)庫(kù),同時(shí)為了減輕系統(tǒng)存儲(chǔ)和展示的壓力,將默認(rèn)采集指標(biāo)的原始數(shù)據(jù)進(jìn)行多種粒度聚合。告警管理模塊定期對(duì)指標(biāo)數(shù)據(jù)進(jìn)行規(guī)則過(guò)濾分析,如發(fā)現(xiàn)異常則產(chǎn)生告警提示。持久化存儲(chǔ)按時(shí)間序列對(duì)收到的運(yùn)行負(fù)載數(shù)據(jù)、日志數(shù)據(jù)、告警信息等分類存儲(chǔ)。展示模塊則實(shí)現(xiàn)對(duì)系統(tǒng)中單點(diǎn)、整體監(jiān)控情況等進(jìn)行多維度展示??傆蚬芾硐到y(tǒng)通過(guò)跨域接入模塊匯集來(lái)自各分域管理子系統(tǒng)的健康狀況、在線負(fù)載、故障報(bào)警等重要狀態(tài)信息,實(shí)現(xiàn)多集群集中展示、統(tǒng)一管理。
監(jiān)控?cái)?shù)據(jù)采集如圖2所示,主要分為3 類:
圖2 數(shù)據(jù)采集流程Fig.2 Process of monitoring metrics collection
(1)預(yù)置采集項(xiàng):需要在監(jiān)控對(duì)象上部署采集代理,對(duì)通用指標(biāo)進(jìn)行采集。默認(rèn)包括CPU、內(nèi)存、以太網(wǎng)絡(luò)、IB 網(wǎng)絡(luò)、磁盤、I/O、系統(tǒng)基礎(chǔ)信息、關(guān)鍵系統(tǒng)日志等信息,并可根據(jù)需要靈活配置其采樣開(kāi)關(guān)、采樣頻率、過(guò)濾條件等,降低對(duì)監(jiān)控對(duì)象的資源損耗。
(2)自定義采集:針對(duì)預(yù)置采集項(xiàng)之外的批量化監(jiān)控需求,如:特殊硬件的監(jiān)測(cè)指標(biāo)、不能安裝采集代理的網(wǎng)絡(luò)和存儲(chǔ)設(shè)備、具體應(yīng)用服務(wù)的運(yùn)行狀態(tài),以及系統(tǒng)管理員關(guān)注的個(gè)性化狀態(tài)信息等,采用自定義腳本的方式實(shí)施采集。自定義腳本支持Shell、Python 等語(yǔ)言編寫,執(zhí)行結(jié)果輸出成預(yù)定義的標(biāo)準(zhǔn)Json 格式,由采集代理負(fù)責(zé)發(fā)布至消息管道。
(3)調(diào)度信息采集:針對(duì)高性能集群常用的LSF、PBS、Slurm 等作業(yè)調(diào)度系統(tǒng),采集作業(yè)數(shù)量、運(yùn)行狀態(tài)、隊(duì)列信息、消耗機(jī)時(shí)數(shù)、在線用戶等信息。為降低代碼復(fù)雜度,調(diào)度信息由獨(dú)立的模塊完成采集。該模塊部署在可提交計(jì)算作業(yè)的節(jié)點(diǎn)中,采集結(jié)果通過(guò)消息管道回收并解析入庫(kù)。
一個(gè)節(jié)點(diǎn)單次默認(rèn)采集400 余項(xiàng)監(jiān)控指標(biāo),經(jīng)處理后聚合成20 條1KB 的監(jiān)控?cái)?shù)據(jù)。在10,000 節(jié)點(diǎn)的超大規(guī)模計(jì)算集群中,每次采集將產(chǎn)生20 萬(wàn)條數(shù)據(jù),并由各個(gè)節(jié)點(diǎn)經(jīng)網(wǎng)絡(luò)并發(fā)寫入后端數(shù)據(jù)庫(kù)系統(tǒng)。采用傳統(tǒng)的同步傳輸機(jī)制不僅效率低且容易出現(xiàn)數(shù)據(jù)擁塞。為此,本文采用了基于消息中間件的異步傳輸模式,減少了請(qǐng)求響應(yīng)時(shí)間,同時(shí)解耦了通信雙方。
為避免對(duì)集群計(jì)算業(yè)務(wù)的影響,監(jiān)控?cái)?shù)據(jù)均通過(guò)管理網(wǎng)絡(luò)傳輸。如圖3所示,發(fā)送端和接收端通過(guò)“發(fā)布-訂閱”的方式進(jìn)行數(shù)據(jù)的收發(fā),每條數(shù)據(jù)均攜帶主題(topic)標(biāo)簽,接收端基于主題進(jìn)行消息過(guò)濾,主要有以下兩種場(chǎng)景:
圖3 消息中間件數(shù)據(jù)傳輸Fig.3 Data transmission base on Message-Oriented Middleware
(1)采集數(shù)據(jù)的傳輸:采集組件將采集到的指標(biāo)信息及故障規(guī)則觸發(fā)信息等封裝成約定的Json 格式,通過(guò)RESTful 接口直接發(fā)布到消息管道。監(jiān)控管理端從消息管道按照主題類型訂閱自己需要的數(shù)據(jù)。發(fā)布者和訂閱者異步解耦,消息中間件也無(wú)需關(guān)心所服務(wù)的應(yīng)用程序環(huán)境。
(2)規(guī)則數(shù)據(jù)的發(fā)布:監(jiān)控管理端定時(shí)檢查告警規(guī)則設(shè)置或觸發(fā)腳本是否發(fā)生變化,并將更新部分推送到數(shù)據(jù)管道。監(jiān)聽(tīng)該主題的在線節(jié)點(diǎn)訂閱該消息,由此實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)上規(guī)則腳本及任務(wù)的更新,無(wú)需登錄或鏈接到各個(gè)客戶端節(jié)點(diǎn)進(jìn)行批量更新操作。
CPU、內(nèi)存、網(wǎng)絡(luò)等指標(biāo)數(shù)據(jù)推送至消息管道后,后端數(shù)據(jù)處理組件訂閱監(jiān)控?cái)?shù)據(jù),一方面通過(guò)storm組件對(duì)各類數(shù)值型數(shù)據(jù)進(jìn)行流式聚合,形成5 分鐘、1 小時(shí)、1 天的多維度聚合數(shù)據(jù);另一方面直接對(duì)原始數(shù)據(jù)進(jìn)行告警規(guī)則過(guò)濾判斷;最后,將原始數(shù)據(jù)、聚合數(shù)據(jù)、告警數(shù)據(jù)等信息寫入相應(yīng)的數(shù)據(jù)庫(kù)。海量數(shù)據(jù)入庫(kù)有可能出現(xiàn)資源搶占的情況,為保障數(shù)據(jù)的完整性,入庫(kù)異常時(shí)數(shù)據(jù)將自動(dòng)以字節(jié)方式快速緩存至本地文件,待入庫(kù)恢復(fù)正常后,再?gòu)谋镜匚募懭霐?shù)據(jù)庫(kù)持久化。
圖4 數(shù)據(jù)處理流程Fig.4 Process of data processing
監(jiān)控?cái)?shù)據(jù)按照指標(biāo)類型區(qū)分成如表1所示的10類主題,每一組中又含有多項(xiàng)具體指標(biāo),進(jìn)行分組分類存儲(chǔ)。
表1 監(jiān)控指標(biāo)分類Table 1 Classification of monitoring metrics
根據(jù)數(shù)據(jù)的特點(diǎn)和用途,采集到的數(shù)據(jù)分類存儲(chǔ)至多個(gè)數(shù)據(jù)庫(kù)中:負(fù)載狀態(tài)數(shù)據(jù)存儲(chǔ)于時(shí)序數(shù)據(jù)庫(kù);字符型日志數(shù)據(jù)存儲(chǔ)于分布式數(shù)據(jù)庫(kù);資產(chǎn)信息、規(guī)則信息、告警信息等存儲(chǔ)于關(guān)系型數(shù)據(jù)庫(kù)。
同時(shí),考慮海量數(shù)據(jù)搜索、展示等方面的壓力,采用以下存儲(chǔ)策略:
(1)聚合數(shù)據(jù)長(zhǎng)期保存,保證歷史數(shù)據(jù)延續(xù)性;原始數(shù)據(jù)則按照實(shí)際需求短期保存,過(guò)期自動(dòng)清理,以充分利用存儲(chǔ)空間,提高存儲(chǔ)性能。
(2)頻繁訪問(wèn)的近期數(shù)據(jù)放置在熱數(shù)據(jù)區(qū)保證快速讀取,較遠(yuǎn)歷史數(shù)據(jù)存儲(chǔ)在冷數(shù)據(jù)區(qū),在大跨度查詢歷史數(shù)據(jù)時(shí)將有效提高系統(tǒng)響應(yīng)速度。
告警管理支持預(yù)定義和自定義兩種告警規(guī)則。預(yù)定義告警由規(guī)則過(guò)濾組件定期從數(shù)據(jù)庫(kù)同步閾值規(guī)則,在入庫(kù)前數(shù)據(jù)處理組件將對(duì)默認(rèn)采集的指標(biāo)數(shù)據(jù)進(jìn)行規(guī)則判斷,當(dāng)指標(biāo)超出閾值范圍時(shí)自動(dòng)將異常信息轉(zhuǎn)入到告警模塊。自定義告警由運(yùn)管人員根據(jù)實(shí)際需求編制規(guī)則腳本,通過(guò)監(jiān)控管理端下發(fā)至選定節(jié)點(diǎn),創(chuàng)建定時(shí)任務(wù)。如圖5所示,系統(tǒng)周期地執(zhí)行規(guī)則腳本,并簡(jiǎn)潔的以“0”或“1”表示是否為異常事件,同時(shí)按約定的Json 格式返回具體故障信息到消息管道。告警模塊對(duì)返回的海量故障信息進(jìn)行過(guò)濾、去重和合并壓縮處理,降低告警風(fēng)暴,方便運(yùn)管人員準(zhǔn)確、直觀地收取告警信息。
圖5 自定義告警流程Fig.5 Process of self-defined alarms
告警按緊急程度區(qū)分為以下3 個(gè)等級(jí):
特大告警:用于對(duì)直接導(dǎo)致整個(gè)集群服務(wù)中斷的故障告警,如:調(diào)度服務(wù)中斷、LDAP 認(rèn)證異常、子網(wǎng)管理中斷、核心數(shù)據(jù)庫(kù)無(wú)法使用、資源供給異常、關(guān)鍵節(jié)點(diǎn)宕機(jī)、登錄服務(wù)異常等。該類告警一旦觸發(fā),將即時(shí)在24 小時(shí)監(jiān)控大屏展示并發(fā)送告警郵件、微信或短信給管理人員。
重大告警:用于對(duì)雖然發(fā)生但集群仍然可以提供基本服務(wù)的故障告警,如:次關(guān)鍵節(jié)點(diǎn)運(yùn)行狀態(tài)異常、大規(guī)模存儲(chǔ)設(shè)備部分異常、時(shí)間同步服務(wù)異常等。該類故障一旦觸發(fā),除系統(tǒng)展示外,將發(fā)送告警郵件給管理人員。
一般告警:用于對(duì)一般故障告警,如:?jiǎn)喂?jié)點(diǎn)掛載、網(wǎng)絡(luò)、負(fù)載、CPU 溫度、加速卡等異常。該類告警的觸發(fā)將直接在監(jiān)控系統(tǒng)告警頁(yè)面以列表形式展示,同時(shí)可按需配置郵件告警。
系統(tǒng)采用松散耦合的分布式架構(gòu)橫向擴(kuò)展。集中管理系統(tǒng)與分域管理系統(tǒng)在物理上、邏輯上均采用分離設(shè)計(jì),利用http協(xié)議實(shí)現(xiàn)兩者之間的數(shù)據(jù)交換。分域管理系統(tǒng)緊鄰計(jì)算集群部署,或直接部署于計(jì)算集群中,用于對(duì)集群內(nèi)部的硬件運(yùn)行狀態(tài)、負(fù)載運(yùn)行狀態(tài)、日志信息、基礎(chǔ)環(huán)境信息的收集和分析,并進(jìn)行本地持久化存儲(chǔ)和個(gè)性化展示,可自成體系工作。各分域關(guān)鍵狀態(tài)數(shù)據(jù)經(jīng)聚合、壓縮后將通過(guò)標(biāo)準(zhǔn)的RESTful 接口實(shí)時(shí)傳輸至集中管理系統(tǒng)進(jìn)行統(tǒng)一監(jiān)控,緩解海量數(shù)據(jù)對(duì)系統(tǒng)展示及存儲(chǔ)上壓力過(guò)大的問(wèn)題。
超大規(guī)模計(jì)算集群監(jiān)控系統(tǒng)主要采用Java、go、shell 語(yǔ)言編程實(shí)現(xiàn)。后端基于MySQL、InfluxDB、Elasticsearch 等開(kāi)源軟件存儲(chǔ)監(jiān)控?cái)?shù)據(jù)、資產(chǎn)信息。前端展示基于grafana 實(shí)現(xiàn)。采集端與持久化層數(shù)據(jù)的耦合基于輕量級(jí)的分布式消息中間件實(shí)現(xiàn)。不同組件之間通過(guò)RESTful 接口交換數(shù)據(jù)。
超大規(guī)模計(jì)算集群監(jiān)控系統(tǒng)實(shí)現(xiàn)了對(duì)集群內(nèi)重要監(jiān)控信息的準(zhǔn)實(shí)時(shí)采集。針對(duì)單個(gè)服務(wù)/計(jì)算節(jié)點(diǎn),采集CPU、內(nèi)存、磁盤、網(wǎng)卡、GPU 等負(fù)載信息,messages、dmesg 等日志信息;針對(duì)網(wǎng)絡(luò)設(shè)備采集各個(gè)端口當(dāng)前配置狀態(tài)/實(shí)際狀態(tài),端口流量、錯(cuò)包數(shù)/丟包數(shù)等信息。針對(duì)作業(yè)調(diào)度系統(tǒng),采集當(dāng)前運(yùn)行作業(yè)數(shù)、排隊(duì)作業(yè)數(shù)、成功/失敗作業(yè)數(shù)等統(tǒng)計(jì)信息,解析了當(dāng)前及歷史作業(yè)的ID、提交用戶、資源使用量、狀態(tài)、執(zhí)行節(jié)點(diǎn)等信息。
在展示上,實(shí)現(xiàn)了集群全局視角與單節(jié)點(diǎn)/子系統(tǒng)視角相結(jié)合,可對(duì)數(shù)據(jù)靈活檢索、聚合、排序,且支持自定義的展示界面。整機(jī)視角以簡(jiǎn)潔、突出重點(diǎn)為原則,著重展示平均CPU 利用率、平均內(nèi)存利用率、共享存儲(chǔ)I/O 帶寬及IOPS、整機(jī)作業(yè)成功/失敗個(gè)數(shù)、重大告警等核心信息,如圖6所示。單節(jié)點(diǎn)/子系統(tǒng)視角以詳實(shí)直觀為原則,除常用的負(fù)載信息,還提供中斷占比、SWAP 利用率等展示,如圖7所示,方便管理人員快速分析節(jié)點(diǎn)運(yùn)行狀態(tài)。
圖6 整機(jī)7x24 小時(shí)監(jiān)控展示Fig.6 Display for 7*24h monitoring of the total cluster
圖7 單節(jié)點(diǎn)監(jiān)控信息展示Fig.7 Display for monitoring of single node
故障管理實(shí)現(xiàn)了故障規(guī)則個(gè)性化設(shè)置、故障自動(dòng)告警等功能。運(yùn)維人員可根據(jù)應(yīng)用需求編制個(gè)性化腳本、模塊設(shè)置告警規(guī)則,自行定義檢測(cè)指標(biāo)、檢測(cè)方式、執(zhí)行節(jié)點(diǎn)、觸發(fā)閾值、執(zhí)行周期、告警級(jí)別、告警通知等參數(shù),在系統(tǒng)的統(tǒng)一管理下自動(dòng)運(yùn)行、回收與展示結(jié)果,以滿足不同業(yè)務(wù)、不同場(chǎng)景的監(jiān)控需求,如圖8所示。
圖8 故障告警信息列表Fig.8 Alarm information list
超大規(guī)模計(jì)算集群監(jiān)控系統(tǒng)已部署于中國(guó)科學(xué)院某超大型超級(jí)計(jì)算系統(tǒng),以及“地球大數(shù)據(jù)科學(xué)工程”專用計(jì)算系統(tǒng)中。根據(jù)不同監(jiān)控需求,以30秒/次或60 秒/次的采集頻率,實(shí)現(xiàn)了對(duì)集群中全部節(jié)點(diǎn)、分布式存儲(chǔ)、管理網(wǎng)絡(luò)、高速計(jì)算網(wǎng)絡(luò)等設(shè)備,以及集群調(diào)度服務(wù)、認(rèn)證服務(wù)等核心組件和服務(wù)運(yùn)行狀態(tài)的監(jiān)控。日均采集數(shù)據(jù)量208GB,累計(jì)解析作業(yè)信息674 萬(wàn)余條。在被監(jiān)控節(jié)點(diǎn)和設(shè)備數(shù)上萬(wàn)的情況下,從成功采集數(shù)據(jù)到持久化存儲(chǔ)或觸發(fā)告警均在30s 內(nèi)完成。在靈活的自定義采集和規(guī)則定制功能支持下,完成了運(yùn)管人員關(guān)心的故障事件捕獲和自動(dòng)告警通知,特大告警事件捕獲率達(dá)99.9%。同時(shí),還實(shí)現(xiàn)了核心業(yè)務(wù)、資產(chǎn)信息、告警信息之間的關(guān)聯(lián)展示,幫助運(yùn)管人員快速定位故障,應(yīng)用效果良好。
由于采用分布式消息中間件、流式數(shù)據(jù)處理、分布式數(shù)據(jù)庫(kù),以及組件式軟件架構(gòu),監(jiān)控系統(tǒng)具有良好的橫向擴(kuò)展能力。在多中心監(jiān)控模式及必要的硬件支持下,可實(shí)現(xiàn)十萬(wàn)以上節(jié)點(diǎn)的統(tǒng)一監(jiān)控。
本文設(shè)計(jì)和實(shí)現(xiàn)了一種超大規(guī)模計(jì)算集群監(jiān)控系統(tǒng),通過(guò)自定義數(shù)據(jù)采集、消息中間件、分布式數(shù)據(jù)存儲(chǔ)等方式,滿足節(jié)點(diǎn)和設(shè)備數(shù)超過(guò)10,000 的超大規(guī)模計(jì)算集群的個(gè)性化、靈活監(jiān)控需求。目前該系統(tǒng)部署于中國(guó)科學(xué)院某超大型超級(jí)計(jì)算系統(tǒng)和“地球大數(shù)據(jù)科學(xué)工程”專用計(jì)算系統(tǒng)中,運(yùn)行良好,減輕了管理人員的運(yùn)維強(qiáng)度。下一步,將基于已經(jīng)采集和積累的集群狀態(tài)數(shù)據(jù)、作業(yè)負(fù)載數(shù)據(jù),嘗試?yán)萌斯ぶ悄芊椒ㄑ邪l(fā)數(shù)據(jù)關(guān)聯(lián)分析、故障自動(dòng)診斷、運(yùn)行趨勢(shì)預(yù)測(cè)等智能化運(yùn)行管理功能。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。