亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        云工作流中基于多任務(wù)時序卷積網(wǎng)絡(luò)的異常檢測方法

        2021-07-02 08:54:46程春玲
        計算機應(yīng)用 2021年6期
        關(guān)鍵詞:多任務(wù)日志時延

        姚 杰,程春玲,韓 靜,劉 崢*

        (1.南京郵電大學(xué)計算機學(xué)院,南京 210023;2.中興通訊股份有限公司上海研發(fā)中心,上海 201203)

        (?通信作者電子郵箱zliu@njupt.edu.cn)

        0 引言

        云計算平臺使用分布式計算、虛擬化等技術(shù)整合了大量的計算設(shè)備及基礎(chǔ)設(shè)施,并通過網(wǎng)絡(luò)為用戶提供計算、數(shù)據(jù)存儲等資源和相關(guān)服務(wù),因其高效、廉價和易維護(hù)等特點被廣泛應(yīng)用。隨著云服務(wù)市場的快速發(fā)展,云計算系統(tǒng)的安全、可靠運行受到了日益嚴(yán)峻的挑戰(zhàn)[1]。云計算系統(tǒng)中存儲著大量的數(shù)據(jù),其系統(tǒng)規(guī)模龐大、結(jié)構(gòu)復(fù)雜,系統(tǒng)內(nèi)通常包含多個組件,相較于一般的計算機軟件系統(tǒng)更容易存在系統(tǒng)漏洞或遭受到攻擊。因此異常檢測[2]是維護(hù)云計算系統(tǒng)安全可靠運行的必不可少的步驟之一。

        為了了解系統(tǒng)的運行過程,系統(tǒng)中有各種檢測程序監(jiān)測系統(tǒng)在運行過程中的狀態(tài),采集監(jiān)測數(shù)據(jù)。在基于監(jiān)測數(shù)據(jù)的異常檢測[3]中,監(jiān)測數(shù)據(jù)主要為系統(tǒng)運行過程中采集的性能數(shù)據(jù)。Nguyen 等[4]設(shè)計了一種在線異常定位系統(tǒng),依靠采集的性能數(shù)據(jù)建立系統(tǒng)正常執(zhí)行下的波動模型,并根據(jù)找出的異常數(shù)據(jù)定位異常組件。Wang 等[5]不同于使用閾值確定異常的方法,提出了用熵來計算性能數(shù)據(jù)的集中度和分散度,并使用數(shù)據(jù)分析方法區(qū)分正常熵和異常熵以檢測系統(tǒng)異常。以上基于監(jiān)測數(shù)據(jù)方法的不足之處在于監(jiān)測數(shù)據(jù)的獲取需要依靠相關(guān)數(shù)據(jù)采集程序,同時監(jiān)測數(shù)據(jù)難以定位系統(tǒng)異常發(fā)生的位置。

        基于日志的異常檢測利用系統(tǒng)中普遍存在的日志數(shù)據(jù),日志是進(jìn)行系統(tǒng)異常檢測的重要信息來源,相較于監(jiān)測數(shù)據(jù),日志數(shù)據(jù)更容易獲取,而且也能夠確定異常的位置。傳統(tǒng)的基于日志的異常檢測方法從系統(tǒng)日志中挖掘出系統(tǒng)正常運行時的特征以用于異常檢測[6]。Xu等[7]通過日志解析從日志中提取出結(jié)構(gòu)化信息,用定長的窗口劃分日志序列,統(tǒng)計窗口內(nèi)每個事件模板出現(xiàn)的次數(shù)作為一個特征向量,由此構(gòu)造出特征矩陣,然后使用主成分分析(Principal Component Analysis,PCA)在數(shù)量上明顯有異于其他集合的異常集合,最后通過統(tǒng)計檢驗確定異常的日志序列。隨著數(shù)據(jù)的變化,該方法異常檢測結(jié)果的準(zhǔn)確性有很大的波動。基于監(jiān)督學(xué)習(xí)的方法在數(shù)據(jù)處理上采用與PCA 相類似的方式提取特征矩陣,然后使用決策樹[8]、支持向量機[9]等方法進(jìn)行建模。He 等[10]詳細(xì)比較了現(xiàn)有的各種使用傳統(tǒng)機器學(xué)習(xí)的異常檢測方法,這類方法在特定的云計算系統(tǒng)中能夠取得較好的異常檢測效果,但是缺乏對異常類型的判斷。基于日志的事務(wù)流圖方法構(gòu)建系統(tǒng)正常執(zhí)行流程下的事務(wù)流圖,以用于檢驗系統(tǒng)的執(zhí)行過程。Yu等[11]提出的ClouderSeer是一種專門為OpenStack 平臺而設(shè)計的異常檢測算法,它通過多個正常運行下生成的日志流為每一個OpenStack虛擬機構(gòu)建一個自動狀態(tài)機,刻畫了每個任務(wù)的工作流,在在線檢測階段自動識別交錯的日志,檢測可能存在的異常?;谌罩镜氖聞?wù)流圖[12]能夠為異常分析提供強有力的支持,但是由于事務(wù)流圖難以描繪出整個系統(tǒng)的詳細(xì)流程,所以其在異常檢測方面的準(zhǔn)確度較差。

        近年來隨著深度學(xué)習(xí)的快速發(fā)展,各種深度學(xué)習(xí)模型被廣泛運用于系統(tǒng)的異常檢測[13]中,Du 等[14]提出的DeepLog 利用自然語言處理的方式處理日志流,將日志條目視為遵循某些特定模式和語法規(guī)則的序列元素,使用長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[15]構(gòu)建循環(huán)神經(jīng)網(wǎng)絡(luò)模型,從日志流中挖掘出事件序列和日志參數(shù)序列分別訓(xùn)練對應(yīng)的LSTM 模型,用于檢測系統(tǒng)異常。Brown 等[16]運用自然語言處理中的詞袋模型對原始日志進(jìn)行處理,將處理后的日志流序列作為模型的輸入,并在LSTM 中加入了注意力機制,最后根據(jù)日志的異常得分來確定是否發(fā)生異常。Lu 等[17]構(gòu)建了由embedding 層、三個一維卷積層、dropout 層和池化層組成的卷積神經(jīng)網(wǎng)絡(luò)用來檢測輸入的事件序列中是否發(fā)生了異常。王易東等[18]在N-gram 語言模型的基礎(chǔ)上提出了一種基于門控循環(huán)單元網(wǎng)絡(luò)(Gated Recurrent Unit,GRU)的日志異常檢測模型,該模型對權(quán)重參數(shù)的各維度采用不同的學(xué)習(xí)速率進(jìn)行更新[19]。任明等[20]提出了一種基于LSTM 的異常檢測方法,利用TF-IDF 提取日志特征,將異常檢測建模為二分類任務(wù),該方法在Web 系統(tǒng)日志中取得了較好效果。楊瑞朋等[21]用PReLU(Parametric Rectified Linear Unit)激活函數(shù)替換時序卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)中的ReLU 函數(shù),針對全連接層易引起過擬合的問題,用自適應(yīng)平均池化層替換全連接層?,F(xiàn)有的基于深度學(xué)習(xí)的方法中普遍采用事件和日志參數(shù)各自訓(xùn)練相應(yīng)的模型,而忽略了這些任務(wù)的關(guān)聯(lián)關(guān)系。

        系統(tǒng)中的路徑異常和時延異常是較為常見的異常類型,路徑異常由系統(tǒng)偏離正常執(zhí)行路徑造成,而請求或響應(yīng)超時是造成系統(tǒng)時延異常的常見原因。綜合上文中提到的問題,本文提出了一種基于多任務(wù)深度學(xué)習(xí)模型的異常檢測框架。該框架選用日志數(shù)據(jù),生成日志對應(yīng)的事件模板及模型的訓(xùn)練和檢測數(shù)據(jù),從事件和時間這兩個維度針對系統(tǒng)中存在的路徑異常和時延異常進(jìn)行檢測。

        本文的主要工作如下:實際的云平臺系統(tǒng)中事件發(fā)生頻繁,相鄰事件的時間差過小,因此通過間隔采樣的方式生成時延異常檢測任務(wù)的數(shù)據(jù),有效解決了短時延難以預(yù)測及檢測的問題。此外根據(jù)事件預(yù)測任務(wù)和時延預(yù)測任務(wù)之間的關(guān)聯(lián)性,提出了一種基于TCN 的多任務(wù)深度學(xué)習(xí)模型,并設(shè)計了異常檢測邏輯。在實際日志數(shù)據(jù)中的檢測結(jié)果表明,本文的異常檢測框架取得了較高的異常檢測準(zhǔn)確度。

        1 云計算工作流的異常

        云計算工作流中的異常主要包括時延異常和路徑異常。路徑異常是系統(tǒng)中常見的異常類型之一,基于日志的路徑異常檢測主要依靠從日志流中挖掘的事件序列,路徑異常在日志流中具體表現(xiàn)為某一位置處的事件模板偏離了正常的路徑,可能出現(xiàn)的路徑異常類型有跳過下一條關(guān)鍵日志和不遵循關(guān)鍵日志。例如,正常執(zhí)行下得到路徑為:事件1→事件2→事件3→事件4,如果某次執(zhí)行產(chǎn)生的日志流對應(yīng)的路徑變?yōu)?事件1→事件2→事件5→事件4,則在事件5 的位置處可能發(fā)生了類型為不遵循關(guān)鍵日志的路徑異常;如果對應(yīng)的路徑變?yōu)?事件1→事件2→事件4,則在事件4 的位置處可能發(fā)生了類型為跳過下一條關(guān)鍵日志的路徑異常。

        由于系統(tǒng)程序的執(zhí)行是一種嚴(yán)格的流程,且系統(tǒng)的日志輸出語句一般書寫在程序的固定位置,所以兩條日志間的輸出時間間隔應(yīng)該服從一定的分布,受計算機硬件以及網(wǎng)絡(luò)環(huán)境等因素的影響,該時間間隔在一個固定的區(qū)間內(nèi)波動。因此,系統(tǒng)的時延異常在日志流中具體表現(xiàn)為兩條日志的輸出時間間隔不在正常的范圍內(nèi),例如“Deploying os_pkg_repo begins.”和“Deploy os_pkg_repo successfully.”這兩個事件之間的時間間隔應(yīng)該在一定的時間范圍內(nèi),如果超出了這個范圍,就可能存在時延異常。

        本文提出了基于日志的異常檢測框架,可以檢測系統(tǒng)中存在的路徑異常和時延異常,該異常檢測框架包含以下三個步驟:

        1)事件模板及序列生成:通過日志解析[22]將半結(jié)構(gòu)化的日志解析為結(jié)構(gòu)化的事件模板,提取出每一條日志對應(yīng)的事件ID和時間戳,從而將日志流轉(zhuǎn)化為事件序列和時間序列。

        2)多任務(wù)學(xué)習(xí)模型:構(gòu)建并訓(xùn)練基于時序卷積網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)模型,多任務(wù)學(xué)習(xí)通過共享模型參數(shù)學(xué)習(xí)兩個任務(wù)的共同特征。

        3)日志異常檢測:針對系統(tǒng)中存在的路徑異常和時延異常設(shè)計相應(yīng)的異常檢測方法,利用多任務(wù)學(xué)習(xí)模型進(jìn)行日志的異常檢測。

        2 事件模板及序列生成

        2.1 事件模板生成

        日志解析是在進(jìn)行異常檢測之前必不可少的工作,因為系統(tǒng)產(chǎn)生的原始日志是半結(jié)構(gòu)化的文本信息,由日志關(guān)鍵字和變量參數(shù)組成,其中變量參數(shù)記錄著如時間戳、IP地址這類隨著系統(tǒng)運行而變化的信息。日志解析從原始日志中提取日志關(guān)鍵字,將變量用占位符代替(比如可以用*代替的變量參數(shù)),例如如下的OpenStack原始日志:

        2019-04-29 14:05:03.993 INFO sqlalchemy.orm.mapper.Mapper(Com_Server|com_servers)_configure_property(msb_info_v2,Column)req-115af119-b549-4b0b-9056-fbf97a5d6009.

        經(jīng)過日志解析后得到的事件模板如下:sqlalchemy orm mapper Mapper(Com_Server|com_servers)(*Column)<reqparam>。日志解析將半結(jié)構(gòu)化的日志信息轉(zhuǎn)化為結(jié)構(gòu)化的事件模板,每個事件模板盡可能代表著一條日志打印語句。

        云計算數(shù)據(jù)中心包含多個組件,首先生成每個組件的事件模板,本文采用的日志解析算法為基礎(chǔ)簽名生成(Basic Signature Generation,BSG)算法[23],BSG 通過分析日志消息的長度和關(guān)鍵詞,從而實時解析出日志消息所屬事件和對應(yīng)的消息簽名,能夠在保證解析速度的情況下解決現(xiàn)有日志解析算法需要真實消息簽名輔助調(diào)參工作的問題。日志解析后得到事件模板集合,每一個事件模板用一個事件ID 進(jìn)行編號。由于BSG是一種流式解析算法,會造成解析質(zhì)量的下降,解析算法會將本屬于同一事件模板的日志,解析為不同類型的事件模板,影響了異常檢測中對異常的判定,所以進(jìn)一步用編輯距離計算事件模板Ei與其他的事件模板的相似度,然后對解析生成的事件模板采用層次聚類合并相似度較高的事件模板,生成新的事件模板,得到新的事件模板集合E={E1,E2,…,Em}。

        2.2 序列生成

        序列是由系統(tǒng)某次運行產(chǎn)生的原始日志條目中的參數(shù)或其對應(yīng)的事件ID 組成的,通過滑動窗口劃分序列數(shù)據(jù)以生成模型的訓(xùn)練和檢測數(shù)據(jù),用事件模板匹配原始日志條目得到原始日志對應(yīng)的事件ID,系統(tǒng)一次運行對應(yīng)的事件序列SE={e1,e2,…,ei,…,en},ei∈E。

        系統(tǒng)一次運行對應(yīng)的時間序列由日志條目中的時間戳組成。對于時間序列ST={t1,t2,…,tn},普遍采用的處理方式為取兩個相鄰事件的時間差,但是系統(tǒng)事件發(fā)生頻繁,相鄰事件間的時間差過小。如圖1 所示為OpenStack 某次正常部署下時延的分布情況,當(dāng)k=1,即取兩個相鄰事件的時間差時,多數(shù)時延小于0.001 s,不利于模型訓(xùn)練和預(yù)測以及時延異常的檢測。因此本文采用間隔采樣的方式生成新的時延序列,采樣的間隔為k,取事件序列中事件ei發(fā)生時間與事件ei-k發(fā)生時間的時間間隔,當(dāng)i-k<0 時,采用zero padding 生成時延序列ST'={0,0,…,ti-ti-k,…,tn-tn-k}。

        如圖1 所示,當(dāng)采用間隔采樣后,相較于相鄰采樣,當(dāng)k=5 時,處于0~0.001 s 內(nèi)的時延大幅減少,多數(shù)時延處于0.001~0.01 s 的區(qū)間內(nèi)。進(jìn)一步擴大間隔采樣值,即k=10時,時延繼續(xù)增大,位于0.01~0.04 s 區(qū)間的數(shù)量明顯增多??赏ㄟ^間隔采樣的方式減小短時延對異常檢測帶來的影響。

        圖1 不同k值下時延分布Fig.1 Time delay distribution with different k values

        k值的選取通過事件發(fā)生處時延集合的均值來確定,時間是與事件相關(guān)的,不同的事件流程可能導(dǎo)致不同的時延,假設(shè)每個事件Ei(i=1,2,…,m)在其發(fā)生位置處對應(yīng)的時延集合符合正態(tài)分布,其均值和標(biāo)準(zhǔn)差分別為MEi和SEi。如圖2 所示的序列生成過程中,展現(xiàn)了事件E5的時延集合生成。為了保證所有事件對應(yīng)的時延處于一個較為合理的值,設(shè)定閾值tthreshold,當(dāng)k的取值為某個固定值時,應(yīng)滿足如下條件:

        圖2 序列生成示例Fig.2 Sequence generation example

        本文取tthreshold=0.01,其k=30,最后使用長度為h的滑動窗口劃分事件序列SE和時延序列ST'。

        3 基于時序卷積網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)模型

        3.1 基于時序卷積網(wǎng)絡(luò)的單任務(wù)學(xué)習(xí)模型

        循環(huán)神經(jīng)網(wǎng)絡(luò)因其能夠有效保留歷史信息,一直是序列建模的首選,但是因為循環(huán)神經(jīng)網(wǎng)絡(luò)需依次計算每一步狀態(tài),所以不適合并行。時序卷積網(wǎng)絡(luò)是Bai 等[24]在近年來使用卷積結(jié)構(gòu)解決時序任務(wù)研究的基礎(chǔ)上,提出的對時序任務(wù)有較好適用性的卷積網(wǎng)絡(luò)結(jié)構(gòu)。作為一種卷積結(jié)構(gòu)的序列模型,TCN 結(jié)構(gòu)更加簡單清晰并且能夠并行化,相較于LSTM 等循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),TCN可以通過堆疊卷積結(jié)構(gòu),捕捉到更加長遠(yuǎn)的依賴關(guān)系。

        時序卷積網(wǎng)絡(luò)的設(shè)計主要遵循以下兩個原則:1)網(wǎng)絡(luò)的輸出與輸入等長,卷積結(jié)構(gòu)使用一維全卷積,使得隱藏層的輸出與輸入等長,采用zero padding 來保持層與層之間的長度相同;2)網(wǎng)絡(luò)不會遺漏任何歷史信息,卷積層采用因果卷積[24]。

        TCN 使用了擴張卷積,擴張卷積可以有效地減小網(wǎng)絡(luò)的深度并使模型具有長期記憶,此外,增大擴張系數(shù)或卷積核大小可以擴大感受野,感受野Rf=d*z。對于輸入的一維序列:x∈Rn和卷積核f={0,1,…,z-1},序列中某個元素a擴張卷積運算F定義如下:

        其中:d是擴張系數(shù);z是卷積核大小。

        隨著輸入歷史序列長度的增加,TCN模型也在加深,為了避免TCN 模型出現(xiàn)梯度彌散,引入了殘差連接。如圖3 所示為殘差塊的結(jié)構(gòu),其中擴張系數(shù)d=1,卷積核大小z=2。輸入長度為3的序列x=(x0,x1,x2),殘差塊的輸出O如下:

        圖3 殘差塊結(jié)構(gòu)Fig.3 Structure of residual block

        其中F(x)為x經(jīng)過的一系列計算。

        本文將事件序列的路徑預(yù)測任務(wù)建模為多分類問題,將時間序列上的時延預(yù)測任務(wù)建模為回歸問題。對于輸入的歷史事件序列和時間序列,模型預(yù)測的是正常情況下的下一位置處應(yīng)該發(fā)生的事件和時間,模型的訓(xùn)練數(shù)據(jù)為系統(tǒng)多次正常運行產(chǎn)生的日志數(shù)據(jù)。單任務(wù)學(xué)習(xí)模型基于TCN 分別訓(xùn)練路徑異常檢測和時延異常檢測對應(yīng)的模型。

        單任務(wù)的路徑預(yù)測任務(wù)中,給定窗口長度h,對于長度h的一維事件子序列we={er-h,…,er-2,er-1},采用常用的Word2Vec 方法,經(jīng)過詞嵌入后將每個事件映射為一個固定長度H的一維向量,詞嵌入層輸出維度為h×H的特征he。he為TCN 的輸入,TCN 的輸出通過一個激活函數(shù)為softmax 的全連接層后,輸出每個事件Ei∈E(i=1,2,…,m)在下個位置r處發(fā)生的概率分布P(er|we)={E1:p1,E2:p2,…,En:pn}。損失函數(shù)為交叉熵函數(shù)L1:

        其中:yi為事件Ei的標(biāo)簽;pi為事件Ei的概率。

        單任務(wù)的時延預(yù)測任務(wù)中,TCN 的輸入為長度h的時間子序列wt=TCN 的輸出通過一個激活函數(shù)為linear 的全連接層后,輸出下個位置r處的時延大小損失函數(shù)為均方誤差函數(shù)L2:

        3.2 多任務(wù)學(xué)習(xí)模型

        本文從事件和時間兩個維度檢測系統(tǒng)異常,即路徑異常和時延異常。利用3.1 節(jié)中提出的時序卷積網(wǎng)絡(luò),可以分別為路徑異常和時延異常兩個任務(wù)構(gòu)建兩個單獨的學(xué)習(xí)模型,從而完成相應(yīng)的異常檢測。為路徑異?;驎r延異常單獨構(gòu)建學(xué)習(xí)模型忽略了兩種異常直接的關(guān)聯(lián)關(guān)系,例如不同事件對于事件直接時延的影響,或是不同時延對于事件預(yù)測的判斷,從而不能取得較好的異常檢測效果。

        多任務(wù)學(xué)習(xí)[25]通過學(xué)習(xí)任務(wù)之間的共有特征,提高了學(xué)習(xí)模型的表現(xiàn)。Long 等[26]先通過共享卷積層,然后在特定任務(wù)層中設(shè)定張量的正態(tài)先驗,學(xué)習(xí)多個任務(wù)之間的關(guān)系。Misra等[27]在并行的兩個任務(wù)之間設(shè)計了十字繡單元,通過正則化模型參數(shù)距離的相似度,來約束各個任務(wù)模型參數(shù)的相似度,從而控制任務(wù)之間的共享程度。

        本文考慮到日志類型的事件ID 和日志發(fā)生時間的時間戳之間的相關(guān)性,提出利用多任務(wù)學(xué)習(xí)同時解決路徑異常和時延異常的檢測,設(shè)計了融合的多任務(wù)時序卷積網(wǎng)絡(luò),通過共享深度神經(jīng)網(wǎng)絡(luò)隱藏層的參數(shù),不僅捕捉不同種類異常之間的關(guān)聯(lián)關(guān)系,提升了異常的檢測效果,還降低了模型的復(fù)雜度。更優(yōu)的是,共享參數(shù)的多任務(wù)融合的時序卷積網(wǎng)絡(luò)為不同種類的異常檢測引入了噪聲,提高了模型的泛化能力,進(jìn)一步提高了異常的檢測效果。

        本文提出的多任務(wù)融合的時序卷積網(wǎng)絡(luò)中包括兩個異常檢測的學(xué)習(xí)任務(wù):路徑預(yù)測任務(wù)和時延預(yù)測任務(wù),模型在時序卷積網(wǎng)絡(luò)的淺層部分共享路徑預(yù)測任務(wù)和時延預(yù)測任務(wù)的隱藏層參數(shù),再分叉成兩個各自的特定任務(wù)層?;赥CN 的多任務(wù)學(xué)習(xí)示例模型如圖4(a)所示,該多任務(wù)學(xué)習(xí)模型主要由輸入層、時序卷積網(wǎng)絡(luò)(包括共享層和特定任務(wù)層)和輸出層組成。時序卷積網(wǎng)絡(luò)的詳細(xì)示例如圖4(b)所示,由共享層和任務(wù)層組成,共享層中擴張系數(shù)d=1,2時殘差塊共享參數(shù),任務(wù)層中擴張系數(shù)d=4,8,…時為兩個任務(wù)各自的殘差塊。給定窗口長度h,多任務(wù)模型路徑預(yù)測任務(wù)和時延預(yù)測任務(wù)的輸入同單任務(wù)學(xué)習(xí)模型。在時序卷積網(wǎng)絡(luò)層中,將事件序列經(jīng)過詞嵌入層后輸出的特征he和時間序列wt進(jìn)行特征聯(lián)合(concatenate)后的特征X=(x0,x1,…,xn)輸入共享層中,特征X的維度為h×(H+1),時序卷積網(wǎng)絡(luò)的激活函數(shù)為ReLU 函數(shù),定義共享層中有k1個殘差塊,hsi(i≤ki)為特征X經(jīng)過共享層中第i個殘差塊的輸出,式(6)表示共享層第一個殘差塊的輸出hs1:

        圖4 基于TCN的多任務(wù)學(xué)習(xí)模型Fig.4 Multi-task learning model based on TCN

        損失函數(shù)中的λ和1-λ分別為交叉熵?fù)p失函數(shù)和均方誤差損失的權(quán)重。由于不同的任務(wù)之間的損失尺度不同,所以通過設(shè)置不同的權(quán)重來平衡各個任務(wù)的訓(xùn)練,以保證模型在所有的任務(wù)上都能取得較好的效果。

        4 異常檢測

        4.1 路徑異常檢測

        本文將路徑預(yù)測任務(wù)建模為多分類任務(wù),對于歷史序列we={er-h,…,er-2,er-1}和實際發(fā)生的事件er,模型預(yù)測的是下一個位置r處每一個事件發(fā)生的概率,如果實際發(fā)生的事件er在模型預(yù)測的高概率事件中,則該位置處正常。本文的路徑異常判斷方法如下:設(shè)立概率閾值Pthreshold,如果er預(yù)測的概率大于該閾值,則正常;否則異常。

        4.2 時延異常檢測

        將時延預(yù)測任務(wù)建模為回歸任務(wù),對于歷史序列wt=和實際的時延,模型預(yù)測的是下一個位置r處的時延大小。本文認(rèn)為事件和時間是相關(guān)的,不同的事件可能會導(dǎo)致不同的時間間隔。

        具體示例如圖5 所示,在利用模型進(jìn)行事件預(yù)測時,輸入固定長度的事件序列{A,B,C,D}和其對應(yīng)的時延序列,假設(shè)為{0.1 s,0.2 s,0.3 s,0.4 s},模型預(yù)測的高概率事件可能有多個,比如事件E 和事件F 都有可能發(fā)生,事件E 發(fā)生時對應(yīng)的時延大小為t1,事件F 發(fā)生時對應(yīng)的時延大小為t2,而模型預(yù)測的值為單一的固定值t3,因此單一地依靠模型的預(yù)測值來判斷時延異常是不準(zhǔn)確的。

        圖5 模型的時延預(yù)測Fig.5 Time delay prediction of model

        本文對于時延異常的檢測主要分以下兩步:1)將訓(xùn)練集中每個時間步的時延的實際值與模型的預(yù)測值的絕對誤差擬合為高斯分布,可以得到正常情況下誤差的均值M和標(biāo)準(zhǔn)差σ,輸入長度為h的時間子序列wt=如果實際的時延大小與模型的預(yù)測值tpre在上述高斯分布的置信區(qū)間內(nèi),則是正常的;否則進(jìn)行下一步。即:

        2)判斷實際的時延大小是否處于該時間步的事件er時延的高斯分布的置信區(qū)間內(nèi),即:

        在本文的異常檢測的流程中,時延異常檢測依賴于路徑異常檢測,在路徑檢測正常后才進(jìn)行時延異常檢測,路徑和時延只要有一個為異常,則認(rèn)為當(dāng)前位置發(fā)生了異常。

        5 實驗與結(jié)果分析

        5.1 數(shù)據(jù)及配置

        實驗日志數(shù)據(jù)為OpenStack 云平臺日志數(shù)據(jù)集:OpenStack 是一種基于PASS 的云計算平臺,從OpenStack 收集的數(shù)據(jù)集包括虛擬機部署過程中cf-pdman 組件和pdm-cli 組件的生成日志,考慮到系統(tǒng)內(nèi)的故障也有可能是跨組件或者跨服務(wù)的,單獨對每個組件進(jìn)行異常檢測會遺漏這些異常。因此合并各個組件的日志文件,并按時間重新排序。數(shù)據(jù)集一共包括125 次部署,其中包括16 個虛擬機部署過程中的異常部署(包括缺失關(guān)鍵日志和跳過下一條日志等異常)。日志是由三臺計算機用分布式的方式收集,這些部署的持續(xù)時間大約為3 d。每次部署的日志條目數(shù)量為747~109 493 不等,所有部署共包括771 125 條日志。日志解析后的事件模板經(jīng)過層次聚類后共包含819 個事件。將正常部署的日志數(shù)據(jù)經(jīng)過數(shù)據(jù)處理后提取出事件和時間序列,經(jīng)過定長的滑動窗口劃分打亂后,按6∶2∶2 的比例劃分為訓(xùn)練集、驗證集和檢測集。本文將異常部署的日志數(shù)據(jù)也加入檢測集以測試對于異常部署檢測的效果。

        如圖6(a)所示為正常部署的日志數(shù)據(jù)中事件發(fā)生次數(shù)的分布,可以發(fā)現(xiàn)多數(shù)事件發(fā)生次數(shù)較低,少數(shù)事件以較高次數(shù)發(fā)生,這表明模型預(yù)測的發(fā)生概率較小的事件也有可能發(fā)生。如圖6(b)所示為OpenStack 某次正常部署過程中事件發(fā)生的頻次,每隔60 s統(tǒng)計發(fā)生的事件數(shù),可以發(fā)現(xiàn)事件發(fā)生的頻繁程度和程序運行的過程相關(guān)。

        圖6 正常部署中有關(guān)事件統(tǒng)計Fig.6 Statistics of related events in normal deployment

        5.2 參數(shù)選擇及評價指標(biāo)

        這里介紹本文的多任務(wù)TCN 模型和異常檢測過程中一些較為重要的參數(shù)設(shè)置。在模型參數(shù)方面,模型的輸入序列長度為40,設(shè)置損失函數(shù)中的參數(shù)λ=0.7,用以調(diào)節(jié)兩個損失函數(shù)的尺度。受日志解析和較長日志參數(shù)的影響,盡管進(jìn)行了層次聚類,還是有部分的事件模板是相似的。模型預(yù)測的高概率事件和實際發(fā)生的事件er不是同一個事件,但是兩個事件對應(yīng)的事件模板很相似,因此如果事件er不在預(yù)測的高概率事件中,則計算事件er和高概率事件的事件模板的相似度,并設(shè)立閾值Sthreshold,如果大于Sthreshold,認(rèn)為這兩個事件是一個事件,判斷其為正常。模板相似度Sthreshold要保證模型在檢測出異常的同時,避免將正常檢測為異常,由于事件模板經(jīng)過了層次聚類,所以模板相似度Sthreshold需要設(shè)置為較小的值,本文的實驗中設(shè)置為0.6。

        用于對比的方法如下:DeepLog 是基于LSTM 的日志異常檢測模型,該模型利用從日志流中挖掘出事件序列和日志參數(shù)序列分別訓(xùn)練對應(yīng)的LSTM 模型,預(yù)測發(fā)生在系統(tǒng)中的路徑異常和參數(shù)異常;PCA 統(tǒng)計定長的窗口內(nèi)每個事件模板出現(xiàn)的次數(shù)作為一個特征向量,由此構(gòu)造出特征矩陣,使用PCA分析在數(shù)量上有異于其他集合的異常集合,通過統(tǒng)計檢驗確定異常的日志序列。本文以DeepLog為基線方法進(jìn)行比較。

        本文所采用的評價指標(biāo)主要有如下幾種:

        1)準(zhǔn)確率(Accuracy)表示被正確檢測出的樣本占總樣本的比例,計算式為:

        2)精度(Precision,P)表示實際為異常的樣本占檢測出異常的樣本的比例,計算式為:

        3)召回率(Recall,R)表示正確檢測出異常的樣本占異常樣本的比例,計算式為:

        4)F1 值(F1_score)為精度和召回率的調(diào)和平均數(shù),用于評價異常檢測的整體性能:

        其中:Ps為異常樣本數(shù);Ns為正常樣本數(shù);TP為被正確檢測為異常的樣本數(shù);TN表示被正確檢測為正常的樣本數(shù);FP表示被錯誤檢測為異常的樣本數(shù);FN表示被錯誤檢測為正常的樣本數(shù)。

        5.3 結(jié)果分析

        如表1 所示為OpenStack 數(shù)據(jù)集中檢測出的路徑異常和時延異常示例,通過異常位置處實際輸出的原始日志和模型的預(yù)測信息,可以大致分析出異常發(fā)生的原因。以pdm-cli組件中檢測出的異常為例:表1 中的第一條路徑異常示例可以結(jié)合模型預(yù)測的高概率事件模板,進(jìn)一步分析得出其異常原因為相關(guān)部署初始化問題;在表1 中的第三條時延異常示例中,模型預(yù)測其時間間隔在正常情況下應(yīng)為200 s 左右,而實際的時間間隔為260 s,結(jié)合實際輸出的日志可以進(jìn)一步發(fā)現(xiàn)導(dǎo)致時延異常的原因為http 請求失敗。通過對比正常執(zhí)行和異常位置處的相關(guān)信息可以進(jìn)一步深入分析導(dǎo)致異常的原因。

        表1 OpenStack數(shù)據(jù)集中檢測出的異常示例Tab.1 Examples of anomalies detected in OpenStack dataset

        如表2 所示為PCA、DeepLog、單任務(wù)的TCN 模型和基于TCN 的多任務(wù)學(xué)習(xí)模型在OpenStack 數(shù)據(jù)集上的異常檢測效果。從Recall 中可以發(fā)現(xiàn),單任務(wù)的TCN 模型和基于TCN 的多任務(wù)學(xué)習(xí)模型都可以檢測出所有的異常部署。從Precision可以看出,為了確保異常部署能夠被檢測出,基于深度學(xué)習(xí)的異常檢測方法都不同程度地將正常部署劃分為異常的,DeepLog 尤其容易將正常的部署誤檢為異常。PCA 雖然避免了這一情況的發(fā)生,但是其異常檢測的效果較差。本文的基于TCN 的多任務(wù)學(xué)習(xí)模型取得了較好的異常檢測效果,其異常檢測準(zhǔn)確率(Accuracy)相較其他對比模型至少提升了7.7個百分點。

        表2 OpenStack數(shù)據(jù)集上的異常檢測效果Tab.2 Anomaly detection effects on OpenStack dataset

        為了評價多任務(wù)TCN 模型相較于單任務(wù)TCN 模型的優(yōu)勢,下面將比較基于TCN 的多任務(wù)學(xué)習(xí)模型和單任務(wù)學(xué)習(xí)模型在路徑異常檢測和時間預(yù)測任務(wù)上的效果。如表3 所示為路徑異常檢測中不同概率閾值Pthreshold對于兩種模型異常檢測準(zhǔn)確率的影響。在系統(tǒng)正常運行過程中,有部分事件發(fā)生次數(shù)很少,這在模型預(yù)測中表現(xiàn)為相關(guān)事件的概率較小,因此在路徑異常的檢測中概率閾值的設(shè)置尤為重要,較大的概率閾值會導(dǎo)致正常的部署被誤判成異常,當(dāng)Pthreshold=10-6時,異常檢測的準(zhǔn)確率最高,多任務(wù)TCN 模型的準(zhǔn)確率高于單任務(wù)TCN模型,因此本文的路徑異常檢測中Pthreshold設(shè)置為10-6。

        表3 概率閾值對異常檢測準(zhǔn)確率的影響Tab.3 Influence of probability threshold on anomaly detection accuracy

        為了對比單任務(wù)TCN 模型和多任務(wù)TCN 模型在路徑預(yù)測任務(wù)上的準(zhǔn)確性,對于某種類型的事件Ei,統(tǒng)計并計算下個位置處實際發(fā)生事件為Ei時兩種模型預(yù)測事件Ei發(fā)生的概率的均值。如圖7所示為多任務(wù)TCN 模型和單任務(wù)TCN 模型在正常的測試樣本中對于每個事件預(yù)測概率均值的對比。從圖7 中可以發(fā)現(xiàn),較多事件的多任務(wù)TCN 模型的預(yù)測概率均值大于單任務(wù)TCN 模型的預(yù)測概率均值,檢測的正常樣本中共包含752 個事件,其中533 個事件的多任務(wù)TCN 模型的預(yù)測概率均值大于單任務(wù)TCN 模型的預(yù)測概率均值。多任務(wù)模型在預(yù)測下個位置處發(fā)生的事件時,正常的事件有更高的概率,多任務(wù)學(xué)習(xí)模型預(yù)測更為準(zhǔn)確。

        圖7 事件預(yù)測概率值對比Fig.7 Comparison of event prediction probability

        圖8為多任務(wù)TCN 模型和單任務(wù)TCN 模型在時延預(yù)測任務(wù)上的對比,數(shù)據(jù)為檢測集中的正常樣本,計算了每個事件模板發(fā)生位置處對應(yīng)時延預(yù)測值和實際值的平均誤差。

        圖8 時延預(yù)測誤差對比Fig.8 Comparison of time delay prediction error

        從圖8 中可以看出,單任務(wù)TCN 模型在較小的時延數(shù)值預(yù)測中要優(yōu)于多任務(wù)TCN 模型,但是整體上多任務(wù)TCN 模型的時延平均誤差區(qū)間比單任務(wù)模型更小,總體上多任務(wù)模型的時延預(yù)測效果要優(yōu)于單任務(wù)模型。

        6 結(jié)語

        針對云計算工作流中存在的路徑異常和時延異常,本文提出了一種基于日志的異常檢測方法。該方法將路徑異常檢測建模為多分類任務(wù),將時延異常檢測建模為回歸任務(wù),構(gòu)建并訓(xùn)練了一種基于時序卷積網(wǎng)絡(luò)(TCN)的多任務(wù)學(xué)習(xí)模型用于日志的異常檢測,通過事件模板生成從日志流中提取事件序列,通過間隔采樣的方法從日志流中提取時間序列?;赥CN 的多任務(wù)學(xué)習(xí)模型通過共享TCN 的淺層部分,促進(jìn)各自任務(wù)的學(xué)習(xí)。實驗結(jié)果表明該方法在異常檢測方面取得了較好的效果。

        接下來進(jìn)一步的工作如下:首先,所提模型中損失函數(shù)參數(shù)權(quán)重的優(yōu)化較困難,下一步工作需要設(shè)計相關(guān)方法以代替設(shè)置損失函數(shù)權(quán)重。其次,本文時延異常檢測方法對數(shù)值較小的時延并不敏感,如何避免將正常劃分為異常以提高異常檢測的精度,仍是未來需要進(jìn)一步解決的問題。

        猜你喜歡
        多任務(wù)日志時延
        一名老黨員的工作日志
        華人時刊(2021年13期)2021-11-27 09:19:02
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        基于中心化自動加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
        基于GCC-nearest時延估計的室內(nèi)聲源定位
        電子制作(2019年23期)2019-02-23 13:21:12
        基于改進(jìn)二次相關(guān)算法的TDOA時延估計
        游學(xué)日志
        基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
        FRFT在水聲信道時延頻移聯(lián)合估計中的應(yīng)用
        電測與儀表(2016年5期)2016-04-22 01:13:46
        基于分段CEEMD降噪的時延估計研究
        大伊香蕉在线精品视频75| 婷婷久久亚洲中文字幕| 国产一区二区黄色的网站| 亚洲av无码精品色午夜app| 精品国内自产拍在线观看| 免费国产99久久久香蕉| 日韩av一区二区在线观看| 国产一区二区三区中文在线| 午夜福利院电影| 手机看片福利盒子久久青| 亚洲成人黄色av在线观看| 一本大道道久久综合av| 挺进朋友人妻雪白的身体韩国电影 | 亚洲av成人噜噜无码网站| 日本黄页网站免费大全| 无码国产精品一区二区免费式芒果| 99久久婷婷国产精品网| 日本少妇高潮喷水xxxxxxx| 1000部精品久久久久久久久| 亚洲av综合日韩精品久久久| 人妖一区二区三区视频| 国产av无码专区亚洲av毛网站| 欧美视频在线观看一区二区| 亚洲传媒av一区二区三区| 大陆老熟女自拍自偷露脸| 久久亚洲精品无码va白人极品| 亚洲AV秘 片一区二区三| 国产av大片久久中文字幕| 人妻丰满熟妇aⅴ无码| 亚洲av无码av制服丝袜在线| 国产日韩欧美视频成人| 手机在线免费观看av不卡网站| 亚洲中文字幕无码av| 日本成人久久| 精品国产污黄网站在线观看| 久久99亚洲精品久久久久| 亚洲av无码久久寂寞少妇| 国产精品天干天干在线观蜜臀| 久久久精品亚洲一区二区国产av | 无码人妻品一区二区三区精99 | 亚洲精品国产av成人精品|