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

?

FMLogs:基于模板匹配的日志解析方法

2024-08-15 00:00:00章一磊張廣澤龔聲望苑淑晴

摘 要:日志主要記錄軟硬件的運(yùn)行信息,通過(guò)查看系統(tǒng)日志,可以找到系統(tǒng)出現(xiàn)的問(wèn)題及原因,確保系統(tǒng)的穩(wěn)定性和正常運(yùn)行。日志解析的目的是將半結(jié)構(gòu)化的原始日志解析為可閱讀的日志模板,現(xiàn)有解析方法往往只注重于對(duì)原始日志的解析,而忽略了后期模板處理,導(dǎo)致結(jié)果的精度不能進(jìn)一步提高。自此,提出了一種日志解析方法FMLogs(logs parsing based on frequency and MinHash algorithm)。該方法通過(guò)設(shè)計(jì)正則表達(dá)式和調(diào)節(jié)閾值參數(shù)以獲得最佳性能,同時(shí)采用了字符級(jí)頻率統(tǒng)計(jì)和MinHash方法對(duì)長(zhǎng)度相同和不同的日志模板進(jìn)行合并。FMLogs在七個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了廣泛的實(shí)驗(yàn),取得了0.924的平均解析準(zhǔn)確率和0.983的F1-Score。實(shí)驗(yàn)結(jié)果表明,F(xiàn)MLogs是一種有效的日志解析方法,在解析日志的同時(shí)具有較高的準(zhǔn)確性和效率,并能保證性能的穩(wěn)定。

關(guān)鍵詞:日志分析; 解析方法; 數(shù)據(jù)分析

中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2024)08-030-2461-06

doi:10.19734/j.issn.1001-3695.2023.12.0612

FMLogs: log parsing method based on template matching

Zhang Yilei, Zhang Guangze, Gong Shengwang, Yuan Shuqing

(School of Computer & Information, Anhui Normal University, Wuhu Anhui 241000, China)

Abstract:Logs record the software and hardware running information. By viewing system logs, you can find system faults and causes to ensure system stability and normal running. The purpose of log parsing is to parse semi-structured original logs into readable log templates. The existing parsing methods often only focus on parsing the original logs, but ignore the later template processing. As a result, the accuracy of the results cannot be further improved. Since then, this paper proposed a new log parsing method FMLogs. This method designed regular expressions and adjusted threshold parameters to obtain the best perfor-mance. Meanwhile, it used character-level frequency statistics and MinHash methods to merge log templates with the same length and different log templates. FMLogs conducted extensive experiments on seven real datasets, achieving an average analytic accuracy of 0.924 and an F1-score of 0.983. The experimental results show that FMLogs is an effective log parsing me-thod with high accuracy, high efficiency, and stable performance.

Key words:log analysis; analytical method; data analysis

0 引言

隨著進(jìn)入大數(shù)據(jù)時(shí)代,越來(lái)越多的軟件及系統(tǒng)被投入市場(chǎng),在開發(fā)和維護(hù)軟件系統(tǒng)的過(guò)程中,需要工程師不斷地投入精力去保持整個(gè)軟件系統(tǒng)及環(huán)境的穩(wěn)態(tài)平衡。考慮在現(xiàn)實(shí)中存在大量的非專業(yè)人員參與其中,有限的知識(shí)領(lǐng)域使得他們不能更好地操作。因此,有研究者提出通過(guò)系統(tǒng)自動(dòng)解析的日志文件來(lái)更好地了解系統(tǒng)的運(yùn)行[1,2]。

日志文件是軟件開發(fā)和維護(hù)過(guò)程中的重要資源,供開發(fā)人員和系統(tǒng)管理員使用。通過(guò)分析日志文件,開發(fā)人員可以通過(guò)了解系統(tǒng)的運(yùn)行狀況并進(jìn)行故障排查。此外,日志文件還可以用于安全審計(jì)、合規(guī)性檢查和故障恢復(fù)等方面。常見的日志文件格式包括文本文件、數(shù)據(jù)庫(kù)記錄或特定格式的二進(jìn)制文件。日志文件通常按時(shí)間戳順序存儲(chǔ),以便追溯和分析特定時(shí)間段的事件。對(duì)于開發(fā)人員而言,日志文件是不可或缺的重要資源,往往也是他們唯一能夠獲取的關(guān)鍵信息。日志文件作為系統(tǒng)運(yùn)行的重要指標(biāo)之一,日志解析在逐年的研究中性能得到了極大的改善,但是仍存在一些局限,如有些普適的解析方法適用于大眾系統(tǒng)日志,而對(duì)于某些系統(tǒng)日志則會(huì)降低其解析精準(zhǔn)度[3],無(wú)法做到平衡;而針對(duì)極大量的日志,例如,在阿里巴巴的云計(jì)算系統(tǒng)中,每小時(shí)會(huì)以1.2~2億條日志的速度產(chǎn)出[4],使得解析過(guò)程變得緩慢。

近些年來(lái),日志解析得到了國(guó)內(nèi)外研究者廣泛的關(guān)注,現(xiàn)有的解析可大致分為基于規(guī)則驅(qū)動(dòng)、基于代碼分析和基于數(shù)據(jù)驅(qū)動(dòng)的日志解析方法?;谝?guī)則驅(qū)動(dòng)的解析方法一般需要使用預(yù)定義的規(guī)則集來(lái)識(shí)別和提取日志的信息;基于代碼分析的解析方法需要開發(fā)人員編寫特性的代碼去解析日志,通過(guò)特定的邏輯和算法來(lái)提取模板;基于數(shù)據(jù)驅(qū)動(dòng)的方法則是通過(guò)分析實(shí)際數(shù)據(jù)來(lái)推動(dòng)決策、建?;騼?yōu)化過(guò)程。隨著日益增加的數(shù)據(jù)量和日志的多樣性,基于規(guī)則驅(qū)動(dòng)和基于代碼分析的方法出現(xiàn)維護(hù)成本高、不靈活和過(guò)于依賴人工等缺點(diǎn),而數(shù)據(jù)驅(qū)動(dòng)方法逐漸成為主流?;谝?guī)則驅(qū)動(dòng)的方法包括Grok[5]、SEC[6]等,基于數(shù)據(jù)驅(qū)動(dòng)的包括LogMine[7]、LKE[8]、Drain、IPLoM、AEL、Spell[9]、Oilog[10]等。目前數(shù)據(jù)驅(qū)動(dòng)解析主要采用三類技術(shù)。第一種是基于聚類[7,8,11]的算法,在日志解析中,基于聚類的算法旨在將具有相似格式或內(nèi)容的日志消息歸為同一類別,從而可以更好地理解日志數(shù)據(jù)、檢測(cè)異常情況以及提取有用的信息。例如,IPLoM [12]通過(guò)迭代分割和挖掘的方式來(lái)解析日志數(shù)據(jù),根據(jù)長(zhǎng)度、令牌位置和雙目標(biāo)關(guān)系將日志消息分組;WT-Parser[13]通過(guò)日志單詞構(gòu)成來(lái)篩選模板單詞用于日志聚類,再采用前綴樹的思想提取日志模板;Vue4logs[14]利用信息檢索領(lǐng)域常用的向量空間模型對(duì)日志數(shù)據(jù)進(jìn)行矢量化,并根據(jù)日志信息的向量相似度將日志信息分組為事件模板;LPV[15]利用自然語(yǔ)言處理中的向量化方法,將日志消息和日志模板轉(zhuǎn)換為向量,然后通過(guò)對(duì)向量的聚類對(duì)日志消息進(jìn)行聚類,最后從聚類結(jié)果中提取日志模板。雖然基于聚類的算法具有無(wú)須標(biāo)記樣、實(shí)用性廣泛的優(yōu)點(diǎn),但是聚類算法對(duì)于大規(guī)模的日志數(shù)據(jù)可能需要大量的計(jì)算資源和時(shí)間。第二種是基于頻率的算法,基于頻率的算法利用日志行或單詞的頻率來(lái)識(shí)別日志模式和結(jié)構(gòu),在簡(jiǎn)單和實(shí)時(shí)性方面具有優(yōu)勢(shì)。這類算法認(rèn)為,日志中常量出現(xiàn)的頻率較高,而變量出現(xiàn)的頻率較低,通過(guò)分析這些頻率可以區(qū)分日志中的常量與變量,從而實(shí)現(xiàn)對(duì)日志的解析。例如,feature tree[16]基于頻率構(gòu)建一棵特征樹來(lái)實(shí)現(xiàn)日志解析和模板生成;Logram[17]通過(guò)兩個(gè)步驟自動(dòng)解析日志消息為靜態(tài)文本和動(dòng)態(tài)變量,統(tǒng)計(jì)日志消息中所有的n-gram頻率,并計(jì)算每個(gè)n-gram的出現(xiàn)次數(shù),最后將常量固定并將參數(shù)轉(zhuǎn)換為通配符即可獲得日志模板;PatCluster[18]通過(guò)統(tǒng)計(jì)單詞的頻率,提取頻率最大的單詞,對(duì)根節(jié)點(diǎn)生成的模板進(jìn)行細(xì)化,遞歸對(duì)節(jié)點(diǎn)中的所有元素形成模式節(jié)點(diǎn),并生成相應(yīng)的模板。第三種是基于啟發(fā)式的算法,這類算法基于開發(fā)人員的經(jīng)驗(yàn),通過(guò)分析日志的結(jié)構(gòu)、格式和內(nèi)容來(lái)提取有用的信息,并生成可讀性強(qiáng)的日志模板,但是對(duì)于大規(guī)模和復(fù)雜的數(shù)據(jù)集可能難以適用,并且需要持續(xù)的專業(yè)知識(shí)支持。例如,Drain[19]通過(guò)構(gòu)建一個(gè)樹狀結(jié)構(gòu),將相似的日志消息歸類在一起,從而實(shí)現(xiàn)日志的解析和模板生成;AEL[20]能夠自動(dòng)識(shí)別和標(biāo)記日志消息中的實(shí)體,從而將非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化的信息;PosParser[21]通過(guò)將FTS作為日志特征表示,利用兩階段檢查方法和后處理流程對(duì)日志進(jìn)行模板化處理;ML-Parser[22]利用前綴樹和基于LCS細(xì)粒度處理來(lái)達(dá)成更好的處理;CLDT[23]結(jié)合日志的常量令牌長(zhǎng)度特征,利用決策樹搜索、相似度計(jì)算與事件生成,更新決策樹從而生成模板;PrefixGraph[24]利用前綴圖并且盡量減少超參數(shù)的影響,最后自動(dòng)提取日志模板。

通常,不同系統(tǒng)會(huì)產(chǎn)生不同的日志模塊,當(dāng)開發(fā)人員編寫應(yīng)用程序、系統(tǒng)或其他軟件時(shí),他們會(huì)在代碼中插入生成日志的語(yǔ)句。如圖1所示,日志通常有以下組成部分:日志級(jí)別(例如:“I”“D”“W”等)、日志內(nèi)容(例如:“shouldBlockL-ocation running…”)、時(shí)間戳(例如:“16:13:40.280”)以及日志組件(例如:“PhoneInterfaceManager”)。而日志分析是指對(duì)生成的日志文件進(jìn)行系統(tǒng)性的解析、處理和分析,以提取有價(jià)值的信息和洞察。日志分析通常包括以下步驟:收集日志、預(yù)處理、數(shù)據(jù)清洗和過(guò)濾、數(shù)據(jù)解析和轉(zhuǎn)換、分析和挖掘、發(fā)現(xiàn)和診斷、報(bào)告和可視化。通過(guò)日志解析,可以幫助系統(tǒng)管理員及時(shí)發(fā)現(xiàn)和響應(yīng)安全事件,防止未經(jīng)授權(quán)的訪問(wèn)以及保護(hù)系統(tǒng)和數(shù)據(jù)的安全性。但是現(xiàn)有的大部分方法都存在著由于模板分區(qū)生成不精準(zhǔn)而導(dǎo)致的準(zhǔn)確率不足的問(wèn)題,這些問(wèn)題產(chǎn)生的原因在于沒有重視對(duì)已生成模板的二次處理,使得部分模板重復(fù)或相異模板的融合,降低了最終結(jié)果的準(zhǔn)確度。

針對(duì)以上不足,本文提出了一種新的解析方法FMLogs。為了評(píng)估FMLogs的有效性,在七個(gè)真實(shí)的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明FMLogs具有較好的準(zhǔn)確性。本文的貢獻(xiàn)總結(jié)如下:a)提出使用首令牌建立ID分組和基于令牌長(zhǎng)度的二次分組,避免重復(fù)搜索,提高了查找效率;

b)提出采用字符級(jí)頻率統(tǒng)計(jì)應(yīng)用于日志解析,以更好地計(jì)算相同長(zhǎng)度的模板之間的相似性;c)提出使用MinHash算法構(gòu)建倒排索引表,比較給定的兩個(gè)日志模板,分別獲取MinHash簽名,利用Jaccard相似度融合模板進(jìn)一步提高模板精確度。

1 方法

FMLogs模型如圖2所示。首先,該方法使用基于領(lǐng)域知識(shí)的正則表達(dá)式對(duì)原始日志進(jìn)行預(yù)處理,以達(dá)到最好的處理效果。其次,根據(jù)日志消息的首個(gè)令牌進(jìn)行ID分組,然后按照令牌個(gè)數(shù)將日志消息劃分為不重疊的小組。接著,計(jì)算每個(gè)分區(qū)中每個(gè)模板的頻率統(tǒng)計(jì)值,通過(guò)向量距離合并相似模板。最后,對(duì)不同長(zhǎng)度的相似模板進(jìn)行聚類,計(jì)算每個(gè)分區(qū)中每個(gè)模板的MinHash值,對(duì)于給定的兩個(gè)日志模板,分別獲取它們的MinHash簽名,比較兩個(gè)簽名之間相等的哈希值數(shù)量,并除以總共哈希值的數(shù)量,得到一個(gè)近似的相似度值,這種相似度可以用Jaccard相似度來(lái)近似衡量,根據(jù)與閾值相比較判斷相似模板是否需要融合。綜上所述,F(xiàn)MLogs包括預(yù)處理、令牌劃分、頻率統(tǒng)計(jì)和模板提取四個(gè)部分。

1.1 預(yù)處理

在當(dāng)前的步驟中,該方法通過(guò)應(yīng)用領(lǐng)域知識(shí),對(duì)原始日志進(jìn)行了預(yù)處理。一方面,日志通常由日志頭部和日志內(nèi)容兩個(gè)方面組成,而日志模板通常是由日志內(nèi)容提取而成,因此使用正則表達(dá)式去除日志頭部,留下日志內(nèi)容;另一方面,F(xiàn)MLogs在正則表達(dá)式處理的基礎(chǔ)上添加了相應(yīng)的專業(yè)領(lǐng)域知識(shí)進(jìn)行進(jìn)一步的處理,通過(guò)通配符〈*〉替換大部分變量,目的是為了后期工作更精準(zhǔn)的進(jìn)行。值得指出的是,盡管正則表達(dá)式在替換常見變量方面表現(xiàn)出色,但仍然有許多變量無(wú)法被處理,下一步將會(huì)在這方面進(jìn)行深入研究。

1.2 令牌劃分

在進(jìn)行模板歸納之前需要對(duì)日志進(jìn)行粗粒度的處理,盡管前文中提到的預(yù)處理方案極大地降低了模板生成的難度,但仍然需要進(jìn)行進(jìn)一步的處理。在現(xiàn)有方法中,如Vue4Logs中提出了對(duì)每個(gè)令牌建立倒排索引,通過(guò)對(duì)令牌進(jìn)行編號(hào)生成唯一ID標(biāo)識(shí),從而進(jìn)行相似性識(shí)別并建立模板。而相較于其他方法,F(xiàn)MLogs將根據(jù)模板首令牌對(duì)模板進(jìn)行第一次粗粒度分區(qū),然后在此基礎(chǔ)上根據(jù)長(zhǎng)度進(jìn)一步對(duì)所生成的模板進(jìn)行二次分區(qū)。方法中將相同長(zhǎng)度的模板放入同一組,在IPLoM中證明了相同長(zhǎng)度的日志消息更有可能具有相同的模板。例如,日志模板“BLOCK* ask〈*〉 to delete 〈*〉”包含6個(gè)token。可以直觀地得出結(jié)論,具有此模板的日志共享相同數(shù)量的令牌,例如“BLOCK* ask 10.250.18:500 to delete blk_-51”。但是,不同長(zhǎng)度的日志消息可能具有相同的模板,例如“BLOCK* ask 10.250.17:50010 to delete blk_-85817 blk_-65376955”,雖然包含7個(gè)token,但日志模板為“BLOCK* ask 〈*〉 to delete 〈*〉〈*〉”,很明顯這個(gè)日志模板可以與上一個(gè)日志模板相融合,這個(gè)問(wèn)題通過(guò)MinHush處理得到解決。

1.3 計(jì)算頻率統(tǒng)計(jì)值

為了判斷二級(jí)分組中的兩個(gè)日志模板是否應(yīng)該合并在一起,需要對(duì)模板作出一定的判斷,與PosParser通過(guò)令牌長(zhǎng)度和個(gè)數(shù)的對(duì)比不同,F(xiàn)MLogs首先設(shè)定e表示二級(jí)分組中不同的日志模板,例如,ei,j={e1,e2,e3,…,en}表示序號(hào)為i的一級(jí)分組下的序號(hào)為j的二級(jí)分組中的日志模板。此外,拼寫相似的單詞將被視為完全不同的單詞。然后將每個(gè)單詞表示為字符級(jí)頻率f(e)(圖3),計(jì)算每個(gè)分組中每個(gè)模板的f(e)值,并通過(guò)向量距離合并相似模板,這樣的判斷提高了模板的融合精準(zhǔn)度。

將特征的長(zhǎng)度固定為27,其中符號(hào)(其他)共用一個(gè)位置0,字母(大寫和小寫一起)放在剩下的26個(gè)位置。如圖4所示,假設(shè)W(e)=“aabcd-*#”,長(zhǎng)度為7,字母“a”在這個(gè)單詞中出現(xiàn)了2次,因此,可以計(jì)算出f(e)=11。

然后利用dist表示兩日志模板的相似程度,這里dist表示為日志e1,e2的字符級(jí)頻率與日志長(zhǎng)度之比的差值來(lái)計(jì)算,如果距離dist(e1,e2)小于閾值γ,則這兩個(gè)分支是相似的。距離dist(e1,e2)的公式如下:

dist(e1,e2)=‖f(e1)‖f(e1)‖-f(e2)‖f(e2)‖‖(1)

根據(jù)日志的f(e)值和日志的長(zhǎng)度比之差,設(shè)置閾值判斷在相同長(zhǎng)度時(shí)是否需要合并。例如,單詞“received(8.875)”和“receiving(10.222)”之間的差值為1.347,單詞“block”和“blocked(1.171 4)”之間的距離為0.275。隨著日志模板長(zhǎng)度的增加,差異也會(huì)變小。日志信息“Received block 〈*〉 of size 〈*〉 from /〈*〉(7.4545)”與“Receiving block 〈*〉 of size 〈*〉 from/〈*〉(7.852 9)”之間的距離僅為0.398 3,這比單個(gè)單詞之間的差異要小得多。

1.4 合并模板

通常情況下,研究者通過(guò)迭代集合內(nèi)的所有元素,以計(jì)算它們之間相同元素的數(shù)量,從而度量集合的相似性。然而,當(dāng)處理大規(guī)模數(shù)據(jù)集時(shí),特征空間的維度會(huì)急劇膨脹,這意味著計(jì)算每個(gè)元素之間的相似性將會(huì)變得非常耗時(shí)。為了應(yīng)對(duì)這種情況,模型中提出應(yīng)用MinHash模板合并方法,過(guò)程如圖5所示。該方法用于判斷不同長(zhǎng)度的模板是否需要進(jìn)行合并,并最終得到最優(yōu)的模板。通過(guò)這種方式,該方法能夠有效地減少特征空間的維度,從而加速相似性計(jì)算的過(guò)程。

MinHash是基于Jaccard指數(shù)相似度的一種算法:

Jaccard(A,B)=‖A∩B‖‖A∪B‖(2)

在Jaccard算法中,A和B為兩個(gè)相交的集合,Jaccard相似度定義為:在集合A和B的并集區(qū)域上落在公共區(qū)的元素,如圖6所示。

利用MinHash計(jì)算兩個(gè)日志模板的相似度,可以按照以下步驟進(jìn)行。首先對(duì)于每個(gè)日志模板,去除其中的無(wú)關(guān)信息,如時(shí)間戳、具體數(shù)值或字符串等,只保留日志模板中的關(guān)鍵詞或變量部分。隨后針對(duì)輸入日志建立矩陣,為了完整地檢索到日志的每一個(gè)字符,矩陣將覆蓋所有的日志。例如,日志e1:ad;e2:acd;e3:bde,建立對(duì)應(yīng)矩陣如圖7所示,當(dāng)然實(shí)際上的矩陣遠(yuǎn)遠(yuǎn)大于圖示。

然后對(duì)每個(gè)日志模板的集合進(jìn)行MinHash簽名的計(jì)算,這里運(yùn)用梅森旋轉(zhuǎn)算法隨機(jī)生成N-1組隨機(jī)排列,并依次將集合中的每個(gè)關(guān)鍵詞或變量應(yīng)用于這些排列,得到對(duì)應(yīng)的哈希值,取最小的哈希值作為該集合的MinHash簽名。最后,對(duì)于給定的兩個(gè)日志模板,分別獲取它們的MinHash簽名(圖7)。比較這兩個(gè)簽名之間相等的哈希值數(shù)量,并除以總共哈希值的數(shù)量,得到一個(gè)近似的相似值。該方法將相似值與事先設(shè)定好的閾值進(jìn)行比較來(lái)判斷兩模板是否相融。

2 實(shí)驗(yàn)

該模型在幾個(gè)具有代表性的基準(zhǔn)數(shù)據(jù)集[25]上進(jìn)行了評(píng)估了工作, 表1給出了這些數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)。

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

以下是部分?jǐn)?shù)據(jù)集解釋。

a)Hadoop:Hadoop日志數(shù)據(jù)集是由Hadoop集群生成的各種日志信息組成的集合,對(duì)于集群管理、性能優(yōu)化、故障排除和系統(tǒng)分析都具有重要意義。

b)HDFS:HDFS日志數(shù)據(jù)集記錄了Hadoop分布式文件系統(tǒng)中文件和元數(shù)據(jù)的操作、狀態(tài)變化等信息。這些日志對(duì)于監(jiān)視、故障排除、性能優(yōu)化和數(shù)據(jù)分析都具有重要意義,可以幫助維護(hù)HDFS集群的健康狀態(tài)和高效運(yùn)行。

c)Spark:Spark日志數(shù)據(jù)集是指由Apache Spark生成的日志信息的集合。其中包含了關(guān)于Spark應(yīng)用程序執(zhí)行過(guò)程、性能指標(biāo)、任務(wù)調(diào)度等方面的日志記錄。

d)OpenSSH:OpenSSH 是一個(gè)開源的 SSH(Secure Shell)工具套件,它允許加密的遠(yuǎn)程登錄、命令執(zhí)行等。當(dāng)使用 SSH 連接到服務(wù)器時(shí),OpenSSH 會(huì)在服務(wù)器上生成日志數(shù)據(jù)。

2.2 基線方法

FMLogs會(huì)選取九種不同的解析方法作為基線比較,在本節(jié)中將主要介紹其中四種,它們將作為該模型研究的參考點(diǎn)。這些方法包括 Sepll、Drain、Brain[26]和 MoLFI等。Sepll采用了一種基于最長(zhǎng)公共子序列的方法來(lái)解析系統(tǒng)事件日志。它具有動(dòng)態(tài)提取日志模式的能力,并以流方式維護(hù)已發(fā)現(xiàn)的消息類型。此外,Sepll還提出了一種自動(dòng)發(fā)現(xiàn)由拼寫識(shí)別的參數(shù)字段語(yǔ)義的方法。Drain方法具備實(shí)時(shí)分析日志的能力。為了提高解析速度,Drain使用了一個(gè)固定深度的解析樹,該樹對(duì)專門設(shè)計(jì)的解析規(guī)則進(jìn)行編碼。此外,Drain在異常檢測(cè)任務(wù)中,對(duì)日志分析有著優(yōu)秀的結(jié)果。Brain方法是一種新的穩(wěn)定日志解析方法,它根據(jù)最長(zhǎng)的公共模式創(chuàng)建初始組,并利用雙向樹對(duì)常量字進(jìn)行分層補(bǔ)全,有效地形成完整的日志模板。MoLFI方法將日志消息識(shí)別問(wèn)題重新定義為一個(gè)多目標(biāo)問(wèn)題,它使用一種進(jìn)化的方法來(lái)解決這個(gè)問(wèn)題,通過(guò)剪裁 NSGA-Ⅱ算法來(lái)搜索帕累托最優(yōu)消息模板集的解空間。

2.3 評(píng)價(jià)指標(biāo)

異常檢測(cè)作為一項(xiàng)二元任務(wù),該方法使用聚類算法的典型評(píng)價(jià)指標(biāo)F-measure[27,28]來(lái)評(píng)價(jià)日志解析方法的準(zhǔn)確性。準(zhǔn)確性的定義如下:

accuracy=TP+TNTP+FP+TN+FN(3)

precision和recall的定義如下:

precision=TPTP+FP(4)

recall=TPTP+FN(5)

F-measure是precision和recall的諧波平均值,定義如下:

F-measure=2×precision×recallprecision+recall(6)

其中:true positive(TP)表示若兩個(gè)日志消息具有相同的日志事件,則分配到同一日志組;false positive(FP)表示若兩個(gè)日志消息不具有相同的日志消息,但是分配到了同一日志組;false negative(FN)表示若兩個(gè)日志消息具有相同的日志消息,但是分配到了不同日志組;true negative(TN)表示若兩個(gè)日志消息具有不同的日志消息,而且分配到了不同日志組;precision表示實(shí)際異常在所有檢測(cè)到的異常中所占的比例;recall表示檢測(cè)到的真實(shí)異常的百分比。

2.4 實(shí)驗(yàn)設(shè)置

該算法在使用12 generation Core i7-12650H,6 GB RAM,RTX 3060 GDDR6 graphics card的Windows 11上運(yùn)行所有的實(shí)驗(yàn),使用Python 3.8實(shí)現(xiàn)日志解析。為了避免偏差,將每個(gè)實(shí)驗(yàn)進(jìn)行10次取其平均。

2.5 精準(zhǔn)性評(píng)價(jià)

該算法按照LogPai提供的7個(gè)日志解析器代碼的方式進(jìn)行了提取,并在七個(gè)不同的基準(zhǔn)數(shù)據(jù)集上評(píng)估了它們的性能,還與近年來(lái)優(yōu)秀的方法DIP[29]、LogPPT[30]和Brain相比較。同時(shí)使用相同的方法對(duì)FMLogs進(jìn)行了評(píng)估,得到了它在這九個(gè)數(shù)據(jù)集上的性能表現(xiàn)。表2匯總了這九個(gè)日志解析器在七個(gè)基準(zhǔn)數(shù)據(jù)集上的性能評(píng)估結(jié)果。

本節(jié)將深入分析和討論日志解析方法FMLogs的實(shí)驗(yàn)結(jié)果,以及與其他常見方法的比較。該算法將關(guān)注不同數(shù)據(jù)集上的accuracy表現(xiàn),并探討其含義和重要性。首先,從表中可以明顯看出FMLogs 在絕大部分的數(shù)據(jù)集上都表現(xiàn)出色,其accuracy分?jǐn)?shù)都接近達(dá)到1.000。表明了FMLogs在各種不同領(lǐng)域的日志解析任務(wù)中都具有出色的準(zhǔn)確性。在HealthApp數(shù)據(jù)集中,其余方法的accuracy普遍較低,而FMLogs則是達(dá)到了0.998。另一個(gè)值得注意的數(shù)據(jù)集是Proxifier,其中FMLogs在accuracy方面表現(xiàn)并不是那么出色,取得了0.515的分?jǐn)?shù),相比于其他方法的accuracy并不那么突出。經(jīng)過(guò)實(shí)驗(yàn)數(shù)據(jù)分析,由于Proxifier數(shù)據(jù)集日志模板數(shù)量較少且為長(zhǎng)尾分布,在融合模板時(shí)缺少某些模板,而導(dǎo)致屬于此模板的大量日志的檢測(cè)錯(cuò)誤,從而致使精準(zhǔn)度略微下降。但總體而言,F(xiàn)MLogs的平均accuracy為0.924,明顯高于絕大部分方法的平均accuracy。這表明FMLogs在不同數(shù)據(jù)集和領(lǐng)域的日志解析中都具有出色的性能。由FMLogs在七個(gè)基準(zhǔn)數(shù)據(jù)集的組精度箱線圖(圖8)可知,F(xiàn)MLogs的高準(zhǔn)確性為用戶提供了可靠的解析結(jié)果,有助于從日志數(shù)據(jù)中獲取準(zhǔn)確的信息和見解。

通過(guò)這些分析和討論,得出了關(guān)于日志解析方法FMLogs的實(shí)驗(yàn)結(jié)果的重要結(jié)論:FMLogs具有廣泛適用性,在多個(gè)數(shù)據(jù)集和領(lǐng)域的日志解析任務(wù)中都表現(xiàn)出色,具有高度準(zhǔn)確的解析能力;其次,F(xiàn)MLogs性能相比其余方法較好,F(xiàn)MLogs的平均accuracy明顯高于其他方法,用戶可以依靠FMLogs來(lái)準(zhǔn)確地解析日志數(shù)據(jù)。綜上所述,F(xiàn)MLogs是一個(gè)強(qiáng)大的日志解析方法,具有卓越的準(zhǔn)確性和適用性。然而,在實(shí)際應(yīng)用中,仍需考慮數(shù)據(jù)集和需求的特定情況,以選擇最適合的解析方法。

2.6 性能評(píng)價(jià)

本節(jié)將討論關(guān)于日志解析方法FMLogs的實(shí)驗(yàn)結(jié)果,并將其與其他常見的日志解析方法進(jìn)行比較。該算法將專注于評(píng)估這些方法的性能,特別是使用F1-score來(lái)衡量它們?cè)谌罩窘馕鋈蝿?wù)中的準(zhǔn)確性和效果。在實(shí)驗(yàn)中,使用了一組日志數(shù)據(jù)集,并對(duì)不同的日志解析方法進(jìn)行了評(píng)估,如表3所示。

首先可以看到,在這些日志解析方法中,DIP、Brain和FMLogs都取得了相當(dāng)高的F1-score,分別為0.996、0.998和0.983,這表明它們?cè)诮馕鋈罩緯r(shí)表現(xiàn)出色,幾乎完美地捕捉了所需信息。另一方面,LEK 和LogSig 的F1-score明顯較低,分別為0.796和0.814,這可能是因?yàn)樗鼈冊(cè)诮馕鋈罩緯r(shí)存在一些局限性,無(wú)法很好地應(yīng)對(duì)復(fù)雜的日志數(shù)據(jù)。Drain和 AEL方法表現(xiàn)良好,分別達(dá)到了0.954和 0.945的F1-score,這表明它們?cè)谌罩窘馕鋈蝿?wù)中具有很高的準(zhǔn)確性。最后,LenMa、Spell、MoLFI和LogPPT方法的F1-score分別為0.871、0.933、0.858和0.970,它們?cè)谛阅苌媳憩F(xiàn)良好,但相對(duì)于DIP、Brain和FMLogs方法,仍有改進(jìn)的空間。綜合來(lái)看,根據(jù)實(shí)驗(yàn)結(jié)果,日志解析方法FMLogs表現(xiàn)出色,達(dá)到了0.983的F1-score,幾乎都能滿足日志解析任務(wù)的需求。這意味著FMLogs是一個(gè)較為優(yōu)秀的工具,適用于各種日志數(shù)據(jù)集和應(yīng)用場(chǎng)景。但也需要注意,不同的數(shù)據(jù)集和需求可能導(dǎo)致性能不同,因此在實(shí)際應(yīng)用中需要進(jìn)一步評(píng)估和調(diào)整??偟膩?lái)說(shuō),通過(guò)這些實(shí)驗(yàn)結(jié)果,得出了關(guān)于不同日志解析方法性能的重要見解,這有助于研究人員和從業(yè)者選擇最適合其特定需求的解析方法。

2.7 閾值參數(shù)分析

不同的閾值對(duì)于模板生成的精準(zhǔn)度和F1-score有著一定的影響,如圖9所示,可以得出一些結(jié)論。通過(guò)比較不同數(shù)據(jù)集在不同閾值下的性能表現(xiàn),可以發(fā)現(xiàn)當(dāng)閾值s大于0.90時(shí),模板匹配的性能變得更加穩(wěn)定。相反,當(dāng)閾值s位于[0.7,0.85],F(xiàn)MLogs的性能較差,可能是由合并不同的模板導(dǎo)致的。這些發(fā)現(xiàn)對(duì)于數(shù)據(jù)集的分析和處理具有重要意義,可以根據(jù)不同的數(shù)據(jù)集選擇合適的閾值來(lái)優(yōu)化模板匹配的性能。例如,在處理Hadoop數(shù)據(jù)集時(shí),選擇較高的閾值(如s=0.98)可以獲得更準(zhǔn)確的結(jié)果,而在處理Spark數(shù)據(jù)集時(shí),較高的閾值反而效果達(dá)不到最好。這種個(gè)性化的參數(shù)選擇可以提高整體系統(tǒng)的性能和效率。另外,還注意到在HPC數(shù)據(jù)集上,閾值s從0.8一直增加到0.99,F(xiàn)1-score分?jǐn)?shù)和精準(zhǔn)度也在逐步提高。這表明在某些情況下,進(jìn)一步增加閾值可能會(huì)帶來(lái)更好的性能。然而,對(duì)于其他數(shù)據(jù)集,性能在某個(gè)特定的閾值達(dá)到最佳,并且進(jìn)一步增加閾值可能導(dǎo)致性能下降。

表4具體給出了在不同閾值下模板數(shù)量的變化程度,在確定最佳參數(shù)后,可以將其應(yīng)用于原始數(shù)據(jù)集以實(shí)現(xiàn)高效的模板匹配;同時(shí)通過(guò)圖9對(duì)比可知,并不是模板數(shù)量越接近準(zhǔn)確數(shù)量就越好,接近的同時(shí)可能會(huì)使相近但并不相同的日志劃分到同一模板,從而造成精準(zhǔn)度的下降。由此,通過(guò)對(duì)多個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)和分析,得出了關(guān)于閾值選擇對(duì)模板匹配性能的影響的一些重要結(jié)論,這些結(jié)論為實(shí)驗(yàn)提供了指導(dǎo),以優(yōu)化數(shù)據(jù)集處理過(guò)程中的模板匹配任務(wù)。同時(shí),該方法還展示了如何根據(jù)不同數(shù)據(jù)集的特點(diǎn)選擇合適的閾值,從而實(shí)現(xiàn)更好的性能和效果。

3 結(jié)束語(yǔ)

日志解析是實(shí)現(xiàn)日志異常檢測(cè)的關(guān)鍵一步,為了克服現(xiàn)有解析器的局限性,提出了一種基于模板匹配的日志解析方法(FMLogs)。采用字符集頻率統(tǒng)計(jì)和最小哈希算法對(duì)模板進(jìn)行合并。在七個(gè)真實(shí)的基準(zhǔn)日志數(shù)據(jù)集上評(píng)估和比較FMLogs與AEL、LEK、LogSig、LenMa、Spell、Drain、MoLFI和Brain的性能。評(píng)估結(jié)果表明,F(xiàn)MLogs在解析日志的同時(shí)具有較高的準(zhǔn)確性和效率,并保證了穩(wěn)定的性能。未來(lái),在基于部署FMLogs的生產(chǎn)環(huán)境中,筆者會(huì)進(jìn)一步評(píng)估其實(shí)踐中的可擴(kuò)展性和有效性,并專注于將FMLogs的結(jié)果用于其他自動(dòng)日志分析,如異常檢測(cè)、故障診斷。

參考文獻(xiàn):

[1]He Shilin, He Pinjia, Chen Zhuangbin, et al. A survey on automated log analysis for reliability engineering[J]. ACM Computing Surveys, 2021, 54(6): 1-37.

[2]Shang Weiyi . Log engineering: towards systematic log mining to support the development of ultra-large scale software systems[D]. Canada: Queen’s University, 2014.

[3]Le V H, Zhang Hongyu. Log-based anomaly detection without log parsing[C]//Proc of the 36th IEEE/ACM International Conference on Automated Software Engineering. Piscataway,NJ:IEEE Press, 2021: 492-504.

[4]Mi Haibo, Wang Huaimin, Zhou yangfan, et al. Toward fine-grained, unsupervised, scalable performance diagnoseS+AFHR8/8o8ckvzAocxw==sis for production cloud computing systems[J].IEEE Trans on Parallel and Distributed Systems, 2013, 24(6): 1245-1255.

[5]Ramati R, Reback G. A beginner’s guide to logstash grok[EB/OL]. https://logz.io/blog/logstash-grok.

[6]Vaarandi R, Blumbergs B, al瘙塂kan E. Simple event correlator best practices for creating scalable configurations[C]//Proc of IEEE International Multi-Disciplinary Conference on Cognitive Methods in Situation Awareness and Decision. Piscataway,NJ:IEEE Press, 2015: 96-100.

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

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

[9]Du Min, Li Feifei. Spell: streaming parsing of system event logs[C]//Proc of the 16th IEEE International Conference on Data Mi-ning.Piscataway,NJ:IEEE Press, 2016:859-864.

[10]Duan Xiaoyu, Ying Shi, Cheng Hailong, et al. OILog: an online incremental log keyword extraction approach based on MDP-LSTM neural network[J]. Information Systems, 2021, 95:101618.

[11]Tang Liang, Li Tao, Perng C S. LogSig: generating system events from raw textual logs[C]//Proc of the 20th ACM International Conference on Information and Knowledge Management. New York:ACM Press, 2011:785-794.

[12]Jiang ZhenMing, Hassan A E, Flora P, et al. Abstracting execution logs to execution events for enterprise applications(short paper)[C]//Proc of the 8th International Conference on Quality Software.2008: 181-186.

[13]李修遠(yuǎn),朱國(guó)勝,孫文和,等. WT-Parser:一種有效的在線日志解析方法[J].長(zhǎng)江信息通信, 2023,36(5): 145-149.(Li Xiuyuan, Zhu Guosheng, Sun Wenhe, et al. WT-Parser: an effective online log parsing method[J].Changjiang Information & Communication, 2023,36(5):145-149.)

[14]Boyagane I, Katulanda O, Ranathunga S,et al. Vue4logs-automatic structuring of heterogeneous computer system logs[EB/OL]. (2022-02-14). https://arxiv.org/abs/2202.07504.

[15]Xiao Tong, Quan Zhe, Wang Zhijie, et al. LPV: a log parser based on vectorization for offline and online log parsing[C]//Proc of IEEE International Conference on Data Mining. Piscataway,NJ:IEEE Press, 2020:1346-1351.

[16]Zhang Shenglin, Meng Weibin, Bu Jiahao, et al. Syslog processing for switch failure diagnosis and prediction in datacenter networks[C]//Proc of the 25th IEEE/ACM International Symposium on Qua-lity of Service.2017: 1-10.

[17]Dai Hetong, Li Heng, Shang Weiyi, et al. Logram: efficient log parsing using n-gram dictionaries[EB/OL].(2020-01-07)[2023-12-04]. https://arxiv.org/abs/2001.03038.

[18]Bai Yu, Chi Yongwei, Zhao Danhao. PatCluster: a top-down log parsing method based on frequent words[J]. IEEE Access, 2023, 11:8275-8282.

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

[20]Makanju A A, Zincir-Heywood A N, Milios E 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.

[21]蔣金釗,傅媛媛,徐建.基于詞性標(biāo)注的啟發(fā)式在線日志解析方法[J].計(jì)算機(jī)應(yīng)用研究, 2024,41(1): 217-221. (Jiang Jinzhao, Fu Yuanyuan, Xu Jian. Heuristic online log parsing method based on part-of-speech tagging[J].Application Research of Computers, 2024,41(1): 217-221.)

[22]蒲嘉宸,王鵬,汪衛(wèi). ML-Parser:一種高效的在線日志解析方法[J].計(jì)算機(jī)應(yīng)用與軟件, 2022,39(1):45-52. (Pu Jiachen, Wang Peng, Wang Wei. ML-Parser: an efficient online log parsing method[J]. Computer Applications and Software, 2022,39(1):45-52.)

[23]葛志輝,邱晨,李陶深,等.一種提升細(xì)粒度日志解析準(zhǔn)確度的方法[J].小型微型計(jì)算機(jī)系統(tǒng), 2021,42(10): 2140-2144. (Ge Zhihui, Qiu Chen, Li Taoshen, et al. A method to improve the accuracy of fine-grained log analysis[J].Journal of Chinese Computer Systems, 2019,42(10):2140-2144.)

[24]Chu Guojun, Wang Jingyu, Qi Qi, et al. Prefix-Graph: a versatile log parsing approach merging prefix tree with probabilistic graph[C]//Proc of the 37th IEEE International Conference on Data Engineering. Piscataway,NJ:IEEE Press, 2021.

[25]Zhao Xiaoqing, Jiang Zhongyuan, Ma Jianfeng. A survey of deep anomaly detection for system logs[C]//Proc of IEEE International Joint Conference on Neural Networks. Piscataway,NJ:IEEE Press, 2022:1-8.

[26]Yu Siyu, He Pinjia, Chen Ningjiang, et al. Brain: log parsing with bidirectional parallel tree[J].IEEE Trans on Services Computing, 2023,16(5): 3224-3237.

[27]Manning C, Raghavan P, Schutze H. Introduction to information retrieval[M]. Cambridge: Cambridge University Press, 2008.

[28]Evaluation of clustering[EB/OL]. (2009-04-07)[2023-11-20] http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html.

[29]Daniel P, Xie Mengjun. DIP: a log parser based on “disagreement index token” conditions[C]//Proc of ACM Southeast Conference. New York:ACM Press, 2022: 113-122.

[30]Le V H, Zhang Hongyu. Log parsing with prompt-based few-shot learning[C]/Proc of the 45th IEEE/ACM International Conference on Software Engineering. 2023:2438-2449.

仙游县| 双辽市| 当雄县| 都安| 武威市| 洛隆县| 宜章县| 平利县| 林甸县| 南丹县| 新宾| 原平市| 唐河县| 信宜市| 青神县| 长顺县| 海晏县| 汤原县| 长海县| 兴和县| 北票市| 兴安盟| 海淀区| 阿拉善右旗| 柘城县| 灵丘县| 浦县| 丹东市| 平塘县| 灵宝市| 高雄市| 宁远县| 奇台县| 怀集县| 富平县| 永济市| 安仁县| 陇南市| 新龙县| 阳西县| 青岛市|