陳俊
摘 要: 數(shù)字化時代,數(shù)據(jù)分析是原動力,數(shù)據(jù)中心每日產(chǎn)生的海量監(jiān)控數(shù)據(jù)、日志,散落于各運維管理工具、服務器中。本項目旨在借助大數(shù)據(jù)、機器學習和分布式計算等技術(shù)建立IT運營分析系統(tǒng)(簡稱ITOA),實現(xiàn)PB級運維大數(shù)據(jù)的準實時處理和探索平臺;創(chuàng)新動態(tài)基線算法發(fā)現(xiàn)歷史規(guī)律、預測未來趨勢,在故障診斷、告警決策和性能評估方面智能輔助運維管理,大大提升監(jiān)控預警能力、故障處置速度和運維服務質(zhì)量。
關(guān)鍵詞: 大數(shù)據(jù); 機器學習; ITOA; 動態(tài)基線
中圖分類號:TP391 文獻標志碼:A 文章編號:1006-8228(2018)03-85-04
Construction of ITOA system based on big data environment and machine learning
Chen Jun
(Shanghai Pudong Development Bank, Shanghai 200233, China)
Abstract: In the digital age, data analysis is the driving force. The data center generates a large amount of monitoring data and logs on a daily basis, which are scattered in the operational management tools and servers. This project is designed to establish the IT analysis system (ITOA) by means of big data, machine learning, distributed computing and other emerging technologies, to realize the real-time processing and data exploration platform of the PB level data; the innovative dynamic baseline algorithm discovers the historical law and predicts the trend of the future, and is intelligent assistance operation and management in the aspects of fault diagnosis, alarm decision and performance evaluation, which greatly improves the monitoring and warning capability, the speed of troubleshooting, and the quality of the maintenance service.
Key words: big data; machine learning; ITOA; dynamic baseline
0 引言
近年來大數(shù)據(jù)分析和機器學習的概念越來越熱門,與之相關(guān)的技術(shù)和應用也呈現(xiàn)蓬勃發(fā)展的態(tài)勢,各行各業(yè)都將眼光投向了這一領域,期望利用大數(shù)據(jù)分析和機器學習的手段來提升自身的企業(yè)核心競爭力。
作為數(shù)據(jù)大集中地——數(shù)據(jù)中心,運維了成千上萬的設備,每天產(chǎn)生著TB級乃至更大規(guī)模的數(shù)據(jù),本項目旨在利用開源大數(shù)據(jù)技術(shù),探索機器學習算法,通過對數(shù)據(jù)中心運行的各個系統(tǒng)的性能容量監(jiān)測數(shù)據(jù)、日志數(shù)據(jù)進行實時采集加工、分布式計算、貼合應用場景的建模和調(diào)參,改進傳統(tǒng)性能數(shù)據(jù)、日志分析做法,解決傳統(tǒng)運維過程中一直存在難點或痛點問題。
1 平臺體系架構(gòu)
IT運營關(guān)鍵在于對運維數(shù)據(jù)的分析,業(yè)界還沒有成熟的產(chǎn)品或解決方案,本項目的架構(gòu)設計,參考了業(yè)務大數(shù)據(jù)及部分大數(shù)據(jù)日志分析平臺的做法,引入當前主流的大數(shù)據(jù)組件,搭建起支持離線批量和實時兩種處理模式平臺,一方面支持運維管理中的實時監(jiān)控、另一方面支持離線批量計算實現(xiàn)特征提取。
系統(tǒng)物理架構(gòu)如圖1系統(tǒng)物理架構(gòu)圖所示。
服務器方面,由38臺X86服務器組成,20臺數(shù)據(jù)節(jié)點和2臺管理節(jié)點組成CDH hadoop大數(shù)據(jù)集群,8臺服務器組成ES集群,其中包括兩臺管理節(jié)點合并部署,這些服務器每臺上配備大容量磁盤。4臺服務器用于運行內(nèi)存數(shù)據(jù)庫、部署應用程序和報表服務。2臺web集群用于負載均衡和前端頁面展示。2臺數(shù)據(jù)庫集群保存少量結(jié)果數(shù)據(jù)以及CDH組件的元數(shù)據(jù)等。
網(wǎng)絡方面,大數(shù)據(jù)組件相關(guān)節(jié)點均部署于萬兆網(wǎng)絡,以支持ES[1]和hadoop[2] 的數(shù)據(jù)副本復制。其他應用服務器、數(shù)據(jù)庫服務器、管理節(jié)點等,部署于千兆網(wǎng)絡。系統(tǒng)邏輯架構(gòu)如圖2所示。
圖中共分為IT基礎環(huán)境、數(shù)據(jù)源、數(shù)據(jù)采集清洗規(guī)整、分布式存儲及應用共五層。
⑴ IT基礎環(huán)境,為本系統(tǒng)管理的對象,包括主機、系統(tǒng)、網(wǎng)絡等各個環(huán)節(jié);
⑵ 數(shù)據(jù)源,分為從運維工具中抽取出來的結(jié)構(gòu)化數(shù)據(jù)、以及這些軟件、設備上的非結(jié)構(gòu)化日志數(shù)據(jù);
⑶ 數(shù)據(jù)采集清洗規(guī)整層,用到了支持實時采集的flume+kafka,以及sqoop\FTP\JDBC等非實時的數(shù)據(jù)采集方式;
⑷ 分布式存儲,使用了CDH社區(qū)版的組件、非結(jié)構(gòu)化分布式數(shù)據(jù)庫ES,所有節(jié)點可通過橫向擴展以提升計算處理能力和數(shù)據(jù)存儲量;
⑸ 應用,通過利用底層的大數(shù)據(jù)組件,通過JAVA調(diào)用接口,實現(xiàn)各種運維支持服務。
2 大數(shù)據(jù)機器學習助力IT運營分析
基于上述架構(gòu)搭建而成了實時和離線計算兩種數(shù)據(jù)分析平臺,實現(xiàn)三方面功能模塊支持IT運營分析。
2.1 PB級運維大數(shù)據(jù)準實時處理和探索平臺
運維數(shù)據(jù)分為系統(tǒng)運作過程中自動產(chǎn)生的日志,包括性能容量監(jiān)測數(shù)據(jù)、系統(tǒng)日志,以及人在運維過程中產(chǎn)生的行為和記錄,包括ITIL服務管理流程記錄、服務器登錄日志。
基于開源的運維大數(shù)據(jù)組件框架,搭建起海量運維數(shù)據(jù)處理和存儲平臺,共計從60余種數(shù)據(jù)源中實時抽取每日300GB的運維數(shù)據(jù),單節(jié)點支持數(shù)據(jù)處理的速度峰值達每秒10萬條、均值約3萬條,架構(gòu)上支持橫向擴展,實現(xiàn)數(shù)據(jù)的長久保存和計算能力的擴充。數(shù)據(jù)探索功能上,支持使用類SQL語法進行即時數(shù)據(jù)檢索,易于上手、檢索方式靈活,降低數(shù)據(jù)探索門檻,數(shù)據(jù)分析結(jié)果可直接轉(zhuǎn)化各種圖表,圖表可組成各式儀表盤,方便再次調(diào)閱和彼此共享。
2.2 利用機器學習算法實現(xiàn)異常波動監(jiān)測
創(chuàng)新自研基于歷史基線的動態(tài)監(jiān)測算法,針對CPU、Memory、SWAP、diskIO性能類KPI指標異常抖動情況的監(jiān)控。
首先,通過前端界面的人工標注區(qū)分異常、熔斷、切換三種極大影響基線結(jié)果準確度的事件:
⑴ 異常:當系統(tǒng)發(fā)生異常時,可能出現(xiàn)性能容量陡增,走勢不符合日常規(guī)律的情況,基線的計算需要排除異常區(qū)間的指標值;
⑵ 熔斷:當系統(tǒng)因為異常或者計劃內(nèi)維護,出現(xiàn)服務器重啟的情況,重啟后可能導致系統(tǒng)資源釋放,從而觀測到指標值走勢整體下降,基線的計算需要從重啟后重新開始計算,歷史的值無參考價值;
⑶ 切換:當主備高可用模式的雙機發(fā)生了切換時,原主機因資源包切換至新主機上,導致性能指標值整體下降,新主機資源整體上升,切換后的新主機基線需要以老主機的歷史值計算獲得,老主機基線需要以新主機的歷史值計算獲得;
另外,工作日和休息日的系統(tǒng)運行指標值因交易量不同,呈現(xiàn)出截然不同的特征,同樣需要有所區(qū)分。
綜上兩種情況,計算出當前時刻對應的一組歷史當前時刻指標值,對這些值進行均化獲得當前時刻點基線值,如圖3基線圖所示。
基線(μ)為n個歷史同一時點值的平均值,歷史日期為異常、熔斷、切換,公式為:
圖3 基線圖
其次,計算歷史當前時刻指標標準差并乘以系數(shù)獲得符合正態(tài)分布規(guī)律的波動區(qū)間,為了避免凌晨時間標準差非常小導致波動區(qū)間狹窄,而引起監(jiān)控報警過于敏感的情況,額外增加常量系數(shù),波動區(qū)間如圖4所示。
圖4 波動區(qū)間圖
波動區(qū)間的計算公式如下:
經(jīng)過上述計算獲得波動區(qū)間后,引入大數(shù)據(jù)實時storm流式計算框架,將實時性能數(shù)據(jù)與波動區(qū)間上下限進行對比,當實時性能數(shù)據(jù)持續(xù)偏離波動區(qū)域連續(xù)超過預設的偏離次數(shù)閾值,則聯(lián)動郵件系統(tǒng)發(fā)出監(jiān)控告警。偏離次數(shù)閾值靈活可調(diào),根據(jù)每臺服務器的特性進行設置。
2.3 智能輔助運維決策
智能運維決策共分為三個模塊,故障診斷、告警決策、性能評估:
⑴ 故障診斷功能可實時分析正在發(fā)生或已經(jīng)發(fā)生的事項,包括日志、性能、流程、人員操作等所有進入大數(shù)據(jù)平臺的數(shù)據(jù);可編輯預置特征庫鎖定關(guān)注的相關(guān)信息,通過分高、中、低分級設定關(guān)鍵字或類SQL搜索條件,當故障發(fā)生時,一鍵式點擊查看故障診斷報告,加快搜索定位過程。
⑵ 告警決策功能可根據(jù)中英文的日志告警內(nèi)容采用不同的分析策略,以此提升分詞準確性和相似度準確性。利用TF/IDF算法將告警內(nèi)容量化,對量化后文本矩陣相似度計算。新告警產(chǎn)生后,與知識庫匹配判斷關(guān)鍵等級進行紅色、黃色顏色標識,點開告警后,系統(tǒng)分析出歷史上本機和其他機器此類告警的出現(xiàn)分布,“此類告警”檢索技術(shù)是先對告警進行中英文分詞,然后利用TF/IDF算法將告警量化并進行文本矩陣相似度計算,把90%相似的告警列出,進一步聯(lián)動自動化,對此主機發(fā)布命令獲得進一步信息,整個過程無需登錄服務器。
⑶ 性能評估功能可自動進行性能容量評估,將預定義的評估指標、評估方式、評估閾值轉(zhuǎn)化至系統(tǒng)中形成評估規(guī)則庫,系統(tǒng)自動畫出性能評估報告,并每日自動產(chǎn)生全轄超過閾值的情況匯總清單,以一個100臺主機組成的渠道類系統(tǒng)為例,3人天的評估過程縮短至了10秒內(nèi)自動完成。
3 應用效果分析
經(jīng)濟效益方面,每年約計可節(jié)約人力1628人天。
⑴ 自動性能容量評估,按350個系統(tǒng),一個系統(tǒng)一年4次,每次1人天計算,預計共節(jié)省1400人天;
⑵ 集約化系統(tǒng)監(jiān)控和告警處理,能減少晚間和雙休日值班告警轉(zhuǎn)通知,加速告警處理,按照每天5個告警節(jié)省1小時計算,預計共節(jié)省228人天。
社會效益方面,大大提升數(shù)據(jù)中心運維管理質(zhì)量。
⑴ 排障時間從小時縮短至分鐘;
⑵ 查詢效率從小時縮短至秒;
⑶ 獲取報表時間從天縮短至實時;
⑷ 數(shù)據(jù)可維護規(guī)模從MB提升至TB;
⑸ 數(shù)據(jù)持久存放時間從月擴充至年;
⑹ 運維管理視角從IT拓展至業(yè)務,化被動運維為主動運營。
4 總結(jié)
綜上所述,IT運營分析系統(tǒng)建設項目屬于運維大數(shù)據(jù)新興領域的深入探索和應用,項目通過搭建PB級運維大數(shù)據(jù)準實時處理和探索平臺,實現(xiàn)運維數(shù)據(jù)的整合與關(guān)聯(lián)分析,通過創(chuàng)新研究動態(tài)基線算法,實現(xiàn)對性能指標異動的提前預警,通過數(shù)據(jù)分析實踐智能輔助人在故障診斷、告警決策、性能容量評估方面決策,大大提升了運維能力。
參考文獻(References):
[1] elastic. Elasticsearch Reference[EB/OL].www.elastic.co/guide.
[2] Tom, Wbit. Hadoop:The Definitive Guid[M]. America:
O'reilly,2010.
[3] Jiawei Han and Micheline Kamber.Data Mining Concepts
and Techniques[M].機械工業(yè)出版社,2001.
[4] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, "Bigtable: A
distributed storage system for structured data"[M].Seventh Symposium on Operating System Design and Implementation,2006.
[5] Fay Chang et al., "Bigtable: A Distributed Storage System
for Structured Data"[M], ACM TOCS,2008.26(6):1-4
[6] L. Breiman. Random forests. Machine learning[M],
2001.45(1):5-32