• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2024-08-15 00:00:00章一磊張廣澤龔聲望苑淑晴
      計算機應(yīng)用研究 2024年8期

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

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

      中圖分類號:TP391 文獻標志碼:A

      文章編號: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 引言

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

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

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

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

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

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

      1 方法

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

      1.1 預處理

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

      1.2 令牌劃分

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

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

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

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

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

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

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

      1.4 合并模板

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

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

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

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

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

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

      2 實驗

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

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

      以下是部分數(shù)據(jù)集解釋。

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

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

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

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

      2.2 基線方法

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

      2.3 評價指標

      異常檢測作為一項二元任務(wù),該方法使用聚類算法的典型評價指標F-measure[27,28]來評價日志解析方法的準確性。準確性的定義如下:

      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)表示若兩個日志消息具有相同的日志事件,則分配到同一日志組;false positive(FP)表示若兩個日志消息不具有相同的日志消息,但是分配到了同一日志組;false negative(FN)表示若兩個日志消息具有相同的日志消息,但是分配到了不同日志組;true negative(TN)表示若兩個日志消息具有不同的日志消息,而且分配到了不同日志組;precision表示實際異常在所有檢測到的異常中所占的比例;recall表示檢測到的真實異常的百分比。

      2.4 實驗設(shè)置

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

      2.5 精準性評價

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

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

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

      2.6 性能評價

      本節(jié)將討論關(guān)于日志解析方法FMLogs的實驗結(jié)果,并將其與其他常見的日志解析方法進行比較。該算法將專注于評估這些方法的性能,特別是使用F1-score來衡量它們在日志解析任務(wù)中的準確性和效果。在實驗中,使用了一組日志數(shù)據(jù)集,并對不同的日志解析方法進行了評估,如表3所示。

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

      2.7 閾值參數(shù)分析

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

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

      3 結(jié)束語

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

      參考文獻:

      [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]李修遠,朱國勝,孫文和,等. WT-Parser:一種有效的在線日志解析方法[J].長江信息通信, 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]蔣金釗,傅媛媛,徐建.基于詞性標注的啟發(fā)式在線日志解析方法[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].計算機應(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]葛志輝,邱晨,李陶深,等.一種提升細粒度日志解析準確度的方法[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.

      称多县| 长泰县| 丰城市| 大兴区| 曲阳县| 永康市| 永顺县| 陵水| 曲周县| 朝阳县| 高邑县| 武夷山市| 民县| 荔波县| 全椒县| 双牌县| 贵南县| 阿图什市| 九龙城区| 安西县| 拉萨市| 桑日县| 富源县| 阳朔县| 冀州市| 曲阳县| 桂阳县| 揭西县| 康马县| 泸溪县| 永福县| 盈江县| 昆山市| 泸水县| 鄂伦春自治旗| 太原市| 南岸区| 浏阳市| 大余县| 镇坪县| 东宁县|