陳俊
摘 要: 數字化時代,數據分析是原動力,數據中心每日產生的海量監控數據、日志,散落于各運維管理工具、服務器中。本項目旨在借助大數據、機器學習和分布式計算等技術建立IT運營分析系統(簡稱ITOA),實現PB級運維大數據的準實時處理和探索平臺;創新動態基線算法發現歷史規律、預測未來趨勢,在故障診斷、告警決策和性能評估方面智能輔助運維管理,大大提升監控預警能力、故障處置速度和運維服務質量。
關鍵詞: 大數據; 機器學習; ITOA; 動態基線
中圖分類號: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 引言
近年來大數據分析和機器學習的概念越來越熱門,與之相關的技術和應用也呈現蓬勃發展的態勢,各行各業都將眼光投向了這一領域,期望利用大數據分析和機器學習的手段來提升自身的企業核心競爭力。
作為數據大集中地——數據中心,運維了成千上萬的設備,每天產生著TB級乃至更大規模的數據,本項目旨在利用開源大數據技術,探索機器學習算法,通過對數據中心運行的各個系統的性能容量監測數據、日志數據進行實時采集加工、分布式計算、貼合應用場景的建模和調參,改進傳統性能數據、日志分析做法,解決傳統運維過程中一直存在難點或痛點問題。
1 平臺體系架構
IT運營關鍵在于對運維數據的分析,業界還沒有成熟的產品或解決方案,本項目的架構設計,參考了業務大數據及部分大數據日志分析平臺的做法,引入當前主流的大數據組件,搭建起支持離線批量和實時兩種處理模式平臺,一方面支持運維管理中的實時監控、另一方面支持離線批量計算實現特征提取。
系統物理架構如圖1系統物理架構圖所示。
服務器方面,由38臺X86服務器組成,20臺數據節點和2臺管理節點組成CDH hadoop大數據集群,8臺服務器組成ES集群,其中包括兩臺管理節點合并部署,這些服務器每臺上配備大容量磁盤。4臺服務器用于運行內存數據庫、部署應用程序和報表服務。2臺web集群用于負載均衡和前端頁面展示。2臺數據庫集群保存少量結果數據以及CDH組件的元數據等。
網絡方面,大數據組件相關節點均部署于萬兆網絡,以支持ES[1]和hadoop[2] 的數據副本復制。其他應用服務器、數據庫服務器、管理節點等,部署于千兆網絡。系統邏輯架構如圖2所示。
圖中共分為IT基礎環境、數據源、數據采集清洗規整、分布式存儲及應用共五層。
⑴ IT基礎環境,為本系統管理的對象,包括主機、系統、網絡等各個環節;
⑵ 數據源,分為從運維工具中抽取出來的結構化數據、以及這些軟件、設備上的非結構化日志數據;
⑶ 數據采集清洗規整層,用到了支持實時采集的flume+kafka,以及sqoop\FTP\JDBC等非實時的數據采集方式;
⑷ 分布式存儲,使用了CDH社區版的組件、非結構化分布式數據庫ES,所有節點可通過橫向擴展以提升計算處理能力和數據存儲量;
⑸ 應用,通過利用底層的大數據組件,通過JAVA調用接口,實現各種運維支持服務。
2 大數據機器學習助力IT運營分析
基于上述架構搭建而成了實時和離線計算兩種數據分析平臺,實現三方面功能模塊支持IT運營分析。
2.1 PB級運維大數據準實時處理和探索平臺
運維數據分為系統運作過程中自動產生的日志,包括性能容量監測數據、系統日志,以及人在運維過程中產生的行為和記錄,包括ITIL服務管理流程記錄、服務器登錄日志。
基于開源的運維大數據組件框架,搭建起海量運維數據處理和存儲平臺,共計從60余種數據源中實時抽取每日300GB的運維數據,單節點支持數據處理的速度峰值達每秒10萬條、均值約3萬條,架構上支持橫向擴展,實現數據的長久保存和計算能力的擴充。數據探索功能上,支持使用類SQL語法進行即時數據檢索,易于上手、檢索方式靈活,降低數據探索門檻,數據分析結果可直接轉化各種圖表,圖表可組成各式儀表盤,方便再次調閱和彼此共享。
2.2 利用機器學習算法實現異常波動監測
創新自研基于歷史基線的動態監測算法,針對CPU、Memory、SWAP、diskIO性能類KPI指標異常抖動情況的監控。
首先,通過前端界面的人工標注區分異常、熔斷、切換三種極大影響基線結果準確度的事件:
⑴ 異常:當系統發生異常時,可能出現性能容量陡增,走勢不符合日常規律的情況,基線的計算需要排除異常區間的指標值;
⑵ 熔斷:當系統因為異常或者計劃內維護,出現服務器重啟的情況,重啟后可能導致系統資源釋放,從而觀測到指標值走勢整體下降,基線的計算需要從重啟后重新開始計算,歷史的值無參考價值;
⑶ 切換:當主備高可用模式的雙機發生了切換時,原主機因資源包切換至新主機上,導致性能指標值整體下降,新主機資源整體上升,切換后的新主機基線需要以老主機的歷史值計算獲得,老主機基線需要以新主機的歷史值計算獲得;
另外,工作日和休息日的系統運行指標值因交易量不同,呈現出截然不同的特征,同樣需要有所區分。
綜上兩種情況,計算出當前時刻對應的一組歷史當前時刻指標值,對這些值進行均化獲得當前時刻點基線值,如圖3基線圖所示。
基線(μ)為n個歷史同一時點值的平均值,歷史日期為異常、熔斷、切換,公式為:
圖3 基線圖
其次,計算歷史當前時刻指標標準差并乘以系數獲得符合正態分布規律的波動區間,為了避免凌晨時間標準差非常小導致波動區間狹窄,而引起監控報警過于敏感的情況,額外增加常量系數,波動區間如圖4所示。
圖4 波動區間圖
波動區間的計算公式如下:
經過上述計算獲得波動區間后,引入大數據實時storm流式計算框架,將實時性能數據與波動區間上下限進行對比,當實時性能數據持續偏離波動區域連續超過預設的偏離次數閾值,則聯動郵件系統發出監控告警。偏離次數閾值靈活可調,根據每臺服務器的特性進行設置。
2.3 智能輔助運維決策
智能運維決策共分為三個模塊,故障診斷、告警決策、性能評估:
⑴ 故障診斷功能可實時分析正在發生或已經發生的事項,包括日志、性能、流程、人員操作等所有進入大數據平臺的數據;可編輯預置特征庫鎖定關注的相關信息,通過分高、中、低分級設定關鍵字或類SQL搜索條件,當故障發生時,一鍵式點擊查看故障診斷報告,加快搜索定位過程。
⑵ 告警決策功能可根據中英文的日志告警內容采用不同的分析策略,以此提升分詞準確性和相似度準確性。利用TF/IDF算法將告警內容量化,對量化后文本矩陣相似度計算。新告警產生后,與知識庫匹配判斷關鍵等級進行紅色、黃色顏色標識,點開告警后,系統分析出歷史上本機和其他機器此類告警的出現分布,“此類告警”檢索技術是先對告警進行中英文分詞,然后利用TF/IDF算法將告警量化并進行文本矩陣相似度計算,把90%相似的告警列出,進一步聯動自動化,對此主機發布命令獲得進一步信息,整個過程無需登錄服務器。
⑶ 性能評估功能可自動進行性能容量評估,將預定義的評估指標、評估方式、評估閾值轉化至系統中形成評估規則庫,系統自動畫出性能評估報告,并每日自動產生全轄超過閾值的情況匯總清單,以一個100臺主機組成的渠道類系統為例,3人天的評估過程縮短至了10秒內自動完成。
3 應用效果分析
經濟效益方面,每年約計可節約人力1628人天。
⑴ 自動性能容量評估,按350個系統,一個系統一年4次,每次1人天計算,預計共節省1400人天;
⑵ 集約化系統監控和告警處理,能減少晚間和雙休日值班告警轉通知,加速告警處理,按照每天5個告警節省1小時計算,預計共節省228人天。
社會效益方面,大大提升數據中心運維管理質量。
⑴ 排障時間從小時縮短至分鐘;
⑵ 查詢效率從小時縮短至秒;
⑶ 獲取報表時間從天縮短至實時;
⑷ 數據可維護規模從MB提升至TB;
⑸ 數據持久存放時間從月擴充至年;
⑹ 運維管理視角從IT拓展至業務,化被動運維為主動運營。
4 總結
綜上所述,IT運營分析系統建設項目屬于運維大數據新興領域的深入探索和應用,項目通過搭建PB級運維大數據準實時處理和探索平臺,實現運維數據的整合與關聯分析,通過創新研究動態基線算法,實現對性能指標異動的提前預警,通過數據分析實踐智能輔助人在故障診斷、告警決策、性能容量評估方面決策,大大提升了運維能力。
參考文獻(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].機械工業出版社,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