◆劉霞霞 高阿朋 任春雷 文建軍 史金奇
?
一種基于APM應(yīng)用全鏈路監(jiān)控工具設(shè)計(jì)
◆劉霞霞1高阿朋2任春雷2文建軍1史金奇1
(1.北京中電普華信息技術(shù)有限公司北京 100022;2.國(guó)網(wǎng)內(nèi)蒙古東部電力有限公司信息通信分公司 內(nèi)蒙古 010020)
為了加強(qiáng)國(guó)網(wǎng)蒙東電力有限公司信息通信分公司(以下簡(jiǎn)稱(chēng):蒙東電力)信息運(yùn)維的自動(dòng)化建設(shè),通過(guò)對(duì)現(xiàn)有APM廠商產(chǎn)品的了解和對(duì)比分析,提出了一套適合蒙東電力應(yīng)用自動(dòng)化、高精度、全鏈路的監(jiān)控工具架構(gòu)和功能設(shè)計(jì),并對(duì)拓?fù)浒l(fā)現(xiàn)與展示、鏈路深入診斷、應(yīng)用系統(tǒng)預(yù)警三個(gè)模塊做出詳細(xì)介紹。此工具將在貼近于國(guó)網(wǎng)運(yùn)維角色劃分、基于微服務(wù)微應(yīng)用的工具集合、結(jié)合大數(shù)據(jù)挖掘PCA/邏輯回歸等先進(jìn)算法的海量鏈路數(shù)據(jù)處理、加強(qiáng)AI技術(shù)在運(yùn)維監(jiān)控的應(yīng)用方面實(shí)現(xiàn)創(chuàng)新,研發(fā)成功并且推廣后,在智能運(yùn)維和降低運(yùn)維成本方面具有良好的社會(huì)效益。
全鏈路;微服務(wù);智能運(yùn)維
在《國(guó)家電網(wǎng)信通[2018]108號(hào)國(guó)家電網(wǎng)公司關(guān)于印發(fā)2018年信息通信新技術(shù)創(chuàng)新發(fā)展行動(dòng)計(jì)劃實(shí)施意見(jiàn)的通知》中,國(guó)家電網(wǎng)公司強(qiáng)調(diào),以大云物移智作為創(chuàng)新性工作的創(chuàng)新點(diǎn),進(jìn)一步通過(guò)創(chuàng)新驅(qū)動(dòng)現(xiàn)有信息化建設(shè),讓信息系統(tǒng)的服務(wù)質(zhì)量提高到更滿意的高度。
在進(jìn)行信息化的過(guò)程中,IT基礎(chǔ)設(shè)施不斷增加,IT復(fù)雜性和多樣性也在不斷變化。隨著應(yīng)用系統(tǒng)建設(shè)的愈發(fā)復(fù)雜,傳統(tǒng)的運(yùn)維人員通過(guò)日志或者被動(dòng)分析的方式進(jìn)行應(yīng)用系統(tǒng)監(jiān)控,這就使得原有傳統(tǒng)運(yùn)維手段單一的問(wèn)題越來(lái)越明顯,在這種情況下,很多運(yùn)維人員的時(shí)間和精力都被無(wú)謂地浪費(fèi)在排查故障當(dāng)中[1]。
針對(duì)上述會(huì)議和存在的問(wèn)題,蒙東電力從實(shí)際出發(fā)開(kāi)展基于APM應(yīng)用全鏈路監(jiān)控工具設(shè)計(jì)。
目前蒙東電力的信息系統(tǒng)缺乏對(duì)系統(tǒng)鏈路的異常分析、系統(tǒng)負(fù)載與瓶頸等的預(yù)測(cè),只能通過(guò)被動(dòng)預(yù)警方式,系統(tǒng)擴(kuò)容手段來(lái)處理異常問(wèn)題,現(xiàn)急需一套可靠的預(yù)測(cè)機(jī)制,提前對(duì)可能出現(xiàn)的問(wèn)題和瓶頸進(jìn)行預(yù)測(cè),做到未卜先知。
因此,結(jié)合AIOps智能運(yùn)維[2]的時(shí)代背景,通過(guò)建設(shè)貼近于國(guó)網(wǎng)信息化系統(tǒng)的全鏈路工具集的建設(shè),基于國(guó)網(wǎng)SG-I6000運(yùn)維體系,深入對(duì)信息系統(tǒng)應(yīng)用端、網(wǎng)絡(luò)端整條鏈路進(jìn)行深度的診斷,輔助AI人工智能與大數(shù)據(jù)[3]挖掘等創(chuàng)新技術(shù)對(duì)未來(lái)信息系統(tǒng)瓶頸和負(fù)載的預(yù)測(cè),能夠切實(shí)解決目前蒙東電力信息系統(tǒng)監(jiān)控面臨的實(shí)際問(wèn)題[4]。
目前APM[5]廠商很多,使用技術(shù)和實(shí)現(xiàn)方法各有不同。以下主要從實(shí)現(xiàn)技術(shù)、是否開(kāi)源、鏈路監(jiān)控粒度、可擴(kuò)展性、部署和監(jiān)控復(fù)雜性等方面進(jìn)行對(duì)比,結(jié)果如表1。
表1 APM領(lǐng)域技術(shù)能力對(duì)比
本產(chǎn)品需要在盡可能小的影響應(yīng)用系統(tǒng)性能并且能夠方便運(yùn)維人員快速定位和解決問(wèn)題的情況下進(jìn)行設(shè)計(jì),在系統(tǒng)指標(biāo)達(dá)到瓶頸時(shí)能夠主動(dòng)預(yù)警,出現(xiàn)宕機(jī)等情況能夠快速的定位(代碼級(jí)定位)和解決問(wèn)題,減少人員投入,降低運(yùn)維成本,部署和監(jiān)控易于操作,界面簡(jiǎn)潔不失美觀。
通過(guò)全面了解和對(duì)比APM領(lǐng)域四種技術(shù)能力,最終確定采用Pingpoint作為技術(shù)選型,它能夠更大程度滿足設(shè)計(jì)需求。
全鏈路監(jiān)控與智能分析工具集一期的整體架構(gòu)一共分為4個(gè)部分,如圖1。
(1)Agent應(yīng)用與探針端
Agent端負(fù)責(zé)從應(yīng)用中搜集數(shù)據(jù),Agent 以jar包的形式,安插在業(yè)務(wù)應(yīng)用系統(tǒng)中,只需在啟動(dòng)腳本中加上一行參數(shù)就可以和應(yīng)用一塊運(yùn)行,如圖2。
圖1 整體架構(gòu)圖
圖2 探針圖
Agent端利用JAVA Agent機(jī)制,采用修改應(yīng)用字節(jié)碼的方式將探針邏輯植入到應(yīng)用中,這樣的優(yōu)勢(shì)是對(duì)原有的應(yīng)用無(wú)侵入。
Agent端將探針數(shù)據(jù)搜集出來(lái),基于不同的網(wǎng)絡(luò)環(huán)境,通過(guò)TCP、UDP等多種傳輸方式將Agent數(shù)據(jù)傳遞到Collector搜集端。
(2)Collector搜集端
Collector端主要作用是,接收Agent端發(fā)送過(guò)來(lái)的數(shù)據(jù),將這些數(shù)據(jù)整理,然后加工、分析并處理,根據(jù)數(shù)據(jù)實(shí)時(shí)性的不同和用戶對(duì)探針數(shù)據(jù)的要求,存入到全業(yè)務(wù)數(shù)據(jù)中心中,實(shí)時(shí)數(shù)據(jù)存入到SG-RDB中,歷史數(shù)據(jù)采用Hbase格式,如圖3。
圖3 搜集圖
當(dāng)Agent發(fā)送數(shù)據(jù)量比較大的時(shí)候,Collector端可以通過(guò)開(kāi)啟Zookeeper集群的模式,通過(guò)多個(gè)Collector示例對(duì)搜集過(guò)來(lái)的數(shù)據(jù)進(jìn)行減壓,Collector端整理、匯總、運(yùn)算的指標(biāo),推送給SG-I6000系統(tǒng)。
(3)鏈路數(shù)據(jù)分析端
鏈路數(shù)據(jù)分析端,主要利用Collector搜集端存儲(chǔ)到全業(yè)務(wù)數(shù)據(jù)中心的SG-RDB、Hbase數(shù)據(jù),利用大數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)算法,計(jì)算出瓶頸、負(fù)載等的預(yù)測(cè)結(jié)果,如圖4。
圖4 AI學(xué)習(xí)圖
(4)工具展現(xiàn)端
用戶實(shí)際打交道的是工具展現(xiàn)端,基于不同角色、調(diào)度、運(yùn)檢和領(lǐng)導(dǎo)決策等提供了方便的查看與數(shù)據(jù)展示工具,并且提供應(yīng)用系統(tǒng)瓶頸與負(fù)載預(yù)測(cè)等指標(biāo)用以預(yù)測(cè)。
本項(xiàng)目的部署節(jié)點(diǎn)根據(jù)業(yè)務(wù)不同而改變,推薦的物理部署設(shè)計(jì)如下,如圖5。
圖5 物理部署圖
通過(guò)從PC客戶端到服務(wù)器端,全方位展現(xiàn)應(yīng)用系統(tǒng)、中間件、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)拓?fù)涞慕Y(jié)構(gòu),自動(dòng)監(jiān)測(cè)服務(wù)端應(yīng)用代碼、數(shù)據(jù)庫(kù)、外部服務(wù)等調(diào)用鏈路。操作流程及頁(yè)面展示如圖6、圖7。
圖6 拓?fù)浒l(fā)現(xiàn)與展示流程圖
圖7 應(yīng)用拓?fù)湔故卷?yè)面
基于鏈路的請(qǐng)求分析工具中的慢請(qǐng)求,通過(guò)深入診斷工具對(duì)鏈路進(jìn)行鉆取,從系統(tǒng)網(wǎng)絡(luò)拓?fù)涞墓?jié)點(diǎn)深入到系統(tǒng)中的代碼行號(hào)級(jí)別,發(fā)現(xiàn)瓶頸位置,得出診斷結(jié)論提供給運(yùn)維、研發(fā)人員用于解決問(wèn)題的實(shí)際瓶頸。功能顯示如圖8。
圖8 鏈路深入診斷功能圖
該工具記錄的業(yè)務(wù)系統(tǒng)的狀態(tài)信息,設(shè)置預(yù)警閥值,在系統(tǒng)某一狀態(tài)超出閥值的情況下進(jìn)行告警,明確指明是哪一個(gè)系統(tǒng)出現(xiàn)問(wèn)題,通過(guò)各種消息通知方式通知運(yùn)維人員,方便運(yùn)維人員隨時(shí)查看系統(tǒng)運(yùn)行狀態(tài)。頁(yè)面設(shè)計(jì)如圖9。
圖9 應(yīng)用系統(tǒng)告警頁(yè)面
全鏈路監(jiān)控工具集總共有4個(gè)創(chuàng)新點(diǎn):
(1)貼近于國(guó)網(wǎng)運(yùn)維角色劃分
傳統(tǒng)的性能分析工具并沒(méi)有突出角色化的限制,而智能鏈路分析與預(yù)測(cè)工具,以各種方便實(shí)用的工具,基于國(guó)網(wǎng)運(yùn)維體系中的不同角色:調(diào)度、運(yùn)檢、領(lǐng)導(dǎo)決策等進(jìn)行規(guī)劃。調(diào)度人員使用工具首先通過(guò)預(yù)警信息監(jiān)測(cè)到哪個(gè)系統(tǒng)出現(xiàn)性能異常,并且可以通過(guò)拓?fù)涔ぞ叨ㄎ坏叫畔⑾到y(tǒng)中鏈路具體哪一塊業(yè)務(wù)或者中間件、數(shù)據(jù)庫(kù)等出現(xiàn)的問(wèn)題;運(yùn)檢人員基于調(diào)度人員的定位點(diǎn),通過(guò)工具深度排查業(yè)務(wù),直至代碼行號(hào),精準(zhǔn)定位問(wèn)題;領(lǐng)導(dǎo)與管理者通過(guò)工具看板,對(duì)調(diào)度與運(yùn)檢的結(jié)果整體概覽進(jìn)行查看,并根據(jù)關(guān)鍵問(wèn)題進(jìn)行決策。
(2)基于微服務(wù)[6]的監(jiān)控工具集,工具可裁剪
全鏈路監(jiān)控工具集集合,以微服務(wù)和微應(yīng)用的方式進(jìn)行單獨(dú)部署,每個(gè)獨(dú)立的工具都是一個(gè)獨(dú)立的微服務(wù)和微應(yīng)用。
(3)基于大數(shù)據(jù)挖掘PCA、邏輯回歸等先進(jìn)算法的海量鏈路數(shù)據(jù)處理
全鏈路監(jiān)控工具集一期最主要的創(chuàng)新,基于大數(shù)據(jù)挖掘分析工具和全鏈路監(jiān)控搜集來(lái)的數(shù)據(jù),通過(guò)先進(jìn)的PCA算法、邏輯回歸算法,對(duì)鏈路數(shù)據(jù)進(jìn)行處理和分析,可達(dá)到海量數(shù)據(jù)的處理。PCA通過(guò)線性變換將原始數(shù)據(jù)變換為一組各維度線性無(wú)關(guān)的表示,提取數(shù)據(jù)的主要特征分量,適用于全鏈路數(shù)據(jù)這種高維數(shù)據(jù)的降維分析。邏輯回歸算法,是分類(lèi)和預(yù)測(cè)算法中比較先進(jìn)性的一種,通過(guò)對(duì)歷史數(shù)據(jù)的等線性數(shù)據(jù)的回歸計(jì)算,提高了數(shù)據(jù)挖掘的結(jié)果的精確性,利于后續(xù)數(shù)據(jù)的分析。
(4)加強(qiáng)AI技術(shù)在運(yùn)維監(jiān)控的應(yīng)用
全鏈路監(jiān)控工具集借助于AI人工智能的技術(shù),對(duì)數(shù)據(jù)挖掘整理的鏈路數(shù)據(jù),進(jìn)行學(xué)習(xí)和訓(xùn)練,用以對(duì)信息系統(tǒng)未來(lái)瓶頸和負(fù)載的預(yù)測(cè)。鏈路數(shù)據(jù)形態(tài)呈拉伸狀與非規(guī)律性,借助于AI通過(guò)鏈路數(shù)據(jù)的學(xué)習(xí)和訓(xùn)練,預(yù)測(cè)出應(yīng)用系統(tǒng)未來(lái)一段時(shí)間的信息系統(tǒng)的負(fù)載與瓶頸趨勢(shì),協(xié)助運(yùn)維人員未雨綢繆,早早做好峰值應(yīng)對(duì)與問(wèn)題解決措施。
全鏈路監(jiān)控工具集研發(fā)成功并且推廣后,效益主要體現(xiàn)在兩個(gè)方面:
(1)解決實(shí)際信息化系統(tǒng)的性能問(wèn)題,快速定位問(wèn)題,降低運(yùn)維成本
目前業(yè)務(wù)應(yīng)用系統(tǒng)使用的運(yùn)維工具都是事后分析問(wèn)題,并且分析問(wèn)題單一,隨著應(yīng)用全鏈路監(jiān)控工具集的推廣,將會(huì)采用多種方式、智能化分析、快速準(zhǔn)確定位問(wèn)題,從而降低運(yùn)維成本。形成應(yīng)用按需分配和自主運(yùn)維,降低整體建設(shè)、運(yùn)維成本,滿足不斷快速調(diào)優(yōu)需求,提升可控、在控的能力,減少運(yùn)維投入和降低運(yùn)維難度。
(2)智能分析,提前預(yù)測(cè)
目前國(guó)網(wǎng)體系現(xiàn)狀是被動(dòng)分析錯(cuò)誤堆棧和Dump文件的做法,是當(dāng)出錯(cuò)的時(shí)候才進(jìn)行補(bǔ)救,嚴(yán)重的甚至應(yīng)用系統(tǒng)和服務(wù)器需要停機(jī)。而通過(guò)全鏈路監(jiān)控與智能分析工具集可以通過(guò)對(duì)全鏈路存儲(chǔ)現(xiàn)有數(shù)據(jù)的學(xué)習(xí),進(jìn)行訓(xùn)練,對(duì)信息系統(tǒng)未來(lái)的應(yīng)用瓶頸進(jìn)行預(yù)測(cè)。
本文通過(guò)解決蒙東電力在運(yùn)維方面存在的成本大、耗時(shí)長(zhǎng)、工作重復(fù)煩瑣等問(wèn)題,設(shè)計(jì)出了這套具有降低運(yùn)維成本、快速敏捷、準(zhǔn)確預(yù)測(cè)等的信息監(jiān)控工具,進(jìn)一步完善和提高信息運(yùn)維自動(dòng)化建設(shè),并在智能運(yùn)維和降低運(yùn)維成本方面具有良好的社會(huì)效益。
[1]劉嘉裕.基于分布式微服務(wù)全鏈路實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2018.
[2]LinkedAIOps開(kāi)啟AIOps智能運(yùn)維[J].網(wǎng)絡(luò)安全和信息化,2018(06):16.
[3]聞屏.構(gòu)建全鏈路監(jiān)控打造面向大客戶的主動(dòng)運(yùn)維服務(wù)新體系[J].中國(guó)新通信,2016,18(22):162-163.
[4]彭兵,趙俊,李彥武.應(yīng)用監(jiān)控管理系統(tǒng)在省級(jí)電力公司的應(yīng)用研究[J].電力信息與通信技術(shù),2014,12(06):83-87.
[5]梁飛.信息系統(tǒng)應(yīng)用性能管理(APM)系統(tǒng)在企業(yè)信息化中的作用[J].電子技術(shù)與軟件工程,2014(22):19.
[6]劉丹.一種微服務(wù)架構(gòu)最佳實(shí)踐[A].中國(guó)電機(jī)工程學(xué)會(huì)電力信息化專(zhuān)業(yè)委員會(huì).2017電力行業(yè)信息化年會(huì)論文集[C].中國(guó)電機(jī)工程學(xué)會(huì)電力信息化專(zhuān)業(yè)委員會(huì):人民郵電出版社電信科學(xué)編輯部,2017:5.