簡介: 封神-運維大腦 | 日誌檢測工具前端
阿里雲應用業務有問題,雲平臺監控能夠發現問題,但並不能定位到問題根本緣由,運維大腦監控底層日誌,可快速定位問題緣由,幫助現場運維同窗解決問題。
運維大腦融合SRE方法,專一於深度運維的技術服務領域,幫助客戶與現場,加強租戶視角運維監控能力、提高平臺視角問題定位效率、增強雙維度容量性能運營能力。濃縮TAM現場運維經驗,多樣化地、標準化地、智能化地向客戶輸出運維能力與技術服務。算法
圖1:流程圖數據庫
如圖2所示,可經過運維大腦前端頁面配置須要監控的日誌,可單獨新增也可批量導入。配置信息包括產品、服務、服務角色、日誌類型(DOCKER 物理機 VM)、日誌路徑、監控週期、算法(ML-TOP ML-CP ML-KEY)、狀態(開啓關閉)。運維
圖2:日誌配置ssh
前端配置日誌信息存儲到後臺數據庫,後臺程序經過產品、服務、服務角色等條件查詢相應的主機名。機器學習
圖3:數據庫工具
定時任務啓動,根據獲取到的主機名經過PSSH命令下發訓練腳本到各個機器上。下發前判斷各臺機器是否已存在訓練腳本,若是腳本已存在,則中止下發命令。性能
圖4:pssh學習
訓練腳本開始工做:首先讀取日誌,經過正則進行英文分詞(英文文本可經過NLTK庫分詞,中文文本可經過JIEBA分詞進行切分,在這裏選擇最簡單的PYTHON自帶的RE模塊根據特殊符號進行切分),統計總詞數,並計算每一個單詞的詞頻。按詞頻排序將單詞以二進制形式寫入TOP模型文件,詞頻寫入CP模型文件,如圖5所示。
警告:文件命名最好以服務角色+文件路徑的方式命令,不然在後續讀取的時候可能會衝突。優化
圖5:文件命名
定時任務啓動,同訓練過程初始化同樣,首先判斷各臺機器是否存在分析腳本,如若不存在,進行下發命令。
分析腳本開始工做:首先讀取日誌,區別於日誌訓練,分析腳本會根據前端配置的監控週期進行選取(好比監控週期爲30分鐘,則分析腳本會選取當前時間至30分鐘以前的日誌進行分析)。同訓練腳本同樣,讀取日誌後,進行文本分詞,計算詞數,統計詞頻。讀取模型文件,根據不一樣的算法(算法這塊在文章第三部分會單獨進行講述),計算算法權重值。對算法權重值進行閾值判斷,超過閾值,會判斷日誌異常信息並從日誌文件獲取。分析結束,最後把產品、服務、服務角色、日誌文件、日誌級別(ERRORINFO)、算法值、日誌錯誤詳情、監控時間等監控數據進行入庫,並在前端頁面進行展現,如圖6所示。
圖6:日誌分析
訓練模型初始化的弊端在於沒法手動去打標籤(正常異常),因此對於初始化後的模型文件確定不能是一個徹底正常的模型,須要後續不斷的去優化。
定時任務啓動:仍是同樣的流程,完成讀取文件、分詞等工做後,生成的模型文件與源模型文件對比,對比方法與算法相同,閾值比分析閾值更低,低於閾值後,單詞詞頻字典進行合併,按次序排序後分別寫入源模型文件。至此,整個日誌過程完成閉環操做。
日誌巡檢是對自身系統運行情況的監控,環繞整個閉環操做。日誌訓練、分析、模型優化經過定時任務去驅動,日誌巡檢對每一步操做過程進行成功判斷,並對異常的操做進行緣由分析,相關數據存儲入庫,並在前端進行展現,如圖7所示。
圖7:日誌巡檢
運維大腦所開發的算法借鑑了貝葉斯和文本類似度兩大算法,以傳統的天然語言處理方式對文本進行分析。
結巴分詞適用於中文分詞,分詞原理爲:
①基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字全部可能成詞狀況所構成的有向無環圖(DAG)。
②採用動態規劃查找最大機率路徑, 找出基於詞頻的最大切分組合。
③對於未登陸詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi算法
nltk庫只能用於英文分詞,除此之外還可用於詞性標註和文本分析。
我的認爲英文分詞以空格或部分特殊符號進行切分便可:re.split()。
TF-IDF是Term Frequency-Inverse Document Frequency的縮寫,即詞頻-逆文檔頻率,用來刻畫一個詞語在某篇文檔中重要程度,也就是說是否能夠用該詞語來表明某篇文檔的主要內容。
TF表示詞頻。給定幾個關鍵詞,在某篇文檔中出現的次數最高者,則說明該文檔與出現次數最高的詞語關係最密切。用詞語出現的次數除以文檔的總詞彙數,就是TF,固然此處在統計文檔總詞彙時,把相似於「了」、「的」、「地」、「即」等詞語排除在外不予考慮。引入詞頻後,則某個詞的詞頻越高,該文檔與其關係也就越大。
TF計算公式爲: TF = 詞語在文檔中出現的次數 / 文檔詞語次數
IDF表示逆文檔頻率。若是一個詞語在某篇文檔中出現的TF高,可是在語料庫的其它文檔中出現的次數少,則說明該詞語對於文檔分類具備重要做用,所以引入IDF來刻畫此項數據,其值越大,說明該詞語對於語料庫來講具備越好的區分能力。若是某個詞語在每篇文檔裏均出現,且出現的次數很接近,則該詞語用來區分文檔時效果便很差。
IDF計算公式爲: IDF = log(語料庫文檔總數/包含某詞語的文檔數+1)
Latent Semantic Indexing(LSI)從文本潛在的主題進行分析。LSI是機率主題模型的一種,另外一種常見的是LDA,核心思想是:每篇文本中有多個機率分佈不一樣的主題;每一個主題中都包含全部已知詞,可是這些詞在不一樣主題中的機率分佈不一樣。LSI經過奇異值分解的方法計算出文本中各個主題的機率分佈,嚴格的數學證實須要看相關論文。假設有5個主題,那麼經過LSI模型,文本向量就能夠降到5維,每一個份量表示對應主題的權重。
可參考文後資料[1]瞭解詳情。
總結下文本類似度和貝葉斯算法的處理過程:
運維大腦日誌分析算法包括:
本期給你們介紹了封神系統運維大腦模塊的相關知識,分享了機器學習中兩個經常使用的文本分析算法。目前運維大腦所能達到的效果是能夠把日誌中報錯進行識別並展現,可是咱們的最終目標是能夠識別出故障,雖然普通的報錯可能對平臺並無太大的影響,可是頻繁的報警並不利於運維工做的開展。
關於運維大腦暫時就介紹這麼多,當前也確實存在必定問題,待後續完善後會再跟你們介紹,而後若是同窗有更好的算法或者思路,歡迎討論!
接下來的文章會陸續給你們介紹封神的其餘模塊,包括實時告警、運維大盤、報表分析、數據網關、妲己紂王、時序數據庫等相關知識,敬請期待!
原文連接本文爲阿里雲原創內容,未經容許不得轉載。