天天看點

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

歡迎關注“程式雜貨鋪”公衆号,裡面有精彩内容,歡迎大家收看^_^

1.摘要:

    在大型網際網路架構中,為提升平台的計算能力及資源使用率,普遍采用分布式技術。然而使用分布式技術也會帶來一些潛在問題,若主機的資源需求與資源配置設定不比對、部分主機長時間負載過重,容易導緻服務失效,造成服務中斷或資料丢失;同時當系統發生故障時由于服務分散在不同主機上導緻問題難以定位,故障排查耗時等問題。是以,有必要将AIOps技術應用于分布式系統運維中。針對電信行業某一營運服務,通過對該服務下全部機器的監控資料及該服務的調用耗時資料進行預處理生成機器可計算的資料,使用KNN、邏輯回歸等模型進行分類計算,進而預測出30分鐘後該服務調用是否逾時。是以,我們可以提前對此類告警加以防範或采取措施,進而提前預測故障機器,不必等服務真正出現故障後進行修複操作。

2.功能介紹:

    為提升運維人員的工作效率并減輕運維人員工作負擔,本系統将充分利用大資料及人工智能技術,通過建構監控資料使用者畫像提取出豐富的特征矩陣并與時序資料進行整合,利用機器學習分類算法對特征資訊進行分類計算建構分類模型,通過已訓練生成的分類模型對目前資料進行計算,以實作對分布式服務調用逾時的預測功能。

3.系統架構:

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

                                                                                                  圖1系統架構圖

4.實作原理:

4.1資料采集

    開發人員通過自建監控平台對該服務進行監控,将監控到的主機時序資料及服務調用耗時資料存放至Hadoop以建構全量資料。

4.2建構使用者畫像

    對采集到的資料建構使用者畫像,提取特征矩陣。在建構使用者畫像階段又包括3個步驟:資料預處理、特征抽取、生成标簽。其架構圖如下圖2所示:

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

                                                                                           圖2建構使用者畫像架構圖

  1. 資料預處理:資料預處理類似于ETL工作,主要完成資料清洗,以及對噪聲資料進行過濾,例如黑名單中的資料等,如果涉及到文本資訊處理還需先對文本進行分詞、去停用詞等操作。
  2. 特征抽取:針對字元資料,例如CPU使用率、記憶體使用率進行特定抽取并使用歸一化方法将資料處理為[0,1];針對文本資料主要采用TF*IDF、卡方檢驗、資訊增益相混合的特征抽取方法,首先針對長文本,系統采用TF*IDF方法進行特征抽取,針對短文本,系統采用卡方檢驗方法進行特征抽取,然後系統使用資訊增益對特征進行打分,根據評分設定權重。
  3. 建構标簽體系:對監控資料進行标簽處理,建構标簽體系。通常建構三層标簽體系,前兩層标簽為細粒度标簽,往往從資料采集層擷取,針對不同服務選用不同服務逾時門檻值進行切分,例如針對權限服務我們選擇當調用耗時超過100毫秒設為異常資料否則為正常資料;而第三層為粗粒度标簽,系統使用K-means算法對已抽取的特征資訊進行聚類計算,生成相應的K個聚簇,令這K個聚簇的質心為粗粒度标簽資訊。

4.3資料存儲

    将提取出的特征資訊、标簽資料存儲至Hive中,以建構資料倉庫,友善後續進行統計分析及模型訓練;

4.4資料模組化

    此子產品為本系統重點子產品,本系統主要選用機器學習的分類算法,其中分類算法種類繁多,針對衆多算法我們通過對已處理後的監控資料進行模型實驗以驗證哪種模型更适合我們的場景,其驗證結果如下表1所示:

                                                                                           表1模型驗證結果表

accurate

precision

(正常)

recall

(正常)

F1

(正常)

precision

(異常)

recall

(異常)

F1

(異常)

KNN(uniform) 0.88095 0.88 1 0.94 0.5 0.5 0.5
KNN(distance) 0.87797 0.88 1 0.94 0.25 0.33 0.28
Logistic Regression 0.88095 0.88 1 0.94
Naïve Bayes 0.12797 0.8 0.01 0.03 0.12 0.97 0.21
SVM 0.88095 0.88 1 0.94
Decision Tree 0.78273 0.88 1 0.94 0.18 0.16 0.17
Random Foreast 0.88095 0.88 1 0.94
AdaBoost 0.88095 0.88 1 0.94
GBDT 0.88095 0.88 1 0.94
LSTM 0.96541 0.88 1 0.94

    實際運維工作中,運維人員更加關注針對故障資訊預測得到的結果,是以實驗中突出針對預測到故障資訊所計算得到的評價名額進行對比,我們對異常資料的預測效果進行加粗,可以發現KNN模型更适合分布式服務調用耗時的預測場景,于是我們選擇KNN對資料進行模型計算,通過表1可以得出以下資訊:

  1. KNN算法應用于分布式服務故障預測場景中的效果明顯優于其它七種分類算法,基于KNN算法所得到的實驗結果中,針對故障資料所計算得到的召回率、精确率及F測度值均優于其它七種算法達到的名額效果。
  2. 雖然樸素貝葉斯算法對故障資料的召回率相對較高,但其準确率太低,是以不适用于該應用場景。

    綜上所述,KNN算法比較适合應用于分布式服務故障預測,同時借助其優異的資料結構能夠有效地進行分布式計算任務。另外由于主機每種性能名額之間存在互相聯系,同時各種名額機關不一緻,通常傳統識别主機性能是否發生故障使用門檻值方式對各名額值進行邏輯判斷擷取。另外,KNN算法簡單,易于了解,易于實作,無需估計參數,特别适合對稀有事件進行分類,同時故障資料本身具有稀疏性的特點。是以考慮到資料及應用場景特點并結合算法自身特征,基于KNN算法的分布式服務故障預測模型具有一定的可用性及有效性。

    KNN算法的核心思想是如果一個樣本在特征空間中的K個最相鄰的樣本中的大多數屬于某一個類别,則該樣本也屬于這個類别,并具有這個類别上樣本的特性。其算法流程如下:

  1. 計算已知類别資料集中的點與目前之間的距離;
  2. 按照距離遞增次序排序;
  3. 選取與目前點距離最近的k個點;
  4. 确定前k個點所在的類别的出現頻率;
  5. 傳回前k個點出現頻率最高的類别作為目前點的預測類别;

4.5模型計算

    針對上述模組化過程,模型建構完成後将投入系統進行計算,進而完成預測任務。系統首先針對監控資料使用者畫像生成的特征矩陣進行資料預處理,然後針對生成的特征資料使用KNN算法進行模型計算。模型計算架構圖如下圖3所示:

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

                                                                                                 圖3模型計算架構圖

4.6資料展現

    通過模型計算生成預測結果,當系統預測到異常資訊後通過微信/短信等方式發送至運維人員的移動端令運維人員能夠及時對故障資訊進行排查。預測報表結果如下圖4所示:

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

                                                                                                  圖4服務預測報表

歡迎關注“程式雜貨鋪”公衆号,裡面有精彩内容,歡迎大家收看^_^

基于電信行業的AIOps應用與實踐1.摘要:2.功能介紹:3.系統架構:4.實作原理:

繼續閱讀