中移(蘇州)軟件技術有限公司|吳文昊
面對企業(yè)數(shù)據的爆發(fā)式增長,大數(shù)據系統(tǒng)的節(jié)點數(shù)量眾多、日志數(shù)據繁雜、組件種類多樣等特點,使得傳統(tǒng)的運維工具難以很好地保障系統(tǒng)的穩(wěn)定運行。
目前,市面上傳統(tǒng)的Hadoop運維工具的功能主要集中在自動化安裝部署、集群指標監(jiān)控、集群故障告警等方面,旨在通過自動化處理和腳本執(zhí)行的方式對Hadoop集群進行故障的自動診斷和處理,但是處理手段比較薄弱,并且對于復雜故障的診斷,還是需要依賴資深運維人員的知識積累和經驗。
在自動化安裝部署方面,傳統(tǒng)自動化運維工具基本上可以通過向導的方式完成Hadoop組件在各個節(jié)點的安裝,但是對于集群安裝完成后的配置項,卻無法進行自動化的初始配置,需要運維人員根據部署機器的硬件環(huán)境來進行調整。這就導致即使集群已經安裝部署完成,但是其使用的效率卻比較低,無法達到初步滿足正常生產使用的效果。
在集群指標監(jiān)控上,目前業(yè)界的監(jiān)控指標軟件相對來說較為成熟,大多數(shù)都能夠實現(xiàn)集群,以及節(jié)點和服務級別的多維度監(jiān)控。但是對于這些監(jiān)控指標項的處理分析,卻基本上很難見到,無法根據一些統(tǒng)計學甚至人工智能的算法,來識別指標項之間的關系,從而發(fā)現(xiàn)Hadoop集群深層次的內在聯(lián)系。
在故障告警上,業(yè)界傳統(tǒng)運維工具的功能基本上大同小異,幾乎都是通過前端頁面/郵件/短信等方式,將故障信息告知相關運維人員,并提供了基本的管理功能,如告警周期管理、告警人員管理等。目前的告警功能,主要是在集群異常發(fā)生后,觸發(fā)了預設的告警機制,從而產生告警,而無法對集群的故障進行提前預警和發(fā)現(xiàn),從而實現(xiàn)未雨綢繆、故障規(guī)避的效果。
由上,我們可以看到,在大數(shù)據的運維領域,其實還有很長的路要走。目前的運維機制,對于保障大規(guī)模、超大規(guī)模的Hadoop集群來說,還遠遠不夠。因此,結合機器學習、深度學習以及知識庫等人工智能技術,打造一套能夠自動化發(fā)現(xiàn)故障,分析根因并且提供相關故障解決方案的智能化運維系統(tǒng),顯得尤為關鍵。
從工業(yè)界的角度來說,目前對于Hadoop集群的智能運維,所圍繞的主線集中在故障發(fā)現(xiàn)——根因分析——問題修復——故障規(guī)避的全流程,簡單來說,也就是對于集群已出現(xiàn)的故障,能夠快速分析其發(fā)生原因,并針對性地解決故障,甚至在后期通過故障預處理在故障實際發(fā)生之前就使其得到解決。
圖 深度學習模型訓練和預測流程圖
上述相關功能,很多都要依靠人工智能的技術來進行實現(xiàn),例如對集群資源進行預測,通常采用深度神經網絡模型對輸入數(shù)據訓練時序進行判別,具體流程如圖所示。
從整體的流程圖可以看出,整個預測流程分為離線訓練部分和在線預測部分。離線部分主要包括深度學習模型的訓練和預測技術實現(xiàn),模型的選擇依據數(shù)據特征,可以考慮使用卷積神經網路(CNN)、循環(huán)神經網絡(RNN)、長短時記憶神經網絡(LSTM)等綜合評測模型的結果,選擇最佳模型。而在線部分,主要是基于已成熟的數(shù)學模型,導入實時數(shù)據,進行未來集群資源指標的預測。
在日志分析方面,已采集的日志數(shù)據進行統(tǒng)一存儲,并通過深度學習平臺建立和訓練數(shù)學模型,同時通過深度學習API實時監(jiān)控模型的能力。具體實現(xiàn)步驟如下。
將運維過程中會產生的同等意義的詞語、單詞、符號等內容建立鏈接,形成同義詞詞庫;
將集群、組件、接口中的日志信息、操作流水以及告警信息中含有的關鍵詞進行標注具體事件,并建立知識庫詞典。
將日常監(jiān)控的日志數(shù)據格式過濾,再進行分詞處理,提取關鍵詞后根據同義詞詞庫進行同一化處理,實現(xiàn)以“時序-關鍵詞”為結構的訓練數(shù)據。
將“時序-事件”結構的訓練數(shù)據通過貝葉斯算法進行計算形成類似{時序,事件1→事件2,P(事件2|事件1)}的結果。
對故障事件進行標注、分類,明確集群故障預測目標。
將訓練數(shù)據在RNN中,選擇隱藏層數(shù)量、調整參數(shù)和權重,并多次訓練后得到模型。
模型結果封裝成API提供給上層平臺調用。集群監(jiān)控日志數(shù)據通過格式過濾、分詞處理和關鍵詞提取后,通過封裝API的處理,接入短信、郵件、電話告警,及時提醒運維人員對系統(tǒng)故障進行處理,減少對集群上層應用能力的影響。
目前,隨著大數(shù)據集群部署的越來越多,集群規(guī)模日益增長,對于集群運維的需求越來越強。通過智能運維技術,我們力求盡可能地釋放運維人員壓力,使得運維人員在面對復雜的系統(tǒng)故障時,能夠利用人工智能技術對監(jiān)控指標,日志數(shù)據的多維分析,準確定位故障發(fā)生的原因,并且根據知識庫的反饋,快速找到解決問題的辦法,甚至自動完成故障的排查和處理。