基于循環(huán)神經(jīng)網(wǎng)絡(luò)的日志異常檢測(cè)系統(tǒng)的研究和應(yīng)用_第1頁(yè)
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的日志異常檢測(cè)系統(tǒng)的研究和應(yīng)用_第2頁(yè)
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的日志異常檢測(cè)系統(tǒng)的研究和應(yīng)用_第3頁(yè)
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的日志異常檢測(cè)系統(tǒng)的研究和應(yīng)用_第4頁(yè)
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的日志異常檢測(cè)系統(tǒng)的研究和應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

II1.緒論1.1研究背景近年來(lái),伴隨著信息技術(shù)的發(fā)展,分布式系統(tǒng)頻繁出現(xiàn)在不同的領(lǐng)域,且發(fā)揮著非常重要的作用[1]。由于分布式系統(tǒng)的廣泛使用,系統(tǒng)故障造成的損失也在日益增加。據(jù)統(tǒng)計(jì),像谷歌和微博這樣的互聯(lián)網(wǎng)公司每年就會(huì)因此造成數(shù)億元的經(jīng)濟(jì)損失,這也讓人們更加關(guān)注分布式系統(tǒng)的穩(wěn)定性和安全性。系統(tǒng)日志作為系統(tǒng)運(yùn)行狀態(tài)的直接反映,其中包含了極為全面的網(wǎng)絡(luò)運(yùn)行動(dòng)態(tài)信息,其中異常活動(dòng)可以通過(guò)系統(tǒng)日志表現(xiàn)出來(lái),因此系統(tǒng)日志可用于檢測(cè)和診斷異常[2]。隨著體系結(jié)構(gòu)的日益復(fù)雜化和分布式系統(tǒng)的大量數(shù)據(jù)產(chǎn)出,使得基于人工判斷的日志分析方式不再適合于系統(tǒng)的系統(tǒng)故障檢測(cè)。隨著大規(guī)模的網(wǎng)絡(luò)使用和系統(tǒng)規(guī)模的不斷擴(kuò)大,對(duì)其穩(wěn)定、可靠度提出了嚴(yán)峻的要求。除此以外,網(wǎng)絡(luò)環(huán)境變得越來(lái)越復(fù)雜,各種新形式的攻擊也在不斷的涌現(xiàn),這也推動(dòng)異常檢測(cè)技術(shù)成為不可或缺的重要部分[3]。1.2國(guó)內(nèi)外研究現(xiàn)狀1.2.1國(guó)外研究現(xiàn)狀近年來(lái),日志數(shù)據(jù)異常檢測(cè)已經(jīng)成為國(guó)內(nèi)外的研究熱點(diǎn),日志數(shù)量巨大這也使得機(jī)器學(xué)習(xí)在該領(lǐng)域能夠起到更好的效果,讓異常檢測(cè)更加簡(jiǎn)單化,且充滿了更多的可能性。WeiX(2022)認(rèn)為日志模型的三個(gè)核心Logger、LoggerProvider和LoggerFactory,LoggerProvider提供一個(gè)具體的Logger對(duì)象將格式化的日志消息寫(xiě)入相應(yīng)的目的地,但在編程過(guò)程中使用的Logger對(duì)象則由LoggerFactory創(chuàng)建,這個(gè)Logger利用注冊(cè)到LoggerFactory的LoggerProvider來(lái)提供真正具有日志寫(xiě)入功能的Logger,并委托后者來(lái)記錄日志[5]。HeP,ZhuJ,ZhengZ(2022)認(rèn)為,雙向堆疊的門(mén)控循環(huán)單元(BidirectionalStackedGratedRecurrentUnit,BSGRU)網(wǎng)絡(luò)改進(jìn)了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò),其優(yōu)點(diǎn)提高了檢測(cè)的效果[6]。KingmaDP(2022)對(duì)現(xiàn)實(shí)世界中的大量軌跡數(shù)據(jù)進(jìn)行實(shí)驗(yàn),顯示了該方法在大多數(shù)情況下對(duì)異常軌跡識(shí)別的效果達(dá)到了最優(yōu),驗(yàn)證了循環(huán)神經(jīng)網(wǎng)絡(luò)模型對(duì)于異常軌跡檢測(cè)的有效性。隨著人們?nèi)粘3鲂惺褂镁W(wǎng)約車頻率的增加,網(wǎng)約車安全成為我們公共安全通信亟待解決的重要問(wèn)題,使用該方法可以及時(shí)發(fā)現(xiàn)異常軌跡,從而實(shí)現(xiàn)危機(jī)預(yù)警[7]。1.2.2國(guó)內(nèi)研究狀況周建國(guó),戴華,楊庚,周倩,王?。?023)認(rèn)為,針對(duì)日志的異常檢測(cè)主要分為基于規(guī)則的異常檢測(cè)、基于無(wú)監(jiān)督的異常檢測(cè)、基于有監(jiān)督的異常檢測(cè)三類方法[8]。劉春波(2023)認(rèn)為,基于規(guī)則的異常檢測(cè),該方法主要計(jì)算大量日志中關(guān)鍵詞的出現(xiàn)頻率,結(jié)合專家經(jīng)驗(yàn)和正則表達(dá)式的設(shè)計(jì)進(jìn)行異常檢測(cè)。這種方法雖然可以有效減少異常,但是人工成本高,自動(dòng)化程度低。其次是無(wú)監(jiān)督的異常檢測(cè),它不要求事先標(biāo)記數(shù)據(jù)的異常值,而是要判定被識(shí)別的日志特征和正常的日志特征之間有沒(méi)有差別,通過(guò)相似性聚類分析將聚類中的離群點(diǎn)判定為異常日志序列。雖然這種方法能夠減少異常,且自動(dòng)化程度高,但其效果相對(duì)差勁[9]。郭嫻,林昕,趙漢青(2023)基于有監(jiān)督的異常檢測(cè)方法,該方法需要使用帶有標(biāo)簽的數(shù)據(jù)進(jìn)行訓(xùn)練,雖然該算法準(zhǔn)確率高,但是面對(duì)日志異常檢測(cè)問(wèn)題,通常會(huì)存在正負(fù)樣本不均衡的問(wèn)題,且需要人工標(biāo)注數(shù)據(jù)[10]。近年來(lái),由于對(duì)計(jì)算機(jī)技術(shù)和深度學(xué)習(xí)的不斷深入,人們開(kāi)始將神經(jīng)網(wǎng)絡(luò)與日志識(shí)別相結(jié)合,并提出了一些基于神經(jīng)網(wǎng)絡(luò)的檢測(cè)方法,且在實(shí)踐中得到了較好的效果。其中有人提出了一種基于LSTM的異常檢測(cè)模型Deeplog,該方法的原理是學(xué)習(xí)正常的日志序列的輸出方式,對(duì)新的日志序列進(jìn)行預(yù)測(cè),從而發(fā)現(xiàn)異常日志[7]。1.3研究意義本文將針對(duì)日志異常檢測(cè)技術(shù)進(jìn)行詳細(xì)的探討。從學(xué)術(shù)觀點(diǎn)來(lái)看,本次嘗試豐富了日志檢測(cè)方法的多樣性,為以后的日志異常檢測(cè)研究提供了方法參考。從現(xiàn)實(shí)觀點(diǎn)來(lái)看,該模型提出能夠?yàn)檫\(yùn)維人員的決策起到一定的輔助作用意義[4]。1.4論文研究?jī)?nèi)容由于基于規(guī)則的異常檢測(cè)、無(wú)監(jiān)督異常檢測(cè)和有監(jiān)督異常檢測(cè)三種不同的檢測(cè)方式都存在著缺陷,本文將著重研究日志異常檢測(cè)模型Deeplog模型,且以該算法為前提,提出一種基于集成思想的異常日志檢測(cè)模型。實(shí)驗(yàn)首先將日志數(shù)據(jù)進(jìn)行模板提取,并構(gòu)建日志序列。其次使用日志異常檢測(cè)模型Deeplog模型與本文提出的異常日志檢測(cè)模型分別使用相同測(cè)試集、訓(xùn)練集進(jìn)行訓(xùn)練、預(yù)測(cè)。最后,通過(guò)各個(gè)評(píng)估指標(biāo)對(duì)Deeplog和本文模型進(jìn)行對(duì)比。綜上所述,異常檢測(cè)在當(dāng)前分布式環(huán)境中不可小覷,隨著日志量越來(lái)越大,技術(shù)要求也越來(lái)越苛刻,隨著機(jī)器學(xué)習(xí)技術(shù)的普及,傳統(tǒng)的研究方式也逐漸被淘汰。隨著研究的深入,一種無(wú)監(jiān)督日志異常檢測(cè)模型Deeplog被提出,它可以替代以往的檢測(cè)模型,且效果較佳。本文針對(duì)異常日志檢測(cè),將以Deeplog模型為前提,嘗試建立一種新的異常日志檢測(cè)模型。本結(jié)后續(xù)將對(duì)日志數(shù)據(jù)進(jìn)行詳細(xì)分析,以及介紹本次實(shí)驗(yàn)將使用的數(shù)據(jù)集。2.日志數(shù)據(jù)分析2.1日志結(jié)構(gòu)分析日志的組成多種多樣,不同來(lái)源的日志包含不同的要素,例如在PostgreSQL日志文件中,日志文件格式通常包含時(shí)間、組件名稱和描述信息三部分,如圖2-1所示的一種系統(tǒng)日志中,“081109”表示時(shí)間,“dfs.DataNode$DataXceiver”表示組件名稱,“PacketResponder1forblockblk_-1608999687919862906terminating”表示描述信息[6]。描述信息是最有用的一部分,能反映出系統(tǒng)發(fā)生的事件。圖2-1系統(tǒng)日志示例2.2日志特點(diǎn)分析日志數(shù)據(jù)與傳統(tǒng)自然語(yǔ)言相比,即使同樣由單詞構(gòu)成,但有明顯不同的性質(zhì),主要為以下幾點(diǎn)[8]:(1)(2)(3)(4)(5)2.3數(shù)據(jù)集雖然面臨著現(xiàn)在現(xiàn)代系統(tǒng)大規(guī)模發(fā)展,且系統(tǒng)中的任何故障都會(huì)中斷應(yīng)用程序并導(dǎo)致重大的收入損失。但是出于保密原因,研究機(jī)構(gòu)一般不會(huì)向公眾披露研究中使用的數(shù)據(jù)。這也導(dǎo)致了公開(kāi)可用的日志很少,含有標(biāo)記的日志更是寥寥無(wú)幾[9]。本文將使PostgreSQL日志集,該數(shù)據(jù)集在商用硬件上運(yùn)行且通過(guò)運(yùn)行不同的工作流程負(fù)載生成,且通過(guò)人工來(lái)分辨異常,并進(jìn)行標(biāo)注。日志根據(jù)BlockId被分割成跟蹤,每個(gè)與BlockId關(guān)聯(lián)的跟蹤都被分配了一個(gè)真實(shí)標(biāo)簽,可以滿足本次實(shí)驗(yàn)。3.日志模板提取及日志序列構(gòu)建3.1Drain簡(jiǎn)介Drain全稱為depthtreebasedonlinelogparsing,是一個(gè)在線實(shí)時(shí)日志解析方法,其采用的是固定長(zhǎng)度的樹(shù)模型[10]。Drain是自動(dòng)處理的,在準(zhǔn)確率和速度上都有提升,尤其是速度上。Drain的功能是把那些沒(méi)有結(jié)構(gòu)性的日志數(shù)據(jù)轉(zhuǎn)化為有組織有結(jié)構(gòu)性的日志數(shù)據(jù),并且支持在線自動(dòng)解析[11]。3.2日志解析原始日志消息是非結(jié)構(gòu)化數(shù)據(jù),包括時(shí)間戳和原始消息內(nèi)容,如圖3-1是本次實(shí)驗(yàn)HDFS原始日志的簡(jiǎn)化版本,在日志解析時(shí),算法可以區(qū)別出原始日志信息各個(gè)組成部分是否可變。不可變的部分通常意味著一類日志的日志模板,如圖3-1的“Receivingblock〈*〉src:〈*〉dest:〈*〉”,后續(xù)如出現(xiàn)可歸納的日志,模板可根據(jù)新的日志進(jìn)行更新迭代。而可變部分則是相當(dāng)于此類日志的參數(shù),這些參數(shù)將描述著與其他日志之間的差異。(例如BlockId的提?。骸癰lk_-1608999...”)。圖3-1日志模板提取示例3.3Drain架構(gòu)圖3-2Drain架構(gòu)示例如上圖,Drain解析步驟如下:(1)日志預(yù)處理,如解析出BlockId、ip、num等。如圖3-2的“(blk_-?\\d+)”。(2)根據(jù)日志信息長(zhǎng)度搜索,如上圖的“Length:4“.(3)根據(jù)日志前面的單詞搜索,如圖3-2“Receiving”如果含數(shù)字,就用<*>表示。(4)根據(jù)單詞相似性搜索。是最后一個(gè)leafNode的處理。比較日志信息和logevent的相似,如相似放到同一個(gè)loggroup里。每個(gè)loggroup包括兩部分,logevent和logIDs。logevent是模板,描述在這個(gè)group的日志信息。logIDs記錄這個(gè)group里的日志信息的IDs。(5)更新解析樹(shù)。如果在第4步有找到合適的loggroup,那么就將日志中的logid添加到loggroup中。同時(shí)需要的話,也會(huì)更新logevent。如果沒(méi)找到合適的loggroup,就新增一個(gè)。3.4日志模板提取該實(shí)驗(yàn)提取的日志數(shù)據(jù)為XX系統(tǒng)測(cè)試數(shù)據(jù)庫(kù)日志,該日志是PostgreSQL日志,在其安裝目錄data/log文件夾下,如下圖所示:圖3-3日志數(shù)據(jù)源文件圖3-4日志數(shù)據(jù)該實(shí)驗(yàn)獲取日志時(shí)先獲取日志文件下所有日志文件名,然后通過(guò)遍歷日志文件名獲取日志,依次獲取日志內(nèi)容利用Drain進(jìn)行日志分析處理。具體業(yè)務(wù)邏輯如下:圖3-5獲取日志文件圖3-6讀取日志文件內(nèi)容圖3-7Drain解析日志本實(shí)驗(yàn)將原始數(shù)據(jù)集的各個(gè)日志組成部分劃分,并提取描述信息部分帶入進(jìn)行drain算法進(jìn)行模板訓(xùn)練,最終得到日志模板,其中正則提取規(guī)則如圖3-8所示。訓(xùn)練模板后,以本次日志模板為標(biāo)準(zhǔn),對(duì)全部數(shù)據(jù)進(jìn)行模板提取,獲取得到對(duì)應(yīng)的日志模板、參數(shù)、模板id等信息。圖3-8正則提取規(guī)則3.5日志序列構(gòu)建由上所述,通過(guò)Drain日志解析算法提取原始日志數(shù)據(jù)的描述信息,提取到相對(duì)應(yīng)的日志模板、參數(shù)、模板id。在HDFS日志中,每個(gè)工作執(zhí)行都會(huì)分配唯一的BlockId號(hào),以每個(gè)BlockId劃分為一個(gè)時(shí)域窗口,每個(gè)唯一的BlockId將日志劃分為一組日志序列,該序列對(duì)應(yīng)一系列塊操作,例如寫(xiě)入、刪除、復(fù)制、分配等[6]。本文將HDFS數(shù)據(jù)集按照BlockId劃分,并將其按照時(shí)間順序重組成順序列表,并通過(guò)模板id來(lái)代替原日志來(lái)表示,從而構(gòu)建日志序列,結(jié)果如圖3-9所示。圖3-9日志序列示例數(shù)據(jù)集中每個(gè)BlockId都進(jìn)行了人工標(biāo)注,將日志序列分為正常/異常,實(shí)驗(yàn)中通過(guò)BlockId唯一標(biāo)識(shí)進(jìn)行匹配,為每個(gè)日志序列添加標(biāo)簽,并將其分為正常日志序列和異常日志序列兩部分,至此,日志序列構(gòu)建完成。根據(jù)上文所述,本節(jié)講述的主要是運(yùn)用Drain日志解析算法把那些無(wú)結(jié)構(gòu)性的數(shù)據(jù)轉(zhuǎn)化為有結(jié)構(gòu)性的數(shù)據(jù),對(duì)原始日志描述信息進(jìn)行提取,轉(zhuǎn)換成日志模板、參數(shù)、模板id,并根據(jù)BlockId劃分成一段段日志序列,并用模板id來(lái)代替原始日志,得到離散型的日志序列。下節(jié)將提出日志異常檢測(cè)模型具體設(shè)計(jì)過(guò)程,并以該過(guò)程為準(zhǔn)進(jìn)行模型訓(xùn)練,最后對(duì)測(cè)試數(shù)據(jù)進(jìn)行異常檢測(cè),并分析檢測(cè)結(jié)果?;贚STM的日志異常檢測(cè)模型4.1數(shù)據(jù)集劃分對(duì)于訓(xùn)練集和測(cè)試集的劃分,訓(xùn)練集為20%的正常日志序列,測(cè)試集為100%的異常日志序列和80%的正常日志序列。4.2特征構(gòu)建由于提取到的日志序列長(zhǎng)度是不同的,所以在特征構(gòu)建是采用滑窗的方式來(lái)進(jìn)行處理[8]。假設(shè)一個(gè)日志序列為E={e1,e2,...,en},給定一個(gè)固定的窗口為m,則可以將序列劃分為特征、標(biāo)簽兩部分。其中特征為[[e1,e2,...,em],[e2,e3,...,em+1],...[en-m-1,en-m,...,en-1]],標(biāo)簽則為[em+1,em+2,...en],該序列預(yù)測(cè)問(wèn)題屬于多分類問(wèn)題,每個(gè)日志模板代表其中的一類。4.3異常檢測(cè)框架在原本Deeplog模型中,檢測(cè)模型使用的是nLSTM,如圖4-1所示,采用的檢測(cè)機(jī)制是通過(guò)模型預(yù)測(cè)結(jié)果的前n項(xiàng)與實(shí)際出現(xiàn)的日志模板進(jìn)行比較,如果預(yù)測(cè)結(jié)果中包含該日志模板,則認(rèn)為該序列為正常序列,反之則是異常序列。本文的創(chuàng)新點(diǎn)在于與此處不同,認(rèn)為前n項(xiàng)是沒(méi)法很好判斷的,所以提出以下異常日志檢測(cè)模型,如圖4-2所示。圖4-1nLSTM示例圖4-2異常日志檢測(cè)模型訓(xùn)練示例訓(xùn)練流程如圖4-2,在此聲明,訓(xùn)練的模型均為nLSTM,與Deeplog檢測(cè)模型相同,可以參考圖4-1。步驟一:使用訓(xùn)練集訓(xùn)練模型一。訓(xùn)練過(guò)程中,通過(guò)模型的前向傳播得到預(yù)測(cè)結(jié)果,與數(shù)據(jù)集中實(shí)際的next協(xié)議模板進(jìn)行比較,得到損失值,然后更新參數(shù)通過(guò)反向傳播,迭代不斷更新模型,直到?jīng)]有得到滿意的結(jié)果,并保存訓(xùn)練好的模型[9]。步驟二:使用步驟一中訓(xùn)練的模型對(duì)訓(xùn)練集進(jìn)行異常檢測(cè)。這與Deeplog不同,而是取正常范圍內(nèi)的概率值作為閾值q。預(yù)測(cè)的ID列表可能是空的,也可能是多個(gè),此類方法的目的是能夠動(dòng)態(tài)預(yù)測(cè)不同數(shù)量的ID,由于訓(xùn)練集中的數(shù)據(jù)都是正常的日志序列,因此將模型預(yù)測(cè)結(jié)果與實(shí)際日志模板進(jìn)行比較,如果它們一致,則跳過(guò)日志序列,如果不一致,則將錯(cuò)誤預(yù)測(cè)的日志列表存儲(chǔ)在訓(xùn)練集二中,用于訓(xùn)練模型二[11]。步驟三:使用步驟二中獲得的訓(xùn)練集二,訓(xùn)練過(guò)程中,通過(guò)模型前向傳播與數(shù)據(jù)集中真實(shí)的下一個(gè)日志模板進(jìn)行比較,得到預(yù)測(cè)結(jié)果,得到損失值,然后通過(guò)反向傳播更新參數(shù),不斷更新模型,直到獲得滿意的結(jié)果并保存訓(xùn)練好的模型。模型二被添加到模型一,因?yàn)槟P鸵豢赡芫哂锌盏念A(yù)測(cè)ID列表。為了產(chǎn)生更多的可能性,模型二使用模型一無(wú)法完全學(xué)習(xí)的數(shù)據(jù)進(jìn)行訓(xùn)練,模型一扮演次要角色,識(shí)別效果[12]。4.3.1nLSTM層LSTM全稱為長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò),設(shè)計(jì)的初衷是為了解決一般的循環(huán)神經(jīng)網(wǎng)絡(luò)無(wú)法解決的長(zhǎng)期依賴問(wèn)題,該網(wǎng)絡(luò)與一般的循環(huán)神經(jīng)網(wǎng)絡(luò)不同點(diǎn)在于增加了輸入門(mén)、遺忘門(mén)和輸出門(mén)[12]。目前LSTM在面對(duì)長(zhǎng)期依賴問(wèn)題具有很高的適用性,因此本文將以LSTM作為基礎(chǔ)模型來(lái)研究日志異常檢測(cè)問(wèn)題。每個(gè)LSTM單元都有一個(gè)向量作為它的一個(gè)輸入狀態(tài),上個(gè)時(shí)刻LSTM單元狀況會(huì)伴隨著下一時(shí)刻的數(shù)據(jù)輸入一同輸入到下一個(gè)LSTM單元,以求新的狀況和輸出。單個(gè)LSTM單元會(huì)通過(guò)上述傳輸形式將記錄信息儲(chǔ)存起來(lái)。nLSTM是將單層的LSTM網(wǎng)絡(luò)擴(kuò)展到n層的網(wǎng)絡(luò)形式,可以增強(qiáng)網(wǎng)絡(luò)效果。在單個(gè)LSTM中,一個(gè)LSTM的輸出包含了細(xì)胞狀態(tài)和隱藏狀態(tài),在傳遞時(shí)會(huì)將其傳輸給下一個(gè)LSTM單元。該隱藏的狀況也會(huì)相應(yīng)地被傳送到上層的LSTM單元,以做為它的一個(gè)輸入。底層的每LSTM單元都會(huì)對(duì)應(yīng)著一個(gè)日志模板的輸入。如果h是一個(gè)系列的長(zhǎng)度,則每一層LSTM都會(huì)包含h個(gè)LSTM單元。LSTM的內(nèi)部詳細(xì)視圖顯示在圖4-3中,從LSTM模式的構(gòu)造中可以看出,序列信息是按照從前往后的形式進(jìn)行傳播的。圖4-3LSTM單元的內(nèi)部展開(kāi)圖圖4-3中xt表示日志模板的詞嵌入,Ct表示當(dāng)前序列中的第t個(gè)LSTM單元的細(xì)胞狀態(tài),ht表示當(dāng)前序列中的第t個(gè)LSTM單元的隱藏狀態(tài),σ模塊代表非線性激活sigmoid函數(shù),tanh代表tanh函數(shù),*表示點(diǎn)乘,+表示相加。一個(gè)LSTM單元的隱藏輸出ht的推導(dǎo)過(guò)程如公式1-6所示。fit=σ(WC=CtOtht公式(1)表示遺忘門(mén),通過(guò)當(dāng)前序列序中第t個(gè)日志模板id與先前單元的輸出判斷哪些信息將從細(xì)胞狀態(tài)中刪除。公式(2)、(3)、(4)表示輸入門(mén),(2)(3)確定細(xì)胞狀態(tài)中需要存放哪些的新信息,sigmoid激活函數(shù)來(lái)確定哪些值將要更新,tanh激活函數(shù)將會(huì)重新構(gòu)建一個(gè)的候選值向量Ct加入到狀態(tài)中。(4)代表一個(gè)新的候選對(duì)象。首先需要用上一次的細(xì)胞狀態(tài)來(lái)判斷哪些信息是需要被丟棄的,之后將剩余信息與候選值向量相加獲得新的細(xì)胞狀況[17]。(5)、(6)表示輸出門(mén),首先,(5)中的sigmoid激活函數(shù)決定輸出狀態(tài)的部分信息,之后用tanh激活函數(shù)處理由公式(4)更新得到的細(xì)胞狀態(tài),并將前后兩者做積獲取得到最終輸出。在nLSTM的情況下,每個(gè)LSTM單元都具有相應(yīng)的上層LSTM單元,下層LSTM單元的會(huì)為相應(yīng)的上層LSTM單元提供輸出結(jié)果作為輸入。最上層的LSTM單元的輸出將作為nLSTM最后輸出的結(jié)果。4.3.2損失函數(shù)選擇異常日志檢測(cè)模型采用交叉熵為損失函數(shù),以模型輸出和正確模板id之間的損失函數(shù)loss值最小為學(xué)習(xí)目標(biāo)。因?yàn)榻徊骒負(fù)p失函數(shù)曲線整體呈單調(diào)性,損失越大,梯度越大,便于梯度下降反向傳播,利于優(yōu)化[13]。因此,在分類問(wèn)題中,損失函數(shù)通常采用交叉熵。經(jīng)過(guò)試驗(yàn)檢驗(yàn),結(jié)果表明:訓(xùn)練集正確率越高,交叉熵的近似值越趨于0,訓(xùn)練集正確率越低,則交叉熵近似值越大。交叉熵誤差函數(shù)的表達(dá)式為:loss=?1其中,yi代表著真實(shí)標(biāo)簽,Pi是模型預(yù)測(cè)概率值,K是類別數(shù),N是樣本總數(shù)。4.3.3優(yōu)化器選擇訓(xùn)練過(guò)程中采用了Adam優(yōu)化器對(duì)模型參數(shù)進(jìn)行擬合。Adam算法的優(yōu)勢(shì)在于,在校正了一階矩和二階矩的偏差后,每次的迭代都會(huì)有一個(gè)固定的區(qū)間可以讓參數(shù)更穩(wěn)定,從而使得步長(zhǎng)退火過(guò)程更容易,且Adam可以對(duì)學(xué)習(xí)率進(jìn)行自動(dòng)調(diào)整,在梯度存在很大噪聲或梯度稀疏的情況下也同樣適用[14]。4.4檢測(cè)階段訓(xùn)練集的輸入與訓(xùn)練時(shí)一致,利用訓(xùn)練中產(chǎn)生的模型進(jìn)行異常日志檢測(cè),模型輸出為一個(gè)概率向量P=(P1,P2,,…,PK),Pi表示將模板id預(yù)測(cè)為圖4-4檢測(cè)流程示例在原本的deeplog模型檢測(cè)中,只是粗糙的將模型預(yù)測(cè)結(jié)果概率較大的前n個(gè)日志模板作為預(yù)測(cè)結(jié)果,若真實(shí)的模板id在所預(yù)測(cè)的范圍之內(nèi),則記為正常,反之異常。本實(shí)驗(yàn)認(rèn)為n值是沒(méi)法很好的進(jìn)行人為設(shè)置,且固定的長(zhǎng)度可能會(huì)導(dǎo)致大量異常日志序列被認(rèn)定為正常日志序列,所以針對(duì)此處進(jìn)行改進(jìn)。具體過(guò)程為:檢測(cè)流程一:將測(cè)試集中正常日志序列和異常日志序列分割為訓(xùn)練模型時(shí)訓(xùn)練集相同長(zhǎng)度的日志序列,分別載入已訓(xùn)練好的模型一種進(jìn)行測(cè)試,取一個(gè)正常范圍內(nèi)的概率值為閾值q,將概率大于該閾值的日志模板存儲(chǔ)到當(dāng)次預(yù)測(cè)列表,視為該次日志模板的預(yù)測(cè)結(jié)果[6]。若檢測(cè)數(shù)據(jù)集時(shí)實(shí)際目標(biāo)數(shù)據(jù)在預(yù)測(cè)結(jié)果中,則繼續(xù)預(yù)測(cè),若實(shí)際目標(biāo)數(shù)據(jù)不在預(yù)測(cè)結(jié)果中,則進(jìn)行檢測(cè)流程二。檢測(cè)流程二:通過(guò)檢測(cè)流程一的日志序列將使用模型二來(lái)進(jìn)行預(yù)測(cè),本次不在設(shè)定閾值,而是借鑒Deeplog的檢測(cè)方法。對(duì)于正確日志序列而言,如果在概率值前m個(gè)預(yù)測(cè)模板id中沒(méi)有正確的模板id,那么FP(正常日志序列被預(yù)測(cè)為異常日志序列的數(shù)量)加1;對(duì)于異常日志序列而言,如果在概率值前m個(gè)預(yù)測(cè)模板id中沒(méi)有正確的模板,則TP(異常日志序列被預(yù)測(cè)為異常日志序列的數(shù)量)加1。4.5結(jié)果與分析4.5.1實(shí)驗(yàn)環(huán)境與數(shù)據(jù)集實(shí)驗(yàn)平臺(tái)采用windows11,64位系統(tǒng),13.9GB內(nèi)存,AMDRyzen75800HwithRadeonGraphics@3.20GHz處理器,GeForceGTX1650GPU平臺(tái)。實(shí)驗(yàn)所用日志數(shù)據(jù)集HDFS已在2.3節(jié)進(jìn)行了介紹。具體如下表4-1所示。表4-1數(shù)據(jù)集信息表數(shù)據(jù)集總序列數(shù)量模板數(shù)異常序列數(shù)量正常序列數(shù)量訓(xùn)練集111644480111644測(cè)試集46341748168384465794.5.2評(píng)價(jià)指標(biāo)在機(jī)器學(xué)習(xí)分類模型效果評(píng)價(jià)中,召回率、精準(zhǔn)率、F1值和ROC曲線都是具有代表性的評(píng)價(jià)指標(biāo)。評(píng)價(jià)指標(biāo)的選取也是非常關(guān)鍵的,因?yàn)樵u(píng)價(jià)指標(biāo)的不同對(duì)其模型解釋的含義也會(huì)隨之改變,并不是所有的評(píng)價(jià)指標(biāo)都適用于評(píng)估某種模型。在二分類問(wèn)題中,混淆矩陣是最常見(jiàn)的一種方法,它可以直觀的看出模型結(jié)果的正確性和準(zhǔn)確性[14]。混淆矩陣的可以通過(guò)二維表格來(lái)表示出來(lái),其中包含真實(shí)和預(yù)測(cè)兩個(gè)維度。混淆矩陣本身不是性能指標(biāo)但幾乎所有性能指標(biāo)都來(lái)自于混淆矩陣。如表4-2中,TP和FN分別表示異常日志序列被預(yù)測(cè)正確和預(yù)測(cè)錯(cuò)誤的數(shù)量;FP和TN代表正常日志序列被預(yù)測(cè)錯(cuò)誤和預(yù)測(cè)正確的數(shù)量。表4-2混淆矩陣預(yù)測(cè)結(jié)果真實(shí)情況異常日志序列正常日志序列異常日志序列TPFP正常日志序列FNTN所有實(shí)際為異常序列的個(gè)數(shù)TP+FN所有實(shí)際為正常序列的個(gè)數(shù)FP+TN本文采用準(zhǔn)確率、召回率和F1值評(píng)價(jià)指標(biāo)分別對(duì)異常檢測(cè)模型進(jìn)行評(píng)估,具體計(jì)算公式如下所示。精準(zhǔn)率(Precision),查準(zhǔn)率。即正確預(yù)測(cè)為異常日志序列的數(shù)量占實(shí)際異常日志數(shù)量的比例。Precision=TPTP+FP召回率(Recall),查全率。即正確預(yù)測(cè)為異常日志序列的數(shù)量來(lái)占全部預(yù)測(cè)為異常日志數(shù)量的比例。Recall=TP(3)F1值(H-mean值)。F1值是準(zhǔn)確率和召回率的調(diào)和均值,一般情況下,F(xiàn)1值越大則說(shuō)明模型檢測(cè)效果越好。F1=2?Precision?Recall3.5.3模型參數(shù)設(shè)置在這章中,我們對(duì)各種參數(shù)進(jìn)行了多次實(shí)驗(yàn),得到了最佳的模型參數(shù)。所有的試驗(yàn)都是以最佳的模型參數(shù)為標(biāo)準(zhǔn)。模型一:日志序列長(zhǎng)度window_size設(shè)置為10;LSTM的隱層節(jié)點(diǎn)數(shù)目hidden_size設(shè)置為64;LSTM的層數(shù)layers設(shè)置為2;學(xué)習(xí)速率lr設(shè)置為0.001;單次訓(xùn)練參數(shù)個(gè)數(shù)batch_size設(shè)置為2048;訓(xùn)練迭代次數(shù)num_epochs設(shè)置為40;檢測(cè)階段,如第四節(jié)所述,閾值q設(shè)置為4。模型二:日志序列長(zhǎng)度window_size設(shè)置為10;LSTM的隱層節(jié)點(diǎn)數(shù)目hidden_size設(shè)置為64;LSTM的層數(shù)layers設(shè)置為2;學(xué)習(xí)速率lr設(shè)置為0.001;單次訓(xùn)練參數(shù)個(gè)數(shù)batch_size設(shè)置為16;訓(xùn)練迭代次數(shù)num_epochs設(shè)置為300;檢測(cè)階段,如第四節(jié)所述,m設(shè)置為1。Deeplog模型:訓(xùn)練過(guò)程中,各參數(shù)均與模型一相同,在檢測(cè)階段,如第四節(jié)所述,n設(shè)置為44.5.4實(shí)驗(yàn)結(jié)果對(duì)比本次實(shí)驗(yàn)分別采用Deeplog模型和本文設(shè)計(jì)的異常日志檢測(cè)模型對(duì)測(cè)試集進(jìn)行日志序列檢測(cè),且使用召回率、精準(zhǔn)率和F1值對(duì)模型進(jìn)行評(píng)估,并計(jì)算了預(yù)測(cè)所需耗時(shí)間,如表3所示。表4-3實(shí)驗(yàn)結(jié)果指標(biāo)對(duì)照表檢測(cè)模型評(píng)價(jià)指標(biāo)精準(zhǔn)率召回率F1值檢測(cè)時(shí)間Deeplog79.235%81.386%80.297%327.968s本文異常日志檢測(cè)模型81.612%86.161%83.825%349.601s根據(jù)結(jié)果可以看出,Deeplog模型精準(zhǔn)率為79.235%,召回率為81.386%,F(xiàn)1值為80.297%,檢測(cè)時(shí)間為327.968s。本文提出的異常日志檢測(cè)模型精準(zhǔn)率為81.612%、召回率為86.161%、F1值為83.825%,檢測(cè)時(shí)間為349.601s。將評(píng)估指標(biāo)進(jìn)行對(duì)比,本文提出方案精準(zhǔn)率比Deeplog高出2.377%,召回率高出4.775%,F(xiàn)1值高出3.528%,僅檢測(cè)時(shí)間與之比較差,多出21.633s。根據(jù)實(shí)驗(yàn)結(jié)果可以說(shuō)明,本文提出的異常日志檢測(cè)算法在異常日志檢測(cè)方面效果較好。4.6小結(jié)綜上所述,本文提出一種新的異常日志檢測(cè)模型,通過(guò)與Deeplog的比較,驗(yàn)證了此模型的準(zhǔn)確性、召回率和F1值均優(yōu)于Deeplog,檢測(cè)時(shí)間略高于Deeplog,從而證實(shí)本文提出的異常日志檢測(cè)算法在異常日志檢測(cè)方面效果較好。5.結(jié)論近年來(lái),隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,軟硬件環(huán)境規(guī)模不斷擴(kuò)大,對(duì)安全性以及突發(fā)事件的響應(yīng)能力都更加嚴(yán)苛。正確地選取數(shù)據(jù)來(lái)源,采用科學(xué)的分析手段,是解決此類難題的重點(diǎn)。日志作為一個(gè)重要的數(shù)據(jù)來(lái)源,它不僅能反映整個(gè)系統(tǒng),而且還能反映出網(wǎng)絡(luò)中的各種活動(dòng)。本次實(shí)驗(yàn)的提出的異常日志檢測(cè)模型相比。Deeplog而言,由單模型檢測(cè)改為雙模型,且改變其檢測(cè)機(jī)制,使其能夠獲取動(dòng)態(tài)檢測(cè)結(jié)果,從而提升模型預(yù)測(cè)靈活性,不再依靠人為調(diào)整結(jié)果個(gè)數(shù)。根據(jù)實(shí)驗(yàn)結(jié)果對(duì)比,提出的檢測(cè)框架精準(zhǔn)率、召回率、F1值均高于Deeplog,從而說(shuō)明了異常日志檢測(cè)模型對(duì)于Deeplog而言檢測(cè)效果有所提升。參考文獻(xiàn)[1]周建國(guó),戴華,楊庚,周倩,王俊.基于并列GRU分類模型的日志異常檢測(cè)方法[J].南京理工大學(xué)學(xué)報(bào),2023,46(02):198-204.[2]劉春波,梁孟孟,侯晶雯,顧兆軍,王志.面向不穩(wěn)定日志的一致性異常檢測(cè)方法[J].湖南大學(xué)學(xué)報(bào)(自然科學(xué)版),2023,49(04):89-99.[3]周峰,郭嫻,林昕,趙漢青.基于高斯混合模型的IPS日志異常IP地址檢測(cè)技術(shù)研究[J].工業(yè)信息安全,2023,(04):32-38.[4]宋涵,何俊江,王運(yùn)鵬.基于二次滑動(dòng)窗口機(jī)制的日志異常檢測(cè)方法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2023,(03):42-44.[5]房笑宇,曹陳涵,夏彬.基于注意力機(jī)制的大規(guī)模系統(tǒng)日志異常檢測(cè)方法[J].南京大學(xué)學(xué)報(bào)(自然科學(xué)),2023,57(05):785-792.[6]孫嘉,張建輝,卜佑軍,陳博,胡楠,王方玉.基于CNN-BiLSTM模型的日志異常檢測(cè)方法[J].計(jì)算機(jī)工程,2022,48(07):151-158+167.[7]邱連濤,李曉戈,胡飛雄,胡立坤,張東晨,馬鮮艷.日志多維度無(wú)監(jiān)督異常檢測(cè)算法[J].小型微型計(jì)算機(jī)系統(tǒng):1-9.[8]姚杰.基于日志的分布式系統(tǒng)異常診

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論