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

?

高性能計(jì)算環(huán)境中日志模式提煉方法的研究

2022-10-16 05:50王曉東趙一寧肖海力王小寧遲學(xué)斌
計(jì)算機(jī)與生活 2022年10期
關(guān)鍵詞:計(jì)算環(huán)境日志高性能

王曉東,趙一寧,肖海力,王小寧,遲學(xué)斌

1.中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京100190

2.中國(guó)科學(xué)院大學(xué),北京100049

中國(guó)國(guó)家高性能計(jì)算環(huán)境是由國(guó)內(nèi)眾多超算中心和高校的計(jì)算集群組成的國(guó)家級(jí)大型高性能計(jì)算環(huán)境,采用中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心自主研發(fā)的網(wǎng)格環(huán)境中間件SCE聚合了大量的通用計(jì)算資源,為全國(guó)眾多高校和研究機(jī)構(gòu)的用戶提供了優(yōu)質(zhì)的計(jì)算服務(wù)。為了保障環(huán)境的穩(wěn)定運(yùn)行,搜集環(huán)境中產(chǎn)生的日志并且實(shí)時(shí)分析解決環(huán)境中出現(xiàn)的異常是非常必要的。然而隨著環(huán)境中計(jì)算資源和用戶的增多,各節(jié)點(diǎn)產(chǎn)生的日志也越來越多,使用傳統(tǒng)的人工手動(dòng)分析大量日志的方法已經(jīng)成為了非常耗時(shí)耗力并且容易出錯(cuò)的方法,因此如何進(jìn)行自動(dòng)化日志分析對(duì)于環(huán)境的正常運(yùn)行和安全保障具有極其重要的意義。

為了解決日志自動(dòng)化分析的問題,近年來許多研究人員都采用各種數(shù)據(jù)挖掘的方法對(duì)日志進(jìn)行分析并診斷異常。比如Xu等就通過主成分分析法對(duì)控制臺(tái)日志數(shù)據(jù)進(jìn)行異常診斷,Lou等通過不變量挖掘方法對(duì)在系統(tǒng)中的日志進(jìn)行異常診斷,Lin等通過聚類方法從在線服務(wù)器中的日志中尋找異常,Du等通過深度學(xué)習(xí)的方法從系統(tǒng)日志中發(fā)現(xiàn)并診斷異常。上述這些方法都在自動(dòng)化日志分析上取得了比較好的效果。但是,所有自動(dòng)化分析時(shí)的原始日志消息通常是非結(jié)構(gòu)化的,這是因?yàn)槌绦蛟趯?shí)際開發(fā)時(shí)是靈活多變的,開發(fā)人員習(xí)慣使用自由文本記錄日志消息。而為了能夠自動(dòng)挖掘非結(jié)構(gòu)化日志,第一步需要解決的問題就是日志模式提煉,通過該步驟將非結(jié)構(gòu)化的原始日志消息轉(zhuǎn)換為結(jié)構(gòu)化日志消息后才能在后續(xù)使用不同數(shù)據(jù)挖掘算法來自動(dòng)化分析各種異常。

具體來說,日志模式提煉的目標(biāo)是將一條日志中非結(jié)構(gòu)化的部分分類并將同一類模式的日志拆分成常量部分和變量部分。比如高性能計(jì)算集群中Linux 的一條系統(tǒng)日志如下:

Sep,30,03:50:55,client51,sshd,32019,Invalid user UserName from 192.168.0.1

如果按照逗號(hào)分開,可以看出這條日志的前三個(gè)字段代表時(shí)間,中間三個(gè)字段分別代表主機(jī)名、守護(hù)進(jìn)程名稱和PID號(hào)。這些字段屬于日志的結(jié)構(gòu)化部分,使用簡(jiǎn)單的正則表達(dá)式就能提取出來,而日志模式提煉主要關(guān)注的是最后一個(gè)字段的內(nèi)容,通過日志模式提煉算法需要把最后一個(gè)字段的內(nèi)容抽象成:

其中,Invalid user from 是日志的常量部分,通配符<*>代表日志的變量部分。在對(duì)高性能計(jì)算環(huán)境日志進(jìn)行模式提煉的研究上,Zhao等提出了算法Match,該算法通過單詞匹配率來確定兩條日志的相似程度,并以此來確定日志所屬的模式,同時(shí)還提出了樹匹配的算法來實(shí)現(xiàn)日志模式提煉算法。之后在文獻(xiàn)[7]中描述了算法Lmatch(longest common subsequence match algorithm),該算法改進(jìn)了單詞匹配率算法,即將日志中的每一個(gè)單詞作為一個(gè)基本單元,然后通過兩條日志的最長(zhǎng)公共子序列來計(jì)算單詞的匹配數(shù)目,最后與兩條日志的總單詞數(shù)進(jìn)行比較來計(jì)算單詞匹配率。雖然以上方法取得了比較好的效果,然而其中仍然有需要改進(jìn)的地方:

首先,在使用最長(zhǎng)公共子序列進(jìn)行日志模式提煉時(shí),僅僅能夠得到日志模式,并沒有進(jìn)一步將模式抽象成常量部分和變量部分,將日志拆分成常量部分和變量部分有以下優(yōu)勢(shì):當(dāng)使用日志進(jìn)行下游任務(wù)的分析時(shí),日志模板的變量部分可以和實(shí)時(shí)日志進(jìn)行匹配,通過將匹配到的變量提取出來可以得到相同變量的日志在事件上的關(guān)聯(lián)關(guān)系,對(duì)后續(xù)進(jìn)行日志分析具有重要作用。其次,在日志模式的儲(chǔ)存結(jié)構(gòu)上,原文使用基于首個(gè)單詞的散列表進(jìn)行存儲(chǔ),由于日志復(fù)雜多變,可能出現(xiàn)首個(gè)單詞種類過多的問題,同時(shí)當(dāng)首個(gè)單詞屬于日志變量部分的情況下只能通過人工處理。最后,日志模式提煉算法的調(diào)參方式不夠明確。

基于以上問題,本文詳細(xì)描述了日志模式提煉算法LDmatch(longest common subsequence dictionary match algorithm)。該算法通過確定兩條待比較日志的最長(zhǎng)公共子序列作為常量部分,待比較日志的其余部分作為變量部分來確定一條日志的模式,同時(shí)該方法還支持實(shí)時(shí)增量的在線運(yùn)行并提取日志模式。在日志模式的存儲(chǔ)結(jié)構(gòu)上,使用日志的首字母作為散列函數(shù)的輸入,從而約束了散列函數(shù)字典的長(zhǎng)度上限。在整個(gè)算法的參數(shù)優(yōu)化上,使用大量的實(shí)驗(yàn)進(jìn)行調(diào)整,最終為多種不同類別的日志模式提煉確定了最佳參數(shù)??傮w來說,本文有以下兩個(gè)貢獻(xiàn)點(diǎn):

(1)進(jìn)一步優(yōu)化了國(guó)家高性能計(jì)算環(huán)境中使用的日志模式提煉算法,為后續(xù)自動(dòng)化異常檢測(cè)分析提供了支持;

(2)該日志模式提煉算法在開源日志數(shù)據(jù)集以及國(guó)家高性能計(jì)算環(huán)境中產(chǎn)生的真實(shí)日志數(shù)據(jù)集上進(jìn)行多維度的實(shí)驗(yàn)分析,實(shí)驗(yàn)結(jié)果證明了該方法的優(yōu)勢(shì)。

1 相關(guān)工作

本章簡(jiǎn)要介紹日志模式匹配算法近年來在不同方向的研究進(jìn)展。

1.1 基于頻繁模式的日志模式提煉算法

Vaarandi在對(duì)日志文件數(shù)據(jù)進(jìn)行模式分類時(shí)使用了一個(gè)名叫SLCT(simple logfile clustering tool)的聚類算法,該聚類算法是基于Apriori 頻繁項(xiàng)集的算法,因此需要使用者手動(dòng)輸入調(diào)整支持閾值。SLCT會(huì)對(duì)日志進(jìn)行兩次整體的掃描:第一次對(duì)日志中所有的單詞進(jìn)行詞頻的統(tǒng)計(jì),在第二次掃描時(shí)根據(jù)第一次掃描時(shí)得到的詞頻建立起日志的模式集群。經(jīng)過兩次掃描后,該算法最終根據(jù)建立的集群為每一個(gè)集群生成一個(gè)日志模板。Nagappan 等人也提出了一個(gè)基于頻繁模式挖掘的日志模式提煉方法LFA(abstraction of log lines),該算法與SLCT 不同的地方在于考慮了每條日志消息中的單詞的頻率分布,而不是對(duì)整個(gè)日志數(shù)據(jù)進(jìn)行罕見日志消息的解析。

1.2 基于聚類的日志模式提煉算法

Fu 等人使用LKE(log keys)方法對(duì)日志進(jìn)行模式提煉,該方法結(jié)合使用了聚類算法和啟發(fā)式規(guī)則法,一共有三個(gè)步驟:第一步是日志聚類,聚類時(shí)使用了自定義加權(quán)編輯距離作為衡量?jī)蓷l日志之間的距離度量,然后使用了層次聚類算法對(duì)原始日志消息進(jìn)行聚類;第二步是聚類結(jié)果拆分,執(zhí)行基于啟發(fā)式規(guī)則法來進(jìn)一步拆分聚類結(jié)果;第三步是日志模板生成,該步驟為每個(gè)聚類的群集生成日志模板,類似1.1 節(jié)中所描述的SLCT 算法的最后一步。Tang 等人提出了LogSig 算法來提煉日志模式,該算法的工作流程也可分為三個(gè)步驟:第一步生成單詞對(duì),將每個(gè)日志消息轉(zhuǎn)換為一組單詞對(duì),然后對(duì)該單詞及其位置信息進(jìn)行編碼。第二步進(jìn)行了日志聚類,該聚類算法基于單詞對(duì),為每個(gè)日志消息計(jì)算一個(gè)潛在的值,從而確定日志消息可能屬于的集群。經(jīng)過多次迭代后,最終就可以得到聚類之后的日志消息集群。第三步是日志模板的生成,即利用每個(gè)日志集群中的一系列日志消息為每個(gè)集群都生成一個(gè)日志模板。Mizutani提出SHISO(scalable handler for incremental system log)算法,通過構(gòu)造一個(gè)結(jié)構(gòu)化的樹結(jié)構(gòu)得到日志模板,該算法屬于在線算法,并且不需要任何先驗(yàn)知識(shí)就能得到結(jié)果。

1.3 基于其他方法的日志模式提煉算法

Messaoudi 等人提出了MoLFI(multi-objective log message format identification)算法,該算法將日志解析建模為一個(gè)多目標(biāo)優(yōu)化問題,并用進(jìn)化算法進(jìn)行日志模式生成。Dai等人提出了一種自動(dòng)的日志解析方法Logram,該算法利用n-gram 字典來實(shí)現(xiàn)日志解析。Nedelkoski 等人將日志模式分類任務(wù)應(yīng)用于深度學(xué)習(xí)中的掩碼語言模型(masked language model,MLM)中,在日志解析的過程中,該模型以向量嵌入的形式從日志中提取關(guān)鍵信息,通過反向傳播訓(xùn)練后,最終模型可以輸出日志模板。Zhao 等人提出了模式提煉算法Match 來確定兩條日志的相似程度,該算法基于兩條日志的單詞匹配率。同上述提到的其他算法相比,該算法的最大優(yōu)勢(shì)是可以實(shí)時(shí)計(jì)算,也不需要預(yù)先提煉模式,因此該算法利于線上的日志模式提煉分析。之后該作者又在文獻(xiàn)[7]中對(duì)Match 算法進(jìn)行改進(jìn)而得到Lmatch 算法,該算法將兩條日志固定位置的一對(duì)一匹配改進(jìn)成根據(jù)最長(zhǎng)公共子序列進(jìn)行匹配,這樣做可以有效解決相同模式的兩條日志在常量部分位置不同的問題。

大多數(shù)基于頻繁模式的算法和基于聚類的日志模式提取算法都是離線算法,因?yàn)檫@些算法需要在第一步掃描所有的歷史日志,而本文方法可以在線處理日志解析,更適合生產(chǎn)實(shí)踐。另一方面,基于深度學(xué)習(xí)的方法雖然能夠取得較好的精度,但是運(yùn)行時(shí)參數(shù)過多,對(duì)于實(shí)時(shí)的日志分析來說過于繁重,因此不適合高性能計(jì)算環(huán)境中日志模式提煉的場(chǎng)景。

2 日志模式提煉算法

本章首先介紹國(guó)家高性能計(jì)算環(huán)境中的日志分析框架以及在日志解析時(shí)需要解決的關(guān)鍵性問題,然后針對(duì)該問題,詳細(xì)介紹本文提出的日志模式提煉算法和相關(guān)改進(jìn)工作。

2.1 問題背景描述

國(guó)家高性能計(jì)算環(huán)境的網(wǎng)格環(huán)境日志分析框架(log analysing framework in grid environment,LARGE)是針對(duì)中科院超級(jí)計(jì)算環(huán)境中各類日志進(jìn)行分析處理的框架式結(jié)構(gòu),它定義了框架內(nèi)各模塊的工作內(nèi)容以及整個(gè)日志分析流程的數(shù)據(jù)傳輸流向和處理步驟。其基本結(jié)構(gòu)和工作流程圖如圖1 所示。

圖1 LARGE 系統(tǒng)結(jié)構(gòu)Fig.1 System structure of LARGE

從圖1 中可以看出,國(guó)家高性能計(jì)算環(huán)境中的日志搜集到需要進(jìn)行分析的日志主要包括SCE 日志和系統(tǒng)日志。SCE 日志是由SCE 網(wǎng)格環(huán)境中間件生成的事件日志,該類日志格式固定,因此非常有利于機(jī)器讀取并分類。而系統(tǒng)日志格式就比較復(fù)雜,比如引言中的日志示例??梢钥闯鲈撊罩镜那叭齻€(gè)字段很容易得到,然而最后一個(gè)字段才是需要重點(diǎn)關(guān)注的信息,該字段的內(nèi)容雖然是人類可以閱讀的英文句子,然而這種人類容易理解的句子屬于非結(jié)構(gòu)化的數(shù)據(jù),這種數(shù)據(jù)反而不利于機(jī)器識(shí)別,因此日志模式提煉的主要關(guān)注點(diǎn)是日志的非結(jié)構(gòu)化部分。如何使用合理的模式匹配算法對(duì)日志該部分的信息進(jìn)行分類是國(guó)家高性能計(jì)算環(huán)境日志分析首先要解決的問題。另一方面,日志模式提煉算法總體來說分為線上方法和線下方法。線下方法通常需要有歷史的日志數(shù)據(jù),然后經(jīng)過一輪遍歷對(duì)歷史日志進(jìn)行聚類,之后為每一類日志提取出一個(gè)模板。這種方法雖然直觀,但是在實(shí)際應(yīng)用時(shí)對(duì)于一條新的日志如果不滿足已知類別的情況就沒法實(shí)時(shí)形成新的類別。因此實(shí)際應(yīng)用的時(shí)候還是線上日志分類方法比較有價(jià)值。國(guó)家高性能計(jì)算環(huán)境中日志的類別數(shù)量無法提前確定,因此需要使用線上方法進(jìn)行分類。為了使線上日志分類算法可以在新日志出現(xiàn)時(shí)更新已有模板,同時(shí)還能在新日志進(jìn)行匹配時(shí)效率有所提升,該算法還需要對(duì)模板的實(shí)時(shí)更新方法以及日志模板倉(cāng)庫(kù)的存儲(chǔ)方式進(jìn)行優(yōu)化。面對(duì)以上問題,后續(xù)詳細(xì)介紹線上日志分類算法以及相關(guān)優(yōu)化方案。

2.2 日志模式提煉算法與線上日志分析流程

對(duì)于如何確定兩條日志是否屬于同一個(gè)模式的問題,最直觀的方法就是確定兩條日志匹配的單詞是否足夠多,因此本文使用單詞匹配率來確定日志的模式。該算法將日志中的每一個(gè)單詞作為一個(gè)基本單元,然后對(duì)其進(jìn)行匹配。具體來說,假設(shè)待匹配的兩條日志分別為′和,其包含的單詞數(shù)量分別為和,則兩條日志的單詞匹配率的計(jì)算公式如下:

其中,|(,′)|代表兩條日志對(duì)應(yīng)位置一對(duì)一匹配單詞數(shù)目。然而該算法無法處理兩條日志的常量部分位置不同的問題。因此改進(jìn)的單詞匹配率的計(jì)算公式如下:

其中,|(,′)|代表兩條日志使用最長(zhǎng)公共子序列進(jìn)行匹配時(shí)匹配到的單詞數(shù)目。比如以下三條日志:

分別記作a、b、c,并且假設(shè)閾值為0.45,則其中a和b這兩條日志的前兩個(gè)字符和第四個(gè)字符相匹配,這兩條日志都有五個(gè)字符,因此根據(jù)式(1),可以計(jì)算得到(,)=3×2/(5+5)=0.6>0.45,說明a、b為同一種模式的日志,同理可以計(jì)算出a和c這兩條日志的單詞匹配率(,)=0.18 <0.45,說明a、c為不同模式的日志。

有了單詞匹配率的定義,就可以得到整個(gè)日志模式提煉模塊的處理流程,具體步驟如下:

(1)讀入一條新的日志,然后與日志模式倉(cāng)庫(kù)中已有的日志模式,,…,l分別計(jì)算出單詞匹配率(,),(,),…,(,l);

(2)從這些計(jì)算出來的結(jié)果中找到最大的單詞匹配率=max{(,),(,),…,(,l)}以及計(jì)算該單詞匹配率對(duì)應(yīng)的日志模式l

(3)將與提前設(shè)定好的閾值進(jìn)行對(duì)比;

(4)如果>,則將該日志與對(duì)應(yīng)日志模式l進(jìn)行模板提取并更新該日志模式;

(5)如果<,則使用該條日志生成新的日志模式l并加入到日志模式倉(cāng)庫(kù)中。

整個(gè)日志模式提煉模塊的處理流程圖如圖2 所示,其中閾值在3.3 節(jié)的實(shí)驗(yàn)中確定,日志模板提取算法將在2.3 節(jié)中詳細(xì)介紹。

圖2 日志模式提煉算法流程圖Fig.2 Flowchart of log pattern extracting algorithms

2.3 日志模板提取以及日志模式倉(cāng)庫(kù)的優(yōu)化

上一節(jié)已經(jīng)構(gòu)建了日志模式提煉算法的整體流程,本節(jié)將進(jìn)一步改進(jìn)本文算法,使得該算法可以實(shí)時(shí)提煉并更新日志的模式。除此之外,日志倉(cāng)庫(kù)的存儲(chǔ)類型也在本節(jié)中改進(jìn)以提高整個(gè)算法的準(zhǔn)確度和效率,最終構(gòu)建出完善的LDmatch 算法。

為了滿足基于最長(zhǎng)公共子序列的日志模式提煉算法的實(shí)時(shí)性,生成的模式必須滿足一些條件,即可以自動(dòng)將兩條日志的匹配部分作為最終模板的常量部分,非匹配部分作為最終模板的變量部分。要想滿足這一點(diǎn),需要首先計(jì)算出兩條待匹配日志的最長(zhǎng)公共子序列,然后進(jìn)行后續(xù)操作。具體來說,日志模式提煉算法流程如算法1。

1 計(jì)算日志模板算法

根據(jù)算法1 所示,可以看出當(dāng)一條日志進(jìn)入日志類型倉(cāng)庫(kù)中時(shí),首先計(jì)算日志模板和日志的最長(zhǎng)公共子序列,然后反轉(zhuǎn)最長(zhǎng)公共子序列,之后對(duì)待比較日志的單詞進(jìn)行遍歷:如果該單詞與最長(zhǎng)公共子序列第一個(gè)單詞一樣,則說明該單詞屬于日志的常量部分,此時(shí)在日志模板中加入該單詞;否則說明該單詞屬于變量部分,此時(shí)在日志模板中加入變量匹配符“<*>”。加入成功后,則將最長(zhǎng)公共子序列中該單詞刪除,然后進(jìn)行下一次判斷,直到最長(zhǎng)公共子序列為空時(shí)退出該循環(huán)。最后,如果待匹配日志后續(xù)還有單詞,說明都是變量,因此直接加入變量匹配符“<*>”。按照上述算法流程,就能對(duì)日志倉(cāng)庫(kù)中已有的日志模板進(jìn)行實(shí)時(shí)更新。同時(shí)這個(gè)算法也滿足兩條日志非結(jié)構(gòu)化的公共部分是模板的常量,而不同的部分是模板的變量。

回顧日志模式提煉算法的流程可以發(fā)現(xiàn),每當(dāng)有新的日志出現(xiàn),該處理流程都需要分別計(jì)算新日志和日志倉(cāng)庫(kù)中所有日志模式的最長(zhǎng)公共子序列。隨著日志模式的增加,計(jì)算開銷就會(huì)越來越大,因此如果縮減比較次數(shù)就能顯著提高算法的整體效率?;谝陨嫌懻摚琇Dmatch 算法使用哈希表存儲(chǔ)日志模式,哈希表的輸入為日志的第一個(gè)字母,這樣可以保證哈希表不會(huì)無限增大。如果日志的第一個(gè)字符不是字母,則統(tǒng)一存儲(chǔ)到通配符<*>開頭的哈希表中。這樣構(gòu)造的日志模式倉(cāng)庫(kù)的示意圖見圖3。

圖3 日志模式倉(cāng)庫(kù)Fig.3 Log patterns warehouse

在圖3 中,可以看到只要按照這種哈希表的存儲(chǔ)格式進(jìn)行日志倉(cāng)庫(kù)的保存,就能使得新的一條日志進(jìn)行匹配時(shí),先根據(jù)日志開頭信息進(jìn)入日志模式倉(cāng)庫(kù)的對(duì)應(yīng)子集,然后新日志僅需要和該子集中的所有日志模板進(jìn)行比較即可,從而大大減少了日志的比較次數(shù)。

最后,將改進(jìn)的日志倉(cāng)庫(kù)加入日志模式提煉算法的流程中,就得到了LDmatch 算法。下一章將會(huì)通過實(shí)驗(yàn)證明該算法的優(yōu)勢(shì)。

3 實(shí)驗(yàn)結(jié)果與分析

本章先通過實(shí)驗(yàn)確定LDmatch 算法對(duì)高性能計(jì)算環(huán)境中的日志進(jìn)行模式提煉時(shí)的最優(yōu)參數(shù),然后通過與其他多種方法對(duì)比來證明本文算法在準(zhǔn)確度、魯棒性以及效率上的優(yōu)勢(shì)。

3.1 實(shí)驗(yàn)數(shù)據(jù)

本文使用以下兩個(gè)數(shù)據(jù)集對(duì)實(shí)驗(yàn)中所有涉及的方法進(jìn)行分析評(píng)價(jià):

A.Zhu 等人在論文中公布了一個(gè)開源的數(shù)據(jù)集Loghub,里面包含16 種不同系統(tǒng)和平臺(tái)產(chǎn)生的日志,每種日志都經(jīng)過隨機(jī)挑選2 000 條日志,并且經(jīng)過專業(yè)人員手動(dòng)標(biāo)注并得到對(duì)應(yīng)的日志模式。

B.國(guó)家高性能計(jì)算環(huán)境系統(tǒng)在實(shí)際工作中產(chǎn)生的系統(tǒng)日志。本文選取系統(tǒng)在2018 年9 月整個(gè)月產(chǎn)生日志中的secure類別日志作為實(shí)驗(yàn)數(shù)據(jù)。

3.2 評(píng)價(jià)方法

為了對(duì)本文方法做盡可能詳細(xì)的驗(yàn)證,本文通過以下評(píng)價(jià)指標(biāo)進(jìn)行實(shí)驗(yàn)。

準(zhǔn)確度:正確解析的日志模式與日志模式總數(shù)的比率。解析后,每個(gè)日志消息都有一個(gè)事件模板,該事件模板對(duì)應(yīng)于同一模板會(huì)得到一組消息。當(dāng)且僅當(dāng)這一組消息與真實(shí)的人工標(biāo)記數(shù)據(jù)對(duì)應(yīng)的一組日志消息完全相同時(shí),才認(rèn)為該條日志模式的解析結(jié)果是正確的。

為了避免實(shí)驗(yàn)產(chǎn)生的隨機(jī)誤差,本文對(duì)每組實(shí)驗(yàn)結(jié)果都經(jīng)過多次計(jì)算并取得平均值。所有實(shí)驗(yàn)都是在一臺(tái)裝有英特爾第三代酷睿i5-3230M 的處理器、8 GB 內(nèi)存以及Windows 7 旗艦版64 位系統(tǒng)的計(jì)算機(jī)上進(jìn)行的。

3.3 參數(shù)確定實(shí)驗(yàn)分析

本節(jié)進(jìn)行日志模式提煉算法關(guān)鍵參數(shù)確定的實(shí)驗(yàn)。其中,閾值參數(shù)在取值范圍內(nèi)每隔0.5 進(jìn)行一次準(zhǔn)確度計(jì)算的實(shí)驗(yàn),因?yàn)樵撻撝凳菫榱藨?yīng)用于國(guó)家高性能計(jì)算環(huán)境,所以本實(shí)驗(yàn)選擇A 數(shù)據(jù)集中包含模式類別已經(jīng)被人工標(biāo)注好的Linux 數(shù)據(jù)集。實(shí)驗(yàn)的結(jié)果如圖4。

圖4 閾值-準(zhǔn)確度Fig.4 Threshold and accuracy

由圖4 可以看出,LDmatch 算法在Linux 數(shù)據(jù)集中的準(zhǔn)確度在閾值為0.5 以下都比較高,超過0.5 則迅速下降,說明Linux 系統(tǒng)日志中的變量部分占比較大,基本超過50%,因此不能使用太大的閾值進(jìn)行模式提煉。當(dāng)閾值取0.45 時(shí),準(zhǔn)確度最大。因此后續(xù)在高性能計(jì)算環(huán)境中使用該模式提煉算法時(shí),就使用=0.45 作為參數(shù)進(jìn)行其他相關(guān)實(shí)驗(yàn)。

3.4 不同模式提煉方法對(duì)比分析

本節(jié)將本文的LDmatch 算法和其他模式提煉算法在Linux 日志數(shù)據(jù)上進(jìn)行準(zhǔn)確度的對(duì)比,因此本實(shí)驗(yàn)選擇A 數(shù)據(jù)集中的Linux 數(shù)據(jù)集作為實(shí)驗(yàn)對(duì)象。本節(jié)對(duì)比的方法包含基于頻繁模式的模式提煉算法SLCT和LFA,基于聚類的模式提煉算法LKE和LogSig,以及其他類別的模式提煉算法MoLFI、Match和Lmatch。經(jīng)過實(shí)驗(yàn)得到準(zhǔn)確度的結(jié)果如圖5 所示。

圖5 不同模式提煉方法下的準(zhǔn)確度Fig.5 Accuracy in different pattern extracting methods

由圖5 可以看出,在Linux 數(shù)據(jù)集上,基于頻繁模式的模式提煉算法SLCT 和LFA 的精確度較低,基于聚類的模式提煉算法LKE 和LogSig 各有好壞,而其他類方法中的Match 和Lmatch 算法精確度都比較高,說明了基于單詞匹配率算法的模式提煉方法的優(yōu)勢(shì)。而LDmatch 所得的精確度是最高的,由此可見,本文方法非常適用于Linux 系統(tǒng)日志的數(shù)據(jù)。根據(jù)2.1 節(jié)的介紹可知,國(guó)家高性能計(jì)算環(huán)境的日志分析框架LARGE 中需要重點(diǎn)解析的日志就是Linux 系統(tǒng)中的日志,和普通Linux 系統(tǒng)日志的區(qū)別在于日志結(jié)構(gòu)化部分的主機(jī)名字段來源于環(huán)境中的不同節(jié)點(diǎn),因此該字段會(huì)出現(xiàn)不同主機(jī)名,而對(duì)于日志模式提煉算法所關(guān)注的日志的非結(jié)構(gòu)化部分沒有影響。綜上所述,該數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果可以證明本文方法也適用于國(guó)家高性能計(jì)算環(huán)境中日志的解析步驟。

3.5 魯棒性分析

為了驗(yàn)證本文方法的魯棒性,本節(jié)將使用本文方法LDmatch 在不同種類的日志數(shù)據(jù)集上進(jìn)行準(zhǔn)確度的實(shí)驗(yàn),因此本實(shí)驗(yàn)選擇A 數(shù)據(jù)集中所包含的16種不同系統(tǒng)和平臺(tái)產(chǎn)生的日志進(jìn)行實(shí)驗(yàn)。同時(shí)本文也使用基于單詞匹配率算法的模式提煉方法Match和Lmatch 進(jìn)行對(duì)比。最終的實(shí)驗(yàn)結(jié)果如表1 所示。

由表1 可以看出,Match 方法在所有數(shù)據(jù)集上得到的準(zhǔn)確度都相對(duì)較低,這說明一對(duì)一的字符匹配算法在日志模式提煉上并沒有優(yōu)勢(shì),也證明了日志中常量部分的位置通常情況下并不相同。Lmatch 的精確度比Match 整體高出很多,說明了最長(zhǎng)公共子序列在日志模式提煉中的應(yīng)用價(jià)值是很高的。而本文方法LDmatch 達(dá)到了最高的精度,說明基于哈希表的存儲(chǔ)結(jié)構(gòu)不僅優(yōu)化了日志的匹配效率,還在一定程度上對(duì)日志模式提煉準(zhǔn)確度有促進(jìn)作用。表格中還給出了LDmatch 在不同種類日志數(shù)據(jù)集下的最優(yōu)參數(shù)以供參考??梢钥闯?,同一種日志模式提煉算法在不同數(shù)據(jù)集下的最優(yōu)參數(shù)差別比較大,這不僅說明了不同種類的日志在常量部分和變量部分的比重差別較大,也說明了調(diào)整閾值的參數(shù)對(duì)于日志模式提煉算法具有重要作用。

表1 不同種類日志上的實(shí)驗(yàn)結(jié)果Table 1 Experimental results on different kinds of logs

3.6 效率分析

為了驗(yàn)證本文方法LDmatch 在效率上的優(yōu)勢(shì),本文使用高性能計(jì)算環(huán)境中實(shí)際產(chǎn)生的日志數(shù)據(jù)集B進(jìn)行本輪實(shí)驗(yàn)。首先將B 數(shù)據(jù)集拆分成1 000、5 000、10 000、50 000、100 000 條日志,然后分別在這些不同大小的日志上進(jìn)行日志模式提煉的實(shí)驗(yàn)。作為對(duì)比,本文還將Match以及Lmatch算法進(jìn)行了相同的實(shí)驗(yàn),最后記錄每組實(shí)驗(yàn)的完成時(shí)間,實(shí)驗(yàn)結(jié)果見圖6。

圖6 不同日志數(shù)量下模式提煉方法消耗的時(shí)間Fig.6 Time consumed by pattern extracting methods under different number of logs

由圖6 可以看出,當(dāng)日志數(shù)量比較小的時(shí)候,三種算法在進(jìn)行日志模式提煉時(shí)所用的時(shí)間差別不大。但是隨著日志規(guī)模的增大,Match 算法所用的時(shí)間顯著上升,說明該算法在處理較多的日志時(shí)得到的模式增加較快,因此每次比較的次數(shù)增多而導(dǎo)致消耗的時(shí)間快速上升。而Lmatch 算法相比來說時(shí)間增加得緩慢,說明了基于最長(zhǎng)公共子序列的模式提煉算法對(duì)日志進(jìn)行模式提煉的合理性。而LDmatch 算法所用的時(shí)間最短,因?yàn)長(zhǎng)Dmatch 算法的時(shí)間復(fù)雜度是(()),其中是當(dāng)前搜索到的哈希表節(jié)點(diǎn)內(nèi)所包含的日志模板的數(shù)量。和分別代表進(jìn)行匹配的兩條日志的單詞數(shù)量。很明顯,其中的、是常量。相對(duì)整體算法進(jìn)行時(shí)日志條數(shù)的增長(zhǎng)來說也是常量,因?yàn)槟0宓臄?shù)量本身就遠(yuǎn)小于日志的總量,同時(shí)又經(jīng)過哈希表的劃分,每一個(gè)字母鍵下存儲(chǔ)的模板數(shù)量就更少了。通過以上討論,可以看出LDmatch 算法具有()級(jí)別的時(shí)間復(fù)雜度。上述討論和實(shí)驗(yàn)結(jié)果也說明了引入了哈希表的模式提煉算法雖然增加了日志模式倉(cāng)庫(kù)存儲(chǔ)的復(fù)雜性,但是在效率上具有較大的優(yōu)勢(shì)。

4 結(jié)束語

本文主要對(duì)日志模式提煉算法進(jìn)行了分析和研究,對(duì)以往的模式提煉算法進(jìn)行了改進(jìn),在日志的匹配方式上和匹配規(guī)則上進(jìn)行了優(yōu)化,最后通過多組實(shí)驗(yàn)驗(yàn)證了本文方法在準(zhǔn)確度、魯棒性和效率上的提升。本文只是針對(duì)日志模式提煉做了一些前期探索工作,未來還有很多值得關(guān)注的研究點(diǎn)。今后工作的主要重點(diǎn)是將該日志模式提煉算法應(yīng)用到國(guó)家高性能計(jì)算環(huán)境中的日志流量分析中,從而進(jìn)行異常日志流量檢測(cè)以及日志類型序列的關(guān)聯(lián)性分析等。

猜你喜歡
計(jì)算環(huán)境日志高性能
云計(jì)算環(huán)境下船舶無線通信網(wǎng)絡(luò)入侵檢測(cè)方法
云計(jì)算環(huán)境下網(wǎng)絡(luò)安全等級(jí)保護(hù)的實(shí)現(xiàn)途徑
一名老黨員的工作日志
扶貧日志
云計(jì)算環(huán)境下的信息安全風(fēng)險(xiǎn)評(píng)估
雅皮的心情日志
雅皮的心情日志
分布式計(jì)算環(huán)境下網(wǎng)絡(luò)數(shù)據(jù)加密技術(shù)研究
高性能砼在橋梁中的應(yīng)用
SATA推出全新高性能噴槍SATAjet 5000 B
天水市| 乐至县| 新竹市| 化隆| 沙田区| 滦南县| 旬阳县| 齐河县| 民勤县| 青河县| 江西省| 云龙县| 顺义区| 武强县| 安平县| 朝阳区| 枣强县| 桦川县| 台州市| 霍邱县| 闻喜县| 古交市| 太保市| 新闻| 崇州市| 沅江市| 普兰店市| 拉萨市| 东安县| 昆山市| 遵义县| 孙吴县| 九寨沟县| 眉山市| 温泉县| 宜宾县| 邯郸县| 京山县| 渝中区| 湖南省| 莱阳市|