【AIOps探索】揭秘日志異常檢測新方法

背景

日志數(shù)據(jù)是一種廣泛可用的數(shù)據(jù)資源钦椭,用于記錄各種軟件系統(tǒng)中運行時的系統(tǒng)狀態(tài)和關鍵事件。開發(fā)人員通常利用日志數(shù)據(jù)來獲取系統(tǒng)狀態(tài)而昨、檢測異常和定位根本原因帖旨。隱藏的豐富信息為分析系統(tǒng)問題提供了一個很好的視角。因此彬呻,通過在大量日志數(shù)據(jù)中挖掘日志信息衣陶,數(shù)據(jù)驅(qū)動的方法可以幫助增強系統(tǒng)的健康柄瑰、穩(wěn)定性和可用性。

隨著現(xiàn)代計算機系統(tǒng)規(guī)模和復雜性的增加剪况,日志數(shù)據(jù)呈爆炸式增長教沾。有大量數(shù)據(jù)驅(qū)動的方法可以自動檢測異常,例如基于主成分分析(PCA)的方法拯欧、基于不變挖掘的方法和基于工作流的方法详囤,基于深度學習的方法如:DeepLog财骨、LogAnomaly镐作、LogRobust等在異常檢測中取得了顯著的效果。

現(xiàn)有方法是基于一些在現(xiàn)實的生產(chǎn)環(huán)境中無法滿足的強假設而構(gòu)建的隆箩,在生產(chǎn)環(huán)境中應用上述方法時该贾,有兩個主要挑戰(zhàn):

不斷變化的日志:在實際開發(fā)和維護中的那些軟件系統(tǒng)中,日志格式在實踐中不斷變化捌臊。

潛在的性能問題:性能問題是部分故障的常見表現(xiàn)杨蛋,指的是部分功能被破壞。為了解決上述挑戰(zhàn)理澎,提出了基于深度學習的日志異常檢測模型- SwissLog逞力。

大型系統(tǒng)不可避免地會遇到故障,導致日志模式發(fā)生變化糠爬。主要有如下幾種故障:

▲????四種日志序列變化模式*


故障1:序列順序變化

圖(a)中的異常序列與正常序列相反寇荧,如圖(b)所示,其中異常日志語句以黃色突出顯示执隧。在這種情況下揩抡,系統(tǒng)收到了一個冗余的addStoredBlock請求,導致序列順序發(fā)生變化镀琉。因此峦嗤,通常可以從其異常的序列順序中觀察到序列日志異常屋摔。

故障2:日志時間間隔變化

如圖1(c)所示烁设,那些有性能問題的塊通常保持與正常順序相同的順序。但是钓试,性能問題會根據(jù)特定任務的故障組件減慢其執(zhí)行時間通常將時間間隔變化稱為性能問題.

故障3:不斷變化的事件

圖1(d)顯示了一個常見的更改事件的情況装黑。字符串“from ip”被添加到日志語句中,但它保持原來的含義亚侠。

基于現(xiàn)實的生產(chǎn)環(huán)境提出了SwissLog曹体,這是一種魯棒且統(tǒng)一的基于深度學習的針對各種故障的日志異常檢測模型。它可以檢測日志數(shù)據(jù)中表現(xiàn)出的序列順序變化和日志時間間隔變化硝烂。此外箕别,它對不斷變化的事件具有魯棒性。


整體框架

SwissLog 包括兩個階段,即離線處理階段在線處理階段串稀。每個階段包括日志解析除抛、句子嵌入、基于注意力機制的Bi-LSTM階段母截,在線階段特別包含異常檢測階段到忽。

日志解析部分對歷史日志數(shù)據(jù)進行分詞、字典化和聚類清寇,提取多個模板喘漏,這些日志語句與相同的標識符聯(lián)系起來構(gòu)建日志序列,然后將日志序列轉(zhuǎn)化為語義信息和時間信息华烟。

句子嵌入部分使用BERT模型或Word2Vec模型對句子進行編碼翩迈,轉(zhuǎn)化為詞向量,將這些語義信息和時間信息輸入到基于注意力機制的 Bi-LSTM模型中學習正常盔夜、異常和性能異常日志序列的特征负饲,在在線檢測階段,一旦檢測到異常喂链,就會發(fā)出警報返十,主要流程如下:

▲? ? 離線/在線日志異常檢測



日志離線/在線解析階段

日志解析的主要目的是日志模板化。

中心思想:

盡可能將包含語義信息的部分視作日志語句中的常量椭微;

解決方法:

基于字典的日志模板化方法洞坑。

主要流程如下:


日志語句編碼階段

異常檢測的最終目標是檢測我們前面描述的各種故障。我們可以觀察到赏表,僅憑語義信息不足以檢測多種類型的故障检诗。因此,還引入了時間信息作為特征來補充異常檢測方法瓢剿。日志解析后逢慌,我們通過將日志與相同的標識符(如HDFS日志中的block id)或滑動窗口相關聯(lián)來構(gòu)建會話。我們將序列轉(zhuǎn)換為語義信息和時間信息间狂。然后我們用下面的方法對這兩種信息進行編碼攻泼。

中心思想:

日志序列是一組有時序特征的自然語言;

解決方法:

同時考慮日志語句的時序特征和語義特征鉴象。

▲? ? 利用BERT學習一條日志語句的語義信息*


▲? ? 利用日志序列的打印時間間隔作為時序特征*


日志模式學習階段

在句子嵌入之后忙菠,每條日志消息被轉(zhuǎn)換成一個語義向量和一個時間嵌入向量。將二者串聯(lián)纺弊,每個日志序列都表示為一個向量列表牛欢,SwissLog以此類向量為輸入,采用基于注意力機制的雙向LSTM神經(jīng)網(wǎng)絡模型來檢測各種異常淆游,如圖所示:

中心思想:

模糊日志序列中不重要的日志語句傍睹;

解決方法:

基于注意力機制的雙向LSTM模型隔盛,學習日志序列的模式。


異常檢測

在離線階段拾稳,我們使用歷史日志訓練獲得了一個雙向LSTM的預訓練模型吮炕,可以用此模型進行異常檢測。當一組新的日志語句到達時访得,它首先經(jīng)過日志解析和句子嵌入階段龙亲。然后將上面階段獲得的輸出向量作為輸入,輸入到預訓練模型中悍抑。最后鳄炉,通過雙向LSTM模型可以檢測是否發(fā)生異常。SwissLog根據(jù)由共同標識符(例如block ID)關聯(lián)的日志語句做出預測传趾。


總結(jié)

本文介紹了一種針對各種故障的強大且統(tǒng)一的基于深度學習的日志異常檢測方法迎膜,包括以下幾個方面:

①????基于字典解析日志消息的方法,它不需要任何參數(shù)調(diào)整過程浆兰。

②????通過引入BERT來編碼日志模板,該方法對日志格式變化具有魯棒性珊豹。

③????結(jié)合時間嵌入和語義嵌入方法簸呈,通過統(tǒng)一的深度學習模型檢測順序日志異常和性能問題,通過這種方法可以對日志進行異常檢測店茶。

該方法根據(jù)共同標識符(例如如HDFS日志中的block ID)對日志進行關聯(lián)蜕便,結(jié)合神經(jīng)網(wǎng)絡模型,綜合考慮了日志的時間信息和語義信息贩幻,構(gòu)建了一種有監(jiān)督的深度學習方法轿腺,同時解決了日志檢測中常見的一些故障問題,相比于傳統(tǒng)的日志檢測方法和深度學習檢測方法有著更好的效果丛楚。


*部分內(nèi)容參考文獻:

Li?X?,?Chen?P?,?Jing?L?,?et?al.?SwissLog:?Robust?and?Unified?Deep?Learning?Based?Log?Anomaly?Detection?for?Diverse?Faults[C]//?2020?IEEE?31st?International?Symposium?on?Software?Reliability?Engineering?(ISSRE).?IEEE,?2020.

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末族壳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趣些,更是在濱河造成了極大的恐慌仿荆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坏平,死亡現(xiàn)場離奇詭異拢操,居然都是意外死亡,警方通過查閱死者的電腦和手機舶替,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門令境,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人顾瞪,你說我怎么就攤上這事舔庶》稻ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵栖茉,是天一觀的道長篮绿。 經(jīng)常有香客問我,道長吕漂,這世上最難降的妖魔是什么亲配? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮惶凝,結(jié)果婚禮上吼虎,老公的妹妹穿的比我還像新娘。我一直安慰自己苍鲜,他們只是感情好思灰,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著混滔,像睡著了一般洒疚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坯屿,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天油湖,我揣著相機與錄音,去河邊找鬼领跛。 笑死乏德,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的吠昭。 我是一名探鬼主播喊括,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼矢棚!你這毒婦竟也來了郑什?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤幻妓,失蹤者是張志新(化名)和其女友劉穎蹦误,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肉津,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡强胰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妹沙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偶洋。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖距糖,靈堂內(nèi)的尸體忽然破棺而出玄窝,到底是詐尸還是另有隱情牵寺,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布恩脂,位于F島的核電站帽氓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俩块。R本人自食惡果不足惜黎休,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玉凯。 院中可真熱鬧势腮,春花似錦、人聲如沸漫仆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盲厌。三九已至署照,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狸眼,已是汗流浹背藤树。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拓萌,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓升略,卻偏偏與公主長得像微王,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子品嚣,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容