国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于雙向時(shí)間卷積網(wǎng)絡(luò)的半監(jiān)督日志異常檢測

2024-08-17 00:00尹春勇孔嫻

摘 要:由于日志解析準(zhǔn)確率不高以及標(biāo)記樣本不足降低了異常檢測的準(zhǔn)確率,所以提出了一種新的基于日志的半監(jiān)督異常檢測方法。首先,通過改進(jìn)字典的日志解析方法,保留了日志事件中的部分參數(shù)信息,從而提高日志信息的利用率和日志解析的準(zhǔn)確率;然后,使用BERT對模板中的語義信息進(jìn)行編碼,獲得日志的語義向量;接著采用聚類的方法進(jìn)行標(biāo)簽估計(jì),緩解了數(shù)據(jù)標(biāo)注不足的問題,有效提高了模型對不穩(wěn)定數(shù)據(jù)的檢測;最后,使用帶有殘差塊的雙向時(shí)間卷積網(wǎng)絡(luò)(Bi-TCN)從兩個(gè)方向捕獲上下文信息,提高了異常檢測的精度和效率。為了評估該方法的性能,在兩個(gè)數(shù)據(jù)集上進(jìn)行了評估,最終實(shí)驗(yàn)結(jié)果表明,該方法與最新的三個(gè)基準(zhǔn)模型LogBERT、PLELog和LogEncoder相比,F(xiàn)1值平均提高了7%、14.1%和8.04%,能夠高效精準(zhǔn)地進(jìn)行日志解析和日志異常檢測。

關(guān)鍵詞:日志解析; 異常檢測; 半監(jiān)督學(xué)習(xí); 雙向時(shí)間卷積網(wǎng)絡(luò); 上下文相關(guān)性

中圖分類號:TP391.1 文獻(xiàn)標(biāo)志碼:A 文章編號:1001-3695(2024)07-026-2110-08

doi:10.19734/j.issn.1001-3695.2023.10.0507

Semi-supervised log anomaly detection based onbidirectional temporal convolution network

Abstract:Because the accuracy of log parsing is not high and the lack of tag samples reduces the accuracy of anomaly detection, this paper proposed a new semi-supervised anomaly detection method based on logs. Firstly, the method enhanced the log parsing method of the dictionary to retain parameter information in log events, improving the utilization and accuracy of log resolution. Next, the method utilized BERT to encode semantic information in the template, obtaining the semantic vector of the log. Then, the method employed the clustering method to estimate the tag, which effectively alleviated the problem of insufficient data labeling and enhanced the model’s ability of detecting unstable data. Finally, the method captured context information from two directions based on the bidirectional temporal convolution network(Bi-TCN) with residual blocks, which enhanced the accuracy and efficiency of anomaly detection. To evaluate the method’s performance, it conducted extensive experiments on two datasets. The results demonstrate that the proposed method achieves an average improvement of 7%,14.1% and 8.04% in F1 value compared to the latest three benchmark models, LogBERT,PLELog and LogEncoder, enabling efficient and accurate log parsing and log anomaly detection.

Key words:log parsing; anomaly detection; semi-supervised learning; bidirectional temporal convolution network; contextual correlation

0 引言

隨著大型系統(tǒng)的規(guī)模和復(fù)雜性日益增加,一些外部故障或內(nèi)部錯(cuò)誤都可能引起系統(tǒng)崩潰,有必要及時(shí)并準(zhǔn)確地檢測出系統(tǒng)中的異常,以確保系統(tǒng)的可靠性和穩(wěn)定性,從而減輕不必要的損失[1]。系統(tǒng)日志是指現(xiàn)代網(wǎng)絡(luò)設(shè)備、系統(tǒng)及服務(wù)程序等在運(yùn)行過程中產(chǎn)生的具有記載系統(tǒng)狀態(tài)和事件信息的記錄。通過對日志的分析,可以識別偏離預(yù)期行為或模式的日志序列,進(jìn)行故障排除和問題診斷。因此,日志文件在監(jiān)控網(wǎng)絡(luò)情況、維護(hù)系統(tǒng)穩(wěn)定、調(diào)試性能問題和保護(hù)軟件安全等方面有重要的作用。

日志數(shù)據(jù)通常是由源代碼中日志語句打印的半結(jié)構(gòu)化的文本字符串組成,詳細(xì)記錄了操作信息,包含應(yīng)用狀態(tài)、程序執(zhí)行邏輯、事件信息等。隨著系統(tǒng)的發(fā)展,日志事件和日志序列的更迭導(dǎo)致日志語句不斷演化。不同類型的設(shè)備包含多樣的數(shù)據(jù)元素和不同的日志語法,因此日志具有多樣性和非結(jié)構(gòu)化的特點(diǎn)。通常在日志數(shù)據(jù)的采集、檢索和預(yù)處理過程中,不可避免地會在原始日志數(shù)據(jù)中引入一定程度的噪聲,導(dǎo)致日志數(shù)據(jù)具有不穩(wěn)定性[2]。除此之外,分布式軟件系統(tǒng)會產(chǎn)生大量具有復(fù)雜依賴關(guān)系的日志信息。因此日志數(shù)據(jù)的非結(jié)構(gòu)性、不穩(wěn)定性以及龐大的數(shù)據(jù)量都會給異常日志檢測帶來巨大的挑戰(zhàn)。

早期,系統(tǒng)日志的異常檢測依賴于運(yùn)維人員的個(gè)人知識、技術(shù)及經(jīng)驗(yàn),人工檢查分析大量日志信息,難以得出有效的分析和檢測。隨著人工智能技術(shù)的不斷發(fā)展,越來越多基于機(jī)器學(xué)習(xí)的數(shù)據(jù)挖掘與異常檢測方法應(yīng)運(yùn)而生,這些方法能夠自動(dòng)地從運(yùn)維數(shù)據(jù)中學(xué)習(xí)日志事件之間的內(nèi)在關(guān)系并總結(jié)規(guī)則,實(shí)現(xiàn)了日志異常檢測的自動(dòng)化,增加了異常檢測的效率和準(zhǔn)確率。

現(xiàn)有采用深度學(xué)習(xí)技術(shù)的異常檢測方法分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)三大類。監(jiān)督學(xué)習(xí)方法SwissLog[3,4]、LightLog[5]依賴于大量已標(biāo)注的訓(xùn)練數(shù)據(jù),可以有效學(xué)習(xí)歷史日志信息,但基于日志數(shù)據(jù)異構(gòu)、大量且不穩(wěn)定的特性,需要大量人工標(biāo)記工作的監(jiān)督學(xué)習(xí)方法并不實(shí)用。無監(jiān)督異常檢測方法如DeepLog[6]、LogAnomaly[7],基于訓(xùn)練數(shù)據(jù)大部分是正常日志的先驗(yàn)條件,對噪聲敏感,在實(shí)際中遇到看不見的日志事件或序列有效性會降低。而半監(jiān)督學(xué)習(xí)使用部分標(biāo)記數(shù)據(jù)和大量未標(biāo)記的數(shù)據(jù)進(jìn)行模式識別工作,盡可能減少人工標(biāo)記成本,同時(shí)又能帶來比較高的準(zhǔn)確性。

日志數(shù)據(jù)集作為時(shí)序數(shù)據(jù)的一種,大多深度學(xué)習(xí)的異常檢測方法DeepLog、LogRobust、SwissLog等使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN) 以及相關(guān)變體進(jìn)行日志序列特征學(xué)習(xí)。然而RNN每兩個(gè)相鄰神經(jīng)元是相互連接的,計(jì)算當(dāng)前的隱藏狀態(tài)需要計(jì)算之前的隱藏狀態(tài),因此不支持并行計(jì)算,訓(xùn)練時(shí)間開銷大,且處理長序列時(shí)可能出現(xiàn)梯度消失或爆炸的問題,雖然長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)和門控循環(huán)單元網(wǎng)絡(luò)(gate recurrent unit,GRU)可以減緩但也不能完全杜絕。此外,RNN在從日志序列獲取信息時(shí),由于每個(gè)隱藏狀態(tài)僅記住部分信息,會隨著時(shí)間的增長被遺忘,所以穩(wěn)定性不佳。時(shí)間卷積網(wǎng)絡(luò)(temporal convolution network,TCN)[8]不僅可以通過一些層的堆疊來捕捉序列數(shù)據(jù)的時(shí)間屬性,而且可以并行化處理,解決了建模遠(yuǎn)程關(guān)系時(shí)的梯度爆炸和消失問題,在內(nèi)存消耗和處理速度方面具有顯著優(yōu)勢,能夠更快地獲得穩(wěn)定的模型。

與此同時(shí),基于深度學(xué)習(xí)的日志異常檢測方法性能對日志解析的正確性依賴較高,然而現(xiàn)有的日志解析方法無法應(yīng)對頻繁變化的日志語句,普遍需要經(jīng)過預(yù)先調(diào)參,存在過度解析丟失日志事件中價(jià)值信息的問題。基于頻繁項(xiàng)挖掘的方法FT-tree[9]、基于最長公共子序列的方法Spell[10]、基于啟發(fā)式方法Drain[11]是日志異常檢測使用最頻繁的幾種解析方法。FT-tree方法在時(shí)間、空間上開銷大;Spell僅基于最長公共子序列的策略會導(dǎo)致分區(qū)不足,且沒有限制其前綴樹的深度,直接計(jì)算兩條日志事件之間的最長公共子序列,比較耗時(shí);Drain在準(zhǔn)確性、健壯性和效率性方面具有優(yōu)勢,但其將日志過度解析為可變部分,會丟失重要信息,容易導(dǎo)致誤報(bào)。在SwissLog中提出了一種基于字典且無須參數(shù)調(diào)整的日志解析方法,可以保留日志語義含義,并可以高效地正確解析日志。

本文提出了一種新的基于日志的半監(jiān)督異常檢測方法,命名為BTCNLog(log anomaly detection based on Bi-TCN)。首先,通過改進(jìn)的基于字典的日志解析方法進(jìn)行日志解析;然后,使用BERT[12]對日志模板進(jìn)行編碼,充分表示日志語義信息;接著,受PLELog[13]方法的啟發(fā),采用層次聚類方法初步估計(jì)未標(biāo)記的日志序列的標(biāo)簽并賦予標(biāo)簽概率,可以學(xué)習(xí)歷史異常日志信息;最后,采用帶有殘差塊的雙向時(shí)間卷積網(wǎng)絡(luò)從兩個(gè)方向捕獲上下文信息,對日志數(shù)據(jù)進(jìn)行有效異常檢測。

本文的主要貢獻(xiàn)有:a)提出了一種新的基于日志的半監(jiān)督異常檢測方法BTCNLog,引入帶有殘差塊的雙向時(shí)間卷積網(wǎng)絡(luò)從兩個(gè)方向捕獲上下文信息,從而更好地捕獲日志序列的特征,提高了異常檢測的精度和效率;b)結(jié)合日志數(shù)據(jù)的特性改進(jìn)了日志解析方法,保留了部分參數(shù)語義信息,提高了日志信息的利用率和日志解析的準(zhǔn)確率;c)為了緩解數(shù)據(jù)標(biāo)注不足問題,采用聚類的方法進(jìn)行標(biāo)簽估計(jì),學(xué)習(xí)歷史異常日志信息;d)通過三個(gè)公共數(shù)據(jù)集上對模型進(jìn)行對比實(shí)驗(yàn)和消融實(shí)驗(yàn),證明了本文方法的有效性。

1 相關(guān)工作

1.1 日志解析

日志解析是一個(gè)將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)為結(jié)構(gòu)化數(shù)據(jù)的過程,具體而言,通過技術(shù)將已知日志事件中日志關(guān)鍵字和參數(shù)拆分并統(tǒng)一模板的過程。目前,日志解析是許多日志異常檢測方法的基本步驟,現(xiàn)有方法可以分為以下幾類:

a)基于聚類的方法。主要假設(shè)是同類的日志事件或簽名之間具有相似性,通過計(jì)算它們之間的距離,根據(jù)相似性進(jìn)行聚類,在每個(gè)聚類中提取日志模板,代表方法有LKE[14]和LogMine[15]。

b)基于頻繁模式挖掘的方法。通過挖掘日志事件中項(xiàng)的頻率,提取日志中頻繁出現(xiàn)的一組常量項(xiàng)形成日志模板,代表方法有LFA[16]和FT-tree。

c)基于日志結(jié)構(gòu)啟發(fā)式方法。利用日志結(jié)構(gòu)中不同的屬性,使用機(jī)器學(xué)習(xí)等啟發(fā)式方法提取通用模板,代表方法有Drain、IPLoM[17],其中Drain是一種基于固定深度樹的在線日志解析方法,能夠以流的方式準(zhǔn)確、高效地從原始日志事件中自動(dòng)提取日志模板。

d)基于字典的方法。通過現(xiàn)有日志模板來構(gòu)造字典,再用于日志解析的方法。Logparse[18]將模板生成問題轉(zhuǎn)換為詞分類問題,并學(xué)習(xí)模板詞和變量詞的特征。Logram[19]是利用n-gram字典實(shí)現(xiàn)自動(dòng)日志解析方法。

e)其他方法。Spell使用最長公共序列算法在線搜索日志組解析流中的日志。NuLog[20]是一種基于掩碼語言建模分析上下文中出現(xiàn)的標(biāo)記來學(xué)習(xí)日志數(shù)據(jù)的一般語義表示。

1.2 日志異常檢測

異常檢測過程是使用機(jī)器學(xué)習(xí)等方法對特征向量進(jìn)行學(xué)習(xí),從而生成異常檢測的模型,該模型可用于對新的日志進(jìn)行檢測[21]。現(xiàn)有日志異常檢測方法可以分為數(shù)據(jù)挖掘和深度學(xué)習(xí)方法。

數(shù)據(jù)挖掘的方法有邏輯回歸(logistic regression,LR)[22],其將日志序列構(gòu)造成事件計(jì)數(shù)向量,利用計(jì)數(shù)向量和標(biāo)簽訓(xùn)練邏輯回歸模型,計(jì)算測試用例的異??赡苄圆⒃O(shè)置閾值區(qū)分出異常日志。支持向量機(jī)[23]同樣將日志序列表示為事件計(jì)數(shù)向量,如果測試用例位于超平面之上則其為異常日志?;诰垲惖臒o監(jiān)督學(xué)習(xí)方法LogCluster[24]通過事件計(jì)數(shù)向量表示日志序列,對日志序列進(jìn)行聚類,每個(gè)簇的質(zhì)心為代表性向量。通過計(jì)算新日志序列向量與所有現(xiàn)有集群代表向量之間的距離來檢測異常。此類基于數(shù)據(jù)挖掘的日志異常檢測方法通常將日志表示為日志事件計(jì)數(shù)向量,無法捕獲日志事件的語義信息,異常檢測效果不穩(wěn)定。

基于深度學(xué)習(xí)的日志異常檢測方法可以更好地學(xué)習(xí)日志序列中日志事件之間的內(nèi)在關(guān)系,對異常日志的檢測有較高的精確率和魯棒性。監(jiān)督方法中,LogRobust采用Drain方法進(jìn)行日志解析,通過預(yù)處理、詞向量化并結(jié)合詞頻-逆文檔頻率(term frequency-inverse document frequency,TF-IDF) [25]將日志事件轉(zhuǎn)變?yōu)檎Z義向量,使用基于注意力的雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(bidirectional long-short term memory,Bi-LSTM)學(xué)習(xí)不同日志事件的重要性,可以處理不穩(wěn)定的日志序列。SwissLog利用基于字典無須參數(shù)調(diào)整的日志解析方法進(jìn)行解析,并使用BERT編碼器對模板中的語義信息進(jìn)行編碼,最后基于注意力的BJ2Jx2DeswPIXWzW+DPWXqOdr3yrevS785yZfbAbjUVM=i-LSTM模型進(jìn)行日志異常檢測。LightLog方法基于word2vec[26]和后處理算法獲得低維語義向量,通過輕量級時(shí)間卷積網(wǎng)絡(luò)實(shí)現(xiàn)在邊緣設(shè)備上的日志異常檢測。上述監(jiān)督學(xué)習(xí)方法需要人工對大量日志進(jìn)行標(biāo)注,十分耗時(shí)。無監(jiān)督方法中,Logsy[27]方法使用輔助數(shù)據(jù)集的正常日志序列增強(qiáng)數(shù)據(jù)表示,將注意力機(jī)制與Transformer編碼器相結(jié)合來進(jìn)行異常檢測。OC4Seq[28]將一類分類器與GRU網(wǎng)絡(luò)相結(jié)合,在日志序列上分別進(jìn)行全局和局部的異常檢測。此類無監(jiān)督學(xué)習(xí)的方法只關(guān)注歷史正常日志序列的信息,忽略了歷史異常日志序列的信息。

2 BTCNLog模型總體框架

現(xiàn)有基于日志異常檢測的方法通常都包含日志收集與預(yù)處理、日志解析、特征提取和異常檢測四個(gè)步驟。本文BTCNLog日志異常檢測模型總體框架如圖1所示。在訓(xùn)練階段,首先對原始日志條目進(jìn)行預(yù)處理、日志解析提取模板,并將模板進(jìn)行向量化提取日志語義向量。然后,將日志條目分組成日志序列,對訓(xùn)練日志序列數(shù)據(jù)進(jìn)行聚類標(biāo)簽估計(jì),得到偽標(biāo)簽。最后將帶有偽標(biāo)簽的日志序列語義向量輸入Bi-TCN,進(jìn)行異常檢測模型訓(xùn)練。在測試階段,同樣對新的原始日志進(jìn)行處理獲得日志序列及對應(yīng)的日志序列語義向量,輸入訓(xùn)練好的模型進(jìn)行異常檢測。

2.1 日志解析和向量化

日志解析是將原始日志經(jīng)過預(yù)處理,提取日志模板的過程。日志的向量化是指將日志提取的模板語句嵌入語義向量,得到可以進(jìn)行模型訓(xùn)練的日志數(shù)據(jù),最后結(jié)合日志分組得到日志序列及對應(yīng)的日志序列向量。

2.1.1 預(yù)處理

預(yù)處理日志數(shù)據(jù)是日志處理的第一步。不同系統(tǒng)日志條目會包含時(shí)間戳、日志消息等級和日志事件等不同的日志數(shù)據(jù)項(xiàng),因此需要根據(jù)日志數(shù)據(jù)集的框架,使用正則表達(dá)式匹配各個(gè)數(shù)據(jù)項(xiàng),如圖2所示。

其中顯示了一條BGL數(shù)據(jù)集日志條目,當(dāng)標(biāo)簽Label為“-”時(shí)表示正常日志,否則為異常日志。日志類型level可以粗略區(qū)分日志的等級,但不足以將異常日志和正常日志完全區(qū)分,而日志事件event是描述事件具體發(fā)生的非結(jié)構(gòu)化文本,蘊(yùn)涵豐富的日志信息,因此是進(jìn)行日志分析和異常檢測的主要數(shù)據(jù)來源。如果將原始日志事件直接向量化,則會出現(xiàn)詞匯量過多、無效詞過多的問題,給日志異常檢測帶來許多噪聲,影響訓(xùn)練效果。因此將事件中的日志公共變量,例如IP地址、八進(jìn)制數(shù)、日期等,利用正則表達(dá)式分別替換成對應(yīng)標(biāo)記,而不是被統(tǒng)一的變量通配符替換,這樣不僅可以保留部分變量的語義信息,還可以通過正則表達(dá)式篩選出不符合規(guī)則的變量。接下來對日志事件進(jìn)行日志解析,將描述系統(tǒng)事件的日志關(guān)鍵字部分和日志參數(shù)部分進(jìn)行分離。

2.1.2 日志解析

傳統(tǒng)日志解析方法例如使用最頻繁的Spell和Drain方法都需要對不同日志分別進(jìn)行預(yù)訓(xùn)練調(diào)參才能達(dá)到最佳解析結(jié)果。此外,還會因正常日志和異常日志存在過多相同內(nèi)容而導(dǎo)致日志關(guān)鍵字部分被過度解析成參數(shù)部分。目前日志事件大多都是基于英文單詞組成具有一定可讀性的語句,因此基于字典的日志解析方法,可以保留有效詞的語義信息,緩解過度解析的問題。其中SwissLog使用了此類日志解析方法。

首先,對每個(gè)日志事件進(jìn)行分隔并形成一組單詞標(biāo)記。由于日志事件中包含許多特殊符號,所以采用空格及日志中常用的特殊分隔符來分割日志事件字符串。根據(jù)引入的字典,將所有的單詞標(biāo)記進(jìn)行字典化,有效單詞放入單詞集中。然后,將日志事件根據(jù)單詞集進(jìn)行集群,具有相同單詞集并且每個(gè)單詞詞頻相同的日志事件被歸為同一集群,每個(gè)集群使用最長公共序列提取維護(hù)一個(gè)模板。接下來,將所有不同集群獲得的粗略模板按照順序生成前綴樹,用來整合最終的模板。

然而SwissLog在依據(jù)有效詞的單詞集進(jìn)行集群時(shí),當(dāng)日志事件中無有效詞或有效詞單一較少時(shí),有被解析為0模板或其他模板的可能性,導(dǎo)致大量0模板或模板解析錯(cuò)誤,影響日志序列上下文依賴性的提取。因此本文在選擇日志事件單詞集時(shí),額外加入了由下畫線或其他連字符組成的有效單詞,并將其存入分詞緩存字典。此外,針對分詞器wordninja會產(chǎn)生錯(cuò)誤拆分單詞的問題,本文對其拆分后的單詞作進(jìn)一步篩選,確保拆分的正確性,可以大大減少解析為0模板和其他模板的可能性。圖3(a)是SwissLog日志解析處理過程,其將單詞“ciod”錯(cuò)誤拆分為“cio”和“d”,并且將“LOGIN_MESSAGE”視為無效詞,而該單詞在一定程度上蘊(yùn)涵語義。圖3(b)是BTCNLog日志解析處理過程,可以看出本文的日志解析方法,結(jié)合日志事件中單詞的特性,保留了日志事件中的部分參數(shù)信息,從而減少了傳統(tǒng)日志解析中,因解析不準(zhǔn)確降低日志異常檢測方法的性能。

2.1.3 BERT語義向量化

下面對每個(gè)日志事件轉(zhuǎn)換的日志模板進(jìn)行向量化。傳統(tǒng)上,日志事件的單詞通過使用word2vec或GloVe[29]方法進(jìn)一步轉(zhuǎn)換為向量,然后根據(jù)單詞向量計(jì)算每個(gè)句子的表示向量。但是,此類方法生成的向量不包含上下語義信息,不能解決同義詞問題。為了更好地捕捉單詞的上下語義信息和詞性差異,BTCNLog使用BERT作為詞嵌入的方法。BERT詞嵌入模型的核心是Transformer編碼器,使用雙向自注意力機(jī)制能夠?qū)W習(xí)到單詞上下文的相關(guān)性,能夠根據(jù)周圍的單詞動(dòng)態(tài)地產(chǎn)生單詞表示形式。

在本模型中,利用預(yù)先訓(xùn)練好的BERT模型來獲取日志事件的語義信息,該模型在維基百科語料庫和圖書語料庫上進(jìn)行了訓(xùn)練,包含12層Transformer的編碼器,其中每個(gè)Transformer有768個(gè)隱藏單元。

2.1.4 日志分組

本文使用了滾動(dòng)窗口和會話窗口結(jié)合的分組策略對日志序列進(jìn)行分組,可以減少同一個(gè)事務(wù)的日志數(shù)據(jù)被分到不同日志序列中的情況,從而提高本模型的日志序列上下文依賴性的提取性能。

常規(guī)的日志分組方法包括滾動(dòng)窗口、滑動(dòng)窗口和會話窗口。 滾動(dòng)窗口是基于日志時(shí)間戳數(shù)據(jù)取相同窗口大小的日志,互不重疊?;瑒?dòng)窗口也是基于日志時(shí)間戳數(shù)據(jù),依據(jù)窗口大小和步長劃分,其前后窗口會重疊。會話窗口是基于日志的會話標(biāo)識符進(jìn)行分組。然而系統(tǒng)會多個(gè)任務(wù)并發(fā)執(zhí)行,導(dǎo)致日志的執(zhí)行順序可能會交錯(cuò),因此基于日志時(shí)間戳分組的滾動(dòng)窗口和滑動(dòng)窗口會導(dǎo)致同一個(gè)事務(wù)的日志數(shù)據(jù)被分到不同日志序列中,影響日志序列上下文依賴性的提取。會話窗口會導(dǎo)致日志序列長度有較大差別。

本文采取基于日志時(shí)間戳結(jié)合日志條目中某個(gè)特定數(shù)據(jù)項(xiàng)將日志重排并固定窗口大小w進(jìn)行日志分組。此日志分組方法基于數(shù)據(jù)項(xiàng)可以粗略劃分日志事務(wù)的前提來選取數(shù)據(jù)項(xiàng),例如node或user??梢砸欢ǔ潭壬媳WC相同日志事務(wù)被劃分到相同日志序列,并且不會產(chǎn)生日志序列長度相差太大的情況。若日志序列包含異常日志事件,則該日志序列為異常日志序列,否則為正常日志序列。

2.2 聚類估計(jì)標(biāo)簽

在已知部分正常日志序列的基礎(chǔ)上,基于語義相似的日志序列更有可能共享相同標(biāo)簽的性質(zhì),通過聚類,進(jìn)一步估計(jì)訓(xùn)練集中未標(biāo)記日志序列的標(biāo)簽,從而融合監(jiān)督方法的優(yōu)點(diǎn),可以學(xué)習(xí)到歷史異常日志的信息。

基于密度群集的HDBSCAN[30]聚類算法可以處理密度不同的聚類問題,無須預(yù)定義聚類數(shù)量且參數(shù)量少。因此采用HDBSCAN算法將訓(xùn)練集中的所有日志序列聚類到不同的簇,使每個(gè)簇更可能包含語義相似的日志序列。由于日志序列語義向量維度較大影響聚類效率,所以采用了FastICA[31]算法降低日志語義向量的維度,保留下最重要的一些特征,去除噪聲和不重要的特征,從而實(shí)現(xiàn)提升數(shù)據(jù)處理速度的目的。

本文的日志序列聚類過程如下:首先,將日志序列中每條日志語句語義向量求和作為圖的頂點(diǎn),日志序列之間的相互可達(dá)度量距離作為頂點(diǎn)之前邊的權(quán)重,構(gòu)建了一個(gè)帶權(quán)連通無向圖。 日志序列之前相互可達(dá)度量距離如式(1)所示。

dmreach-m(a,b)=max{corem(a),corem(b),d(a,b)}(1)

其中:dmreach-m(a,b)表示日志序列樣本a和b的相互可達(dá)度量距離;corem(a)表示日志序列樣本a與第m個(gè)最近鄰樣本點(diǎn)的核心距離;d(a,b)是兩個(gè)日志序列樣本點(diǎn)a和b之間的直接距離。

其次,將該帶權(quán)圖通過Prim算法構(gòu)建其最小生成樹。根據(jù)最小生成樹,通過按距離升序排列樹的邊,并為每條邊創(chuàng)建一個(gè)新的合并簇進(jìn)行迭代,將其轉(zhuǎn)換為連接組件的層次結(jié)構(gòu)。然后,根據(jù)設(shè)置的最小簇?cái)?shù)值,將大而復(fù)雜的簇層次結(jié)構(gòu)縮小成一個(gè)較小的樹。最后,根據(jù)每個(gè)簇的穩(wěn)定性值,從壓縮樹中提取出穩(wěn)定的簇。簇的穩(wěn)定性scluster公式如式(2)所示。

其中:λ=1/distance;λbirth表示當(dāng)節(jié)點(diǎn)被分裂成兩個(gè)子節(jié)點(diǎn)時(shí),對應(yīng)斷開邊的長度的倒數(shù);λa表示日志序列樣本點(diǎn)a因?yàn)榉至央x開該節(jié)點(diǎn)時(shí),對應(yīng)斷開邊長度的倒數(shù)。

這樣,將訓(xùn)練集中的日志序列分成若干簇,語義相似的日志序列劃分到同一簇中,同簇的日志序列共享相同的標(biāo)簽。因此,如果一個(gè)簇包含已知的正常日志序列,則該簇中的其余未標(biāo)簽的日志序列更有可能也是正常日志序列,否則有可能是異常的。通過測量未標(biāo)記日志序列屬于每個(gè)標(biāo)簽的概率來為每個(gè)未標(biāo)記日志序列指定概率標(biāo)簽,以減少噪聲的影響。具體而言,HDBSCAN聚類結(jié)果會給每個(gè)日志序列樣本分配一個(gè)0~1的分?jǐn)?shù)score,用于表示每個(gè)日志序列屬于該簇的不確定性,score越小說明該日志序列越接近該簇的中心。因此,可以將該分?jǐn)?shù)劃為屬于正?;虍惓5母怕?,若預(yù)測為正常日志序列,則偽標(biāo)簽如式(3)所示。

2.3 異常檢測

在日志異常檢測階段中,使用了殘差塊的雙向時(shí)間卷積網(wǎng)絡(luò)從兩個(gè)方向捕獲上下文信息,從而提高捕獲日志數(shù)據(jù)的特征性能。首先通過日志序列S={e1,e2,…,en}得到日志序列語義向量表示為V={v1,v2,…,vn},其中n為該日志序列長度,et(1≤t≤n)是第t個(gè)日志事件,將其中每個(gè)日志事件et都對應(yīng)地表示為語義向量vt,從而將其放入到Bi-TCN中。

Bi-TCN是由TCN擴(kuò)展而來的。TCN是一種基于CNN的新型神經(jīng)網(wǎng)絡(luò)模型,旨在處理時(shí)間序列預(yù)測任務(wù),其遵循一維全卷積網(wǎng)絡(luò)的架構(gòu),具有相同的輸入和輸出長度。與普通卷積不同的是,TCN使用因果卷積來確保只捕獲過去的信息,利用膨脹卷積在卷積核中增加空洞來增加感受野,因此具有更靈活的感受野,有利于捕捉序列數(shù)據(jù)的短期和長期時(shí)間依賴性。與RNN相比,其易于并行化處理,解決了建模遠(yuǎn)程關(guān)系時(shí)的梯度爆炸和消失問題,在內(nèi)存消耗和處理速度方面具有顯著優(yōu)勢。

然而原始的TCN只關(guān)注當(dāng)前日志序列的局部特征與其上文信息之間的相關(guān)性,完全忽略了日志序列與其下文信息之間的相關(guān)性。因此,將TCN擴(kuò)展為雙向網(wǎng)絡(luò)即Bi-TCN,它可以從日志序列上下文的信息中捕獲每個(gè)日志的長期上下文依賴關(guān)系,從而有效地增強(qiáng)上下文表示。在TCN中,因果卷積操作保證只有當(dāng)前時(shí)間戳之前的輸入數(shù)據(jù)被用來進(jìn)行學(xué)習(xí),因此將因果卷積改為一維卷積以實(shí)現(xiàn)雙向的信息學(xué)習(xí)。

將V輸入Bi-TCN,進(jìn)一步提取長日志上下文的相關(guān)性。給定序列V={v1,v2,…,vn},Bi-TCN輸出一個(gè)相同長度的輸出結(jié)果Y={y1,y2,…,yn}。其中,每個(gè)yt(1≤t≤n)不僅依賴于該時(shí)刻之前的輸入值,而且與未來的輸入值有關(guān),從而提取了日志序列的上下文相關(guān)性。Bi-TCN殘差塊如圖4(a)所示,一個(gè)殘差塊包含兩層膨脹卷積,以使模型可以獲得更大的感受野,在每層之后加入了WeightNorm層,并使用dropout層來防止模型過擬合。通過殘差塊可以實(shí)現(xiàn)跨層連接的恒等映射,解決了深層網(wǎng)絡(luò)的訓(xùn)練問題可以大大增加網(wǎng)絡(luò)的層數(shù)。卷積過程如圖4(b)所示,Bi-TCN使用一維全卷積,并在每層加入0-padding實(shí)現(xiàn)輸入和輸出長度相等,填充公式如式(4)所示,膨脹卷積計(jì)算公式如式(5)所示。

其中:d表示膨脹率,以2的指數(shù)增長(d=1,2,…,2n);k表示卷積核的大??;f表示濾波器;t-d·i表示過去的時(shí)間方向;t+d·i表示未來的時(shí)間方向。

提取特征后,使用全局平均池化代替全連接層來平均最后一個(gè)卷積層的輸出特征,進(jìn)一步減少全連接層中的參數(shù),從而實(shí)現(xiàn)緊湊和高效的特征表示。最后,經(jīng)過全連接層和softmax分類器判定異常。

算法1 BTCNLog算法

3 實(shí)驗(yàn)及分析

3.1 數(shù)據(jù)集

日志解析實(shí)驗(yàn)部分采用了Loghub[32]提供的真實(shí)世界日志數(shù)據(jù)集,其中包含從分布式系統(tǒng)、超級計(jì)算機(jī)、操作系統(tǒng)、移動(dòng)系統(tǒng)、服務(wù)應(yīng)用程序收集的16個(gè)數(shù)據(jù)集,每個(gè)數(shù)據(jù)集包含2 000個(gè)日志條目。

日志異常檢測實(shí)驗(yàn)部分選擇了三個(gè)公共日志數(shù)據(jù)集(BGL、Thunderbird和Spirit)用于驗(yàn)證實(shí)驗(yàn)的有效性。BGL是從BlueGene/L超級計(jì)算機(jī)收集的日志數(shù)據(jù)集,部署在勞倫斯利弗莫爾國家實(shí)驗(yàn)室,時(shí)間跨度251 d,包含4 747 963條日志記錄,其中348 460條是異常的。Thunderbird和Spirit都是在美國新墨西哥州阿爾伯克基的桑迪亞國家實(shí)驗(yàn)室的兩臺真實(shí)世界的超級計(jì)算機(jī)系統(tǒng)收集的大型日志數(shù)據(jù)集。選取Thunderbird原始數(shù)據(jù)集中前5 000 000條連續(xù)日志數(shù)據(jù)和Spirit數(shù)據(jù)集的1 GB日志數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。這三個(gè)數(shù)據(jù)集中的每條日志消息都被手動(dòng)標(biāo)記為異?;蛘?。

3.2 評估指標(biāo)

大部分日志異常檢測的研究只使用精確率(precision)、召回率(recall)和F1值作為評估指標(biāo)。由于日志數(shù)據(jù)集正負(fù)樣例不均衡的特性,使用特異性(specificity)即被正確識別為正常的日志序列在所有真實(shí)正常序列中的百分比,可以衡量誤報(bào)的概率,更全面地評估日志異常檢測模型。日志解析實(shí)驗(yàn)的度量標(biāo)準(zhǔn)是解析準(zhǔn)確率(parsing accuracy),正確解析的日志事件與日志事件總數(shù)之比,其中日志模板的部分匹配情況也被認(rèn)定為不正確。

TP表示模型正確檢測出的異常日志序列數(shù)量;FP表示被模型錯(cuò)誤識別為異常的正常日志序列的數(shù)量;FN表示被模型判別為正常的異常日志序列數(shù)量,即未被檢測到的異常日志序列的數(shù)量;TN表示模型正確識別的正常日志序列數(shù)量。

3.3 基準(zhǔn)模型

日志解析實(shí)驗(yàn)部分將改進(jìn)的日志解析方法與使用頻率最高的兩個(gè)日志解析方法Spell和Drain以及SwissLog日志解析方法進(jìn)行比較。同時(shí),日志異常檢測實(shí)驗(yàn)部分將BTCNLog與七個(gè)基準(zhǔn)方法作比較,其中包括兩個(gè)基于數(shù)據(jù)挖掘的日志異常檢測方法,以及五種基于深度學(xué)習(xí)的日志異常檢測方法,詳情如表1所示。

a)主成分分析(PCA)[33]。將日志序列矢量化為事件計(jì)數(shù)向量,利用PCA構(gòu)建對事件計(jì)數(shù)向量的正??臻g和異??臻g,若測試用例遠(yuǎn)離正??臻g則為異常日志。

b)不變量挖掘(invariant mining,IM)[34]。從日志計(jì)數(shù)向量中挖掘日志事件之間的不變量,不滿足這些不變量的日志序列被視為異常。

c)DeepLog。將系統(tǒng)日志表示為日志模板的索引,通過LSTM網(wǎng)絡(luò)學(xué)習(xí)正常日志序列并預(yù)測下一個(gè)日志事件來判定異常。

d)LogAnomaly。在template2vec的支持下提取隱藏在日志模板中的語義信息,使用LSTM網(wǎng)絡(luò)從正常日志序列中提取順序和定量特征并通過預(yù)測判定異常。

e)LogBERT[35]。使用BERT來捕獲整個(gè)日志序列的信息,并通過屏蔽日志鍵預(yù)測和超球體最小化體積兩個(gè)新的自監(jiān)督訓(xùn)練任務(wù)學(xué)習(xí)正常日志序列。訓(xùn)練后,利用模型預(yù)測結(jié)果推導(dǎo)出日志序列的異常分?jǐn)?shù)用于區(qū)分出異常日志。

f)PLELog。通過概率標(biāo)簽估計(jì)結(jié)合歷史異常日志信息,并使用word2vec語義嵌入處理不穩(wěn)定的數(shù)據(jù),最后使用基于注意力的GRU進(jìn)行異常檢測。

g)LogEncoder[36]。一種半監(jiān)督異常檢測的日志序列編碼框架,利用預(yù)先訓(xùn)練的模型來獲得每個(gè)日志事件的模型,并將單類和對比目標(biāo)學(xué)習(xí)方法結(jié)合,使用基于注意力的模型來捕獲日志事件的信息。

3.4 實(shí)驗(yàn)壞境和配置

在配備Intel CoreTM i5-10400F 2.90 GHz CPU、128 GB內(nèi)存、具有6 GB GPU內(nèi)存的GTX1660Ti和Windows操作系統(tǒng)的服務(wù)器上,使用了Python 3.8.3、PyTorch 1.5.1等進(jìn)行日志解析、日志異常檢測和消融實(shí)驗(yàn)。

本文設(shè)置日志序列窗口大小w為60,根據(jù)訓(xùn)練環(huán)境設(shè)置模型訓(xùn)練epochs為5,batch_size為100,測試batch_size為1 024。根據(jù)先驗(yàn)知識,F(xiàn)astICA組件數(shù)量設(shè)置為100,HDBSCAN中參數(shù)min_cluster_size設(shè)置為100,min_samples為100。根據(jù)調(diào)參結(jié)果,使用4層Bi-TCN模型,每層的卷積核大小k為3,dropout設(shè)置為0.2。使用Adam優(yōu)化器和LambdaLR學(xué)習(xí)率調(diào)整方法,初始學(xué)習(xí)率設(shè)置為2E-3。根據(jù)以下比例拆分所有數(shù)據(jù)集:60%的數(shù)據(jù)用于訓(xùn)練,10%用于驗(yàn)證,30%用于測試。

3.5 結(jié)果和分析

3.5.1 日志解析實(shí)驗(yàn)

日志解析部分使用與SwissLog方法所提供的相同字典進(jìn)行實(shí)驗(yàn),除此之外,為了與解析結(jié)果相匹配,在預(yù)處理時(shí)將正則表達(dá)式替換的參數(shù)部分改為統(tǒng)一標(biāo)記。表2顯示了BTCNLog模型日志檢測部分與其余三個(gè)基準(zhǔn)方法在16個(gè)日志數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果以及平均準(zhǔn)確率,其中加粗字體顯示每個(gè)數(shù)據(jù)集最優(yōu)結(jié)果。實(shí)驗(yàn)結(jié)果表明,在每個(gè)數(shù)據(jù)集上,BTCNLog模型都能取得優(yōu)于Spell和Drain方法的結(jié)果,因?yàn)榛谧值涞慕馕龇椒ú粫⑷罩娟P(guān)鍵字過度解析為日志參數(shù)。較SwissLog而言,結(jié)合日志單詞特點(diǎn)的改進(jìn)使得日志解析準(zhǔn)確率在Hadoop、Thunderbird、Mac、Linux、Android五個(gè)數(shù)據(jù)集上都提高了。值得一提的是,在SwissLog論文中提到Mac日志數(shù)據(jù)集上解析的效果較差,在經(jīng)過改進(jìn)后,Mac日志數(shù)據(jù)集中含有語義信息的合成詞被保留,準(zhǔn)確率提高了4.45%。

3.5.2 日志異常檢測實(shí)驗(yàn)

圖5(a)(b)分別顯示了BTCNLog與七個(gè)基準(zhǔn)在BGL和Thunderbird日志數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果。由于很多基準(zhǔn)實(shí)驗(yàn)未在Spirit日志數(shù)據(jù)集上進(jìn)行,并且使用Drain解析Spirit數(shù)據(jù)集準(zhǔn)確率低,所以只在消融實(shí)驗(yàn)中對該日志實(shí)驗(yàn)結(jié)果進(jìn)行分析。

實(shí)驗(yàn)結(jié)果表明,基于數(shù)據(jù)挖掘的方法IM和PCA表現(xiàn)低于基于深度學(xué)習(xí)的方法,因?yàn)榇祟惙椒▽⑷罩拘蛄斜硎緸槿罩居?jì)數(shù)向量,即每個(gè)維度表示日志事件在日志序列中出現(xiàn)的次數(shù),忽略了日志事件中的語義信息,無法應(yīng)對不斷演化的日志語句?;谡H罩具M(jìn)行訓(xùn)練的無監(jiān)督方法DeepLog和LogAnomaly旨在預(yù)測日志序列中的下一個(gè)日志事件,所以它們只能預(yù)測其訓(xùn)練集中出現(xiàn)的日志事件,很容易將看不見的日志事件視為異常,降低了異常檢測的準(zhǔn)確率。此外,DeepLog基于日志模板索引進(jìn)行異常檢測,忽略了模板語義信息,效果不如LogAnomaly。至于方法LogBERT,雖在BGL數(shù)據(jù)集上表現(xiàn)一般,但其使用BERT可以有效捕獲整個(gè)日志序列的信息,因此其有效性優(yōu)于Deeplog和LogAnomaly。PLELog由于其語義嵌入和整合歷史異常知識的能力,在BGL數(shù)據(jù)集上表現(xiàn)良好,但是在Thunderbird數(shù)據(jù)集上表現(xiàn)較差,與其采用的日志解析方法Drain解析效果不佳有關(guān)。半監(jiān)督模型LogEncoder同樣使用BERT提取模板中的語義信息,結(jié)合注意力機(jī)制和對比學(xué)習(xí)具有魯棒性,在兩個(gè)數(shù)據(jù)集上都能取得較好的檢測結(jié)果。而BTCNLog在日志解析方法上進(jìn)行了改進(jìn),結(jié)合BERT更能保留日志事件語義信息,使用Bi-TCN從日志序列上下文提取相關(guān)性,可以更好地捕獲異常,因此在兩個(gè)數(shù)據(jù)集上都取得了較高的F1分?jǐn)?shù),優(yōu)于其他基準(zhǔn)模型。

為了進(jìn)一步評估不同日志序列窗口大小對日志異常檢測有效性的影響,窗口大小w分別選取60、120、180、240進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖6所示。結(jié)果表明,實(shí)驗(yàn)窗口對異常檢測有效性結(jié)果影響不大,各個(gè)評估指標(biāo)都能達(dá)到較高水平。因此,使用BTCNLog模型可以有效學(xué)習(xí)不同長度日志序列中的依賴關(guān)系。

3.5.3 消融實(shí)驗(yàn)

消融實(shí)驗(yàn)可以驗(yàn)證模型各個(gè)部分的有效性,因此分別在BGL、Thunderbird和Spirit日志數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn),驗(yàn)證日志解析、日志語義嵌入和日志異常檢測模型的有效性。表3顯示了在三個(gè)數(shù)據(jù)集上進(jìn)行三項(xiàng)消融實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。

1)日志解析的消融實(shí)驗(yàn)

將日志解析部分改為SwissLog原始解析方法,實(shí)驗(yàn)效果如表3的模型Bi-TCN+SwissLog所示,在三個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果都略有下降。因?yàn)锽TCNLog模型的解析部分結(jié)合了日志單詞的特性,并保留了部分參數(shù)的語義信息,充分利用日志事件的語義信息。在Spirit數(shù)據(jù)集上,實(shí)驗(yàn)效果普遍較差,這與該數(shù)據(jù)集中包含較多專業(yè)領(lǐng)域縮寫、可讀性較差有關(guān)。

2)異常檢測模型的消融實(shí)驗(yàn)

表3的模型TCN+BERT顯示了將日志異常檢測模型部分改為TCN的實(shí)驗(yàn)結(jié)果,結(jié)果顯示,使用TCN進(jìn)行異常檢測仍然可以得到很好的效果,但與Bi-TCN相比,實(shí)驗(yàn)效果略微下降。此外,使用具有100層隱藏層的Bi-LSTM替換Bi-TCN,實(shí)驗(yàn)結(jié)果如表3的Bi-LSTM+BERT模型所示,雖召回率可以保持較好水平,但精確率有所下降,從而證實(shí)了Bi-TCN有效學(xué)習(xí)日志序列上下文信息,對日志異常檢測有改進(jìn)的效果。

3)語義向量的消融實(shí)驗(yàn)

在保持模型其余部分相同的情況下,將日志模板語義嵌入模塊改為GloVe和TF-IDF進(jìn)行實(shí)驗(yàn),其中語義向量維度為300。實(shí)驗(yàn)結(jié)果如表3的Bi-TCN+GloVe模型所示,雖然在召回率上BTCNLog模型結(jié)果略低些,但在精確度、F1分?jǐn)?shù)和特異性上比使用GloVe作為語義嵌入的效果好。這是因?yàn)槭褂肎loVe方法會有很多OOV(out of vocabulary)問題,無法準(zhǔn)確表示日志序列語義信息。因此結(jié)果證實(shí)了BERT語義嵌入的有效性,可以有效保留日志的語義信息。

4 結(jié)束語

本文提出了一種新的基于日志的半監(jiān)督異常檢測方法BTCNLog。首先通過改進(jìn)的基于字典的日志解析方法進(jìn)行日志解析,使用BERT對模板中的語義信息進(jìn)行編碼獲得日志的語義向量;通過新的日志分組方式進(jìn)行分組;然后通過聚類進(jìn)行標(biāo)簽估計(jì);最后,基于雙向的時(shí)間卷積網(wǎng)絡(luò)進(jìn)行異常檢測。該模型能夠提高日志解析準(zhǔn)確性,充分利用日志事件的語義信息,并高效提取日志序列上下文信息,提高了日志異常檢測的效率和精度。同時(shí),半監(jiān)督學(xué)習(xí)方法減少人工標(biāo)注,可以學(xué)習(xí)到歷史異常日志的信息。

今后工作的主要目標(biāo)在于在現(xiàn)實(shí)大型軟件系統(tǒng)中部署,測試其在更多日志數(shù)據(jù)集上的表現(xiàn)。同時(shí),將進(jìn)一步改進(jìn)模型,解決BTCNLog對于部分可讀性較差的系統(tǒng)日志事件異常檢測效果不佳的問題。

參考文獻(xiàn):

[1]賈統(tǒng), 李影, 吳中海. 基于日志數(shù)據(jù)的分布式軟件系統(tǒng)故障診斷綜述[J]. 軟件學(xué)報(bào), 2020,31(7): 1997-2018. (Jia Tong, Li Ying, Wu Zhonghai. Review of fault diagnosis of distributed software system based on log data[J]. Journal of Software, 2020, 31(7): 1997-2018.)

[2]Zhang Xu, Xu Yong, Lin Qingwei, et al. Robust log-based anomaly detection on unstable log data[C]//Proc of the 27th ACM Joint Mee-ting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York: ACM Press, 2019: 807-817.

[3]Li Xiaoyun, Chen Pengfei, Jing Linxiao, et al. SwissLog: robust and unified deep learning based log anomaly detection for diverse faults[C]//Proc of the 31st International Symposium on Software Reliability Engineering. Piscataway,NJ: IEEE Press, 2020: 92-103.

[4]Li Xiaoyun, Chen Pengfei, Jing Linxiao, et al. SwissLog: robust anomaly detection and localization for interleaved unstructured logs[J]. IEEE Trans on Dependable and Secure Computing, 2023, 20(4): 2762-2780.

[5]Wang Zumin, Tian Jiyu, Fang Hui, et al. LightLog: a lightweight temporal convolutional network for log anomaly detection on the edge[J]. Computer Networks, 2022, 203: 108616.

[6]Du Min, Li Feifei, Zheng Guineng, et al. DeepLog: anomaly detection and diagnosis from system logs through deep learning[C]//Proc of ACM SIGSAC Conference on Computer and Communications Secu-rity. New York: ACM Press, 2017: 1285-1298.

[7]Meng Weibin, Liu Ying, Zhu Yichen, et al. LogAnomaly: unsupervised detection of sequential and quantitative anomalies in unstructured logs[C]//Proc of the 28th International Joint Conference on Artificial Intelligence. San Francisco: Morgan Kaufmann Publishers, 2019: 4739-4745.

[8]Bai Shaojie, Kolter J Z, Koltun V. An empirical evaluation of generic convolutional and recurrent networks for sequence modeling[EB/OL]. (2018-04-19). https://arxiv.org/abs/1803.01271.

[9]Zhang Shenglin, Meng Weibin, Bu Jiahao, et al. Syslog processing for switch failure diagnosis and prediction in datacenter networks[C]//Proc of the 25th International Symposium on Quality of Ser-vice. Piscataway,NJ: IEEE Press, 2017: 1-10.

[10]Du Min, Li Feifei. Spell: online streaming parsing of large unstructured system logs[J]. IEEE Trans on Knowledge and Data Engineering, 2018, 31(11): 2213-2227.

[11]He Pinjia, Zhu Jieming, Zheng Zibin, et al. Drain: an online log parsing approach with fixed depth tree[C]//Proc of the 24th IEEE International Conference on Web Services. Piscataway,NJ: IEEE Press, 2017: 33-40.

[12]Devlin J, Chang Mingwei, Lee K, et al. BERT: pre-training of deep bidirectional transformers for language understanding[EB/OL]. (2019-05-24). https://arxiv.org/abs/1810.04805.

[13]Yang Lin, Chen Junjie, Wang Zan, et al. Semi-supervised log-based anomaly detection via probabilistic label estimation[C]//Proc of the 43rd International Conference on Software Engineering. Piscataway,NJ: IEEE Press, 2021: 1448-1460.

[14]Fu Qiang, Lou Jianguang, Wang Yi, et al. Execution anomaly detection in distributed systems through unstructured log analysis[C]//Proc of the 9th IEEE International Conference on Data Mining, Piscataway,NJ: IEEE Press, 2009: 149-158.

[15]Hossein H, Debnath B, Xu Jianwu, et al. LogMine: fast pattern re-cognition for log analytics[C]//Proc of the 25th ACM International on Conference on Information and Knowledge Management. New York: ACM Press, 2016: 1573-1582.

[16]Nagappan M, Vouk M. Abstracting log lines to log event types for mining software system logs[C]//Proc of the 7th IEEE Working Conference on Mining Software Repositories. Piscataway,NJ: IEEE Press, 2010: 114-117.

[17]Makanju A, Zincir-Heywood A N, Milios E. Clustering event logs using iterative partitioning[C]//Proc of the 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM Press, 2009: 1255-1264.

[18]Meng Weibin, Liu Ying, Zaiter F, et al. Logparse: making log parsing adaptive through word classification[C]//Proc of the 29th International Conference on Computer Communications and Networks. Piscataway,NJ: IEEE Press, 2020: 1-9.

[19]Dai Hetong, Li Heng, Shang Weiyi, et al. Logram: efficient log parsing using n-gram dictionaries[J]. IEEE Trans on Software Engineering, 2022, 48(3): 879-892.

[20]Nedelkoski S, Bogatinovski J, Acker A, et al. Self-supervised log parsing[C]//Proc of Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Cham: Springer, 2020: 122-138.

[21]張穎君, 劉尚奇, 楊牧, 等. 基于日志的異常檢測技術(shù)綜述[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2020,6(6): 1-12. (Zhang Yingjun, Liu Shangqi, Yang Mu, et al. Overview of log based anomaly detection technology[J]. Journal of Network and Information Security, 2020, 6(6): 1-12.)

[22]Bodík P, Goldszmidt M, Fox A, et al. Fingerprinting the datacenter: automated classification of performance crises[C]//Proc of the 5th European Conference on Computer Systems. New York: ACM Press, 2010: 111-124.

[23]Liang Yinglung, Zhang Yanyong, Xiong Hui, et al. Failure prediction in IBM BlueGene/L event logs[C]//Proc of the 7th IEEE International Conference on Data Mining Workshops. Piscataway,NJ: IEEE Press, 2007: 583-588.

[24]Zhu Jieming, He Pinjia, Fu Qiang, et al. Learning to log: helping developers make informed logging decisions[C]//Proc of the 37th IEEE International Conference on Software Engineering. Piscataway,NJ: IEEE Press, 2015: 415-425.

[25]Soucy P, Mineau G. Beyond TFIDF weighting for text categorization in the vector space model[C]//Proc of International Joint Conference on Artificial Intelligence. San Francisco: Morgan Kaufmann Publishers, 2005: 1130-1135.

[26]Ling Wang, Dyer C, Black A, et al. Two/too simple adaptations of word2vec for syntax problems[C]//Proc of Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, PA: ACL Press, 2015: 1299-1304.

[27]Nedelkoski S, Bogatinovski J, Acker A, et al. Self-attentive classification-based anomaly detection in unstructured logs[C]//Proc of IEEE International Conference on Data Mining. Piscataway,NJ: IEEE Press, 2020: 1196-1201.

[28]Wang Zhiwei, Chen Zhengzhang, Ni Jingchao, et al. Multi-scale one-class recurrent neural networks for discrete event sequence ano-maly detection[C]//Proc of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining. New York: ACM Press, 2021: 3726-3734.

[29]Pennington J, Socher R, Christopher D. Manning. GloVe: global vectors for word representation[C]//Proc of Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL Press, 2014: 1532-1543.

[30]McInnes L, Healy J, Astels S. HDBSCAN: hierarchical d+BbziV4l++hmVIQbFW5Dzg==ensity based clustering[J]. Journal of Open Source Software, 2017,2(11): 205.

[31]Oja E, Yuan Zhijian. The FastICA algorithm revisited: convergence analysis[J]. IEEE Trans on Neural Networks, 2006, 17(6): 1370-1381.

[32]Zhu Jieming, He Shilin, He Pinjia, et al. Loghub: a large collection of system log datasets for AI-driven log analytics[C]//Proc of the 34th International Symposium on Software Reliability Engineering. Piscataway,NJ: IEEE Press, 2023: 355-366.

[33]Xu Wei, Huang Ling, Fox A, et al. Detecting large-scale system problems by mining console logs[C]//Proc of the 22nd ACM SIGOPS Symposium on Operating Systems Principles. New York: ACM Press, 2009: 117-132.

[34]Lou Jianguang, Fu Qiang, Yang Shengqi, et al. Mining invariants from console logs for system problem detection[C]//Proc of USENIX Annual Technical Conference. Berkeley: USENIX Press,2010: 24.

[35]Guo Haixuan, Yuan Shuhan, Wu Xintao. LogBERT: log anomaly detection via BERT[C]//Proc of International Joint Conference on Neural Networks. Piscataway,NJ: IEEE Press, 2021: 1-8.

[36]Qi Jiaxing, Luan Zhongzhi, Huang Shaohan, et al. LogEncoder: log-based contrastive representation learning for anomaly detection[J]. IEEE Trans on Network and Service Management, 2023,20(2): 1378-1391.