AIOps關鍵技術:日誌模板提取
作者|孟偉彬
編輯|Vicky
日誌是AIOps需要處理常見數據,是程序運行過程中由代碼列印出的一些程序完成的任務和系統的狀態。從屬於非結構化文本的日誌數據中提煉特徵挑戰性大,不能簡單採用NLP(自然語言處理)方法,需要首先結合運維領域知識從日誌中提煉日誌模板(事件)。本文介紹清華NetMan實驗室發表在IWQoS 2017的研究成果:FT-Tree——一種新型的日誌模板提取技術,用於準確地和增量式地學習交換機日誌模板。該系統被用於NetMan實驗室發表在SIGMETRICS 2018 上數據中心交換機故障預測系統PreFix。
簡介
在數據中心中,對於交換機故障的診斷和預測來說,交換機系統日誌是一個豐富的信息源。但是,只有通過對系統日誌合理地處理之後,這些信息才能被有效的提取出來。
一種通用的系統日誌預處理的方法是從歷史系統日誌消息中提取模板,然後,將系統日誌消息映射到模板上。但是,當前提出的模板提取方法或者在學習「正確」 模板集合時準確性較低,或者不支持增量式學習。當模板提取放法不支持增量式學習時,如果一種新的模板加入,所有的歷史系統日誌消息都要被重新處理一遍以重新構建整個模板集合。這對於大型的數據中心網路來說,將消耗太多的計算資源。因此,我們提出了FT-Tree,它能夠比現有方法更加準確地提取消息模板,並從本質上支持增量式學習。
挑戰
從交換機日誌中提取消息模板會面臨如下挑戰:
1、非結構化:交換機系統日誌消息通常是非結構化的文本。
2、數據量大:數據中心中每天會產生數以千萬計的系統日誌信息。
3、類型多樣:交換機日誌會隨著設備廠商和設備型號的變化而變化。
設計思想
系統日誌處理的目的是不依賴於任何專家知識,自動地從系統日誌中提取模板——系統日誌消息中詳細信息欄位的子類型。FT-tree 是一種擴展的前綴樹結構,用以表示交換機系統日誌消息模板。FT-tree 的基本思想是,系統日誌消息中詳細信息欄位的子類型通常是頻繁出現的單詞的最長組合。因此,提取模板等價於從系統日誌消息中識別出頻繁出現單詞的最長組合。下面通過一個具體的實例來介紹FT-tree的構建過程。
FT-tree構建過程
令DM = (M1, M2, ..., Mn) 為系統日誌消息的集合,每個Mi是一條系統日誌消息。I = (a1, a2, ..., am) 是系統日誌消息集合中出現的不同單詞的集合。一個單片語合(即單詞的集合) A 的支持度(即單詞出現的頻率) 等於DM 中包含A 的系統?志消息的數量。如果A 頻繁地出現(即具有較大的支持度),那麼A 就是一個模板。例如下表的第二列展示了日誌消息的集合DM = (M1, M2, ..., M8),其中每條日誌都是屬於」SIF」類型。
我們首先掃描一次DM, 並且以每個單詞出現頻率(每個」:」之後的數字)的降序得到一個列表L。例如,L = 。
然後,創建樹的根節點,這一根節點是由消息類型標記的,如下圖中第一步所示,在本文中樹的根節點是「SIF」。之後,FT-tree第二次掃描DM。通過處理M1,得到樹的第一條路徑/分支,這些單詞是根據L中單詞的順序排序的。當處理M2 時,因為它排完序的單詞列表 與已存在的路徑/分支 共享一個共同前綴,所以,FT-tree 需要創建一個新的分支 作為節點「to」的子樹。同理,剩餘的6 條系統日誌消息的處理方式也是一樣的。最後,得到的FT-tree 如下圖最右邊的樹所示。
最後,修剪FT-tree,直到它滿足以下節點的度的約束。直觀地來看,每個消息類型應該只有少量的子類型。並且,對於每個子類型,應該有許多不同的系統日誌消息與之匹配。因此,如果FT-tree的一個節點有太多的子節點,那麼它的所有子節點就從FT-tree 中刪除。這樣,該子節點就變成葉節點。
增量式模板學習
對於一個給定的系統日誌消息的消息類型,由於操作系統或固件升級,可能會出現新的子類型消息。此時,需要生成新的消息模板,以匹配這些新的子類型的系統日誌消息,這是通過向FT-tree 中插入新的節點來完成的。如下圖所示,假設交換機生成了新的系統日誌消息Mnew=「Interface ae1 changed state to RETURN」。並且,在此之前,FT-tree 是上圖中最右邊的樹,且所有子節點(「ae3」, 「ae1」, 「vlan22」 等)已經都被剪枝。然後,新的系統日誌消息Mnew生成後,需要將分支(「RETURN」→「ae1」)插入到FT-tree 中。
實驗驗證
我們使用了從真實收集的交換機系統日誌和交換機故障記錄,比較了FT-tree與特徵樹、STE和LogSimilarity三種現有方法在模板學習和交換機故障預測方面的性能,從而對FT-tree進行評價和驗證。
評價模板學習的準確性
我們隨機地收集了500條日誌消息。然後基於每條系統日誌消息代表的事件,由運維人員人工地對系統日誌消息分類。然後分別運行FT-tree、特徵樹方法、STE 和LogSimilarity,以學習上述日誌消息的模板,然後使用了RandIndex方法(一種流行的用於評估兩種數據 聚類演算法之間相似性的方法)來定量比較四種演算法的準確性。從下圖中我們可以看出,FT-tree 和特徵樹方法的平均Rand index 接近於1.0 ,且在所有四種消息類型中均表現得很好,然而,FT-tree 可以構造樹並增量式地學習系統日誌消息模板,但是特徵樹方法卻不能,所以FT-Tree更適合於系統日誌模板的提取。
評價故障預測的準確性
下圖展示了FT-tree, 特徵樹,STE和LogSimilarity四中演算法的故障預測結果的PR曲線,從PR 曲線可以看出,在預測故障時,應用FT-tree 和特徵樹方法以學習系統日誌消息模板,比應用STE 和LogSimilarity 能夠取得更高的準確性。
應用案例
1、數據中心中的交換機每天產生大量的日誌,運維工程師只關心某幾類日誌,比如埠Up/Down,並且希望過濾掉其他的常態日誌,然後由工程師標記其關心的日誌模板。當新產生的日誌到來後,如果能與已標記的模板,則顯示在日誌查詢系統中,這樣可以極大的減少運維工程師查詢日誌的工作量。類似的功能已在某公司的日誌白名單系統中線上使用。
2、許多基於日誌的異常檢測工作都是分為四個步驟,分別是日誌收集、日誌預處理、特徵提取以及異常檢測。本文中提到的日支模板提取就是用在第二步日誌預處理中。換句話說,如果設備產生的日誌數據實時地轉換成日誌模板編號,那日誌文本處理的問題就轉換成了時間序列處理。
結論
本文介紹了一種新型的模板提取技術——FT-tree,用於準確地和增量式地學習模板。我們使用真實的2 年的交換機故障案例和系統日誌來評價和對於FT-tree和現有方法的性能,評價實驗結果清楚地證明了FT-tree 的優點:高準確性,低計算成本和可增量式學習。
論文題目:Syslog Processing for Switch Failure Diagnosis and Prediction in Datacenter Networks
論文作者:Shenglin Zhang(清華), Weibin Meng(清華), Jiahao Bu(清華), Sen Yang(喬治亞理工), Ying Liu(清華), Dan Pei(清華), Jun (Jim) Xu(喬治亞理工), Yu Chen(百度), Hui Dong(百度), Xianping Qu(百度), Lei Song(百度)
TAG:智能運維前沿 |