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