網(wǎng)上有很多關(guān)于pos機服務(wù)器異常,基于運維日志異常檢測 AIOps 落地實(shí)踐的知識,也有很多人為大家解答關(guān)于pos機服務(wù)器異常的問(wèn)題,今天pos機之家(www.xjcwpx.cn)為大家整理了關(guān)于這方面的知識,讓我們一起來(lái)看下吧!
本文目錄一覽:
pos機服務(wù)器異常
作者:京東科技 張憲波、張靜、李東江
基于 NLP 技術(shù)對運維日志聚類(lèi),從日志角度快速發(fā)現線(xiàn)上業(yè)務(wù)問(wèn)題
日志在 IT 行業(yè)中被廣泛使用,日志的異常檢測對于識別系統的運行狀態(tài)至關(guān)重要。解決這一問(wèn)題的傳統方法需要復雜的基于規則的有監督方法和大量的人工時(shí)間成本。我們提出了一種基于自然語(yǔ)言處理技術(shù)運維日志異常檢測模型。為了提高日志模板向量的質(zhì)量,我們改進(jìn)特征提取,模型中使用了詞性(PoS)和命名實(shí)體識別(NER)技術(shù),減少了規則的參與,利用 NER 的權重向量對模板矢量進(jìn)行了修改,分析日志模板中每個(gè)詞的 PoS 屬性,從而減少了人工標注成本,有助于更好地進(jìn)行權重分配。為了修改模板向量,引入了對日志模板標記權重的方法,并利用深度神經(jīng)網(wǎng)絡(luò ) (DNN) 實(shí)現了基于模板修正向量的最終檢測。我們的模型在三個(gè)數據集上進(jìn)行了有效性測試,并與兩個(gè)最先進(jìn)的模型進(jìn)行了比較,評估結果表明,我們的模型具有更高的準確度。
日志是記錄操作系統等 IT 領(lǐng)域中的操作狀態(tài)的主要方法之一,是識別系統是否處于健康狀態(tài)的重要資源。因此,對日志做出準確的異常檢測非常重要。日志異常一般有三種類(lèi)型,即異常個(gè)體日志、異常日志序列和異常日志定量關(guān)系。我們主要是識別異常個(gè)體日志,即包含異常信息的日志。
一般來(lái)說(shuō),日志的異常檢測包括三個(gè)步驟:日志解析、特征提取和異常檢測。
1)解析工具提取的模板是文本數據,應將其轉換為數字數據,以便于輸入到模型中。為此,特征提取對于獲得模板的數字表示是必要的。
2)在模板特征提取方面,業(yè)界提出了多種方法來(lái)完成這一任務(wù)。獨熱編碼是最早和最簡(jiǎn)單的方法之一,可以輕松地將文本模板轉換為便于處理的數字表示,但是獨熱編碼是一種效率較低的編碼方法,它占用了太多的儲存空間來(lái)形成一個(gè)零矢量,而且在使用獨熱編碼時(shí),忽略了日志模板的語(yǔ)義信息。除了這種方便的編碼方法外,越來(lái)越多的研究人員應用自然語(yǔ)言處理 (NLP) 技術(shù)來(lái)實(shí)現文本的數字轉換,其中包括詞袋,word2vec 等方法。雖然上述方法可以實(shí)現從文本數據到數字數據的轉換,但在日志異常檢測方面仍然存在一些缺陷。詞袋和 word2vec 考慮到模板的語(yǔ)義信息,可以有效地獲得單詞向量,但是它們缺乏考慮模板中出現的每個(gè)模版詞的重要性調節能力。此外,深度神經(jīng)網(wǎng)絡(luò ) (DNN) 也被用于模板的特征提取。
我們的模型主要改進(jìn)特征提取,同時(shí)考慮每個(gè)標記的模版詞語(yǔ)義信息和權重分配,因為標記結果對最終檢測的重要性不同。我們利用兩種自然語(yǔ)言處理技術(shù)即 PoS 和命名實(shí)體識別 (NER),通過(guò)以下步驟實(shí)現了模板特征的提取。
具體來(lái)說(shuō),首先通過(guò) FT-Tree 將原始日志消息解析為日志模板,然后通過(guò) PoS 工具對模板進(jìn)行處理,獲得模板中每個(gè)詞的 PoS 屬性,用于權重向量計算。同時(shí),通過(guò) word2vec 將模板中的標記向量化為初始模板向量,并利用權值向量對初始模板向量進(jìn)行進(jìn)一步修改,那些重要的模版詞的 PoS 屬性將有助于模型更好地理解日志含義。對于標記完 PoS 屬性的模版詞,詞對異常信息識別的重要性是不同的,我們使用 NER 在模版的 PoS 屬性中找出重要性高的模版詞,并且被 NER 識別為重要的模版詞將獲得更大的權重。然后,將初始模板向量乘以這個(gè)權重向量,生成一個(gè)復合模板向量,輸入到 DNN 模型中,得到最終的異常檢測結果。為了減少對日志解析的人力投入,并為權重計算做準備,我們采用了 PoS 分析方法,在不引入模板提取規則的情況下,對每個(gè)模板詞都標記一個(gè) PoS 屬性。
解析模板的特征提取過(guò)程是異常檢測的一個(gè)重要步驟,特征提取的主要目的是將文本格式的模板轉換為數字向量,業(yè)界提出了各種模板特征提取方法:
One-hot 編碼:在 DeepLog 中,來(lái)自一組 k 模板 ti,i∈[0,k)的每個(gè)輸入日志模板都被編碼為一個(gè) One-hot 編碼。在這種情況下,對于日志的重要信息 ti 構造了一個(gè)稀疏的 k 維向量 V = [ v0,v1,... ,vk-1] ,并且滿(mǎn)足 j 不等于 i, j∈[0,k),使得對于所有 vi= 1 和 vj = 0。
** 自然語(yǔ)言處理 (NLP):** 為了提取日志模板的語(yǔ)義信息并將其轉換為高維向量,LogRobust 利用現成的 Fast-Text 算法從英語(yǔ)詞匯中提取語(yǔ)義信息,能夠有效地捕捉自然語(yǔ)言中詞之間的內在關(guān)系 (即語(yǔ)義相似性) ,并將每個(gè)詞映射到一個(gè) k 維向量。使用 NLP 技術(shù)的各種模型也被業(yè)界大部分人使用,如 word2vec 和 bag-of-words 。
** 深度神經(jīng)網(wǎng)絡(luò )(DNN):** 與使用 word2vec 或 Fast-Text 等細粒度單元的自然語(yǔ)言處理 (NLP) 不同,LogCNN 生成基于 29x128codebook 的日志嵌入,該 codebook 是一個(gè)可訓練的層,在整個(gè)訓練過(guò)程中使用梯度下降進(jìn)行優(yōu)化。
**Template2Vec:** 是一種新方法,基于同義詞和反義詞來(lái)有效地表示模板中的詞。在 LogClass 中,將經(jīng)典的加權方法 TF-IDF 改進(jìn)為 TF-ILF,用逆定位頻率代替逆文檔頻率,實(shí)現了模板的特征構造。
3)一段原始日志消息是一個(gè)半結構化的文本,比如一個(gè)從在線(xiàn)支付應用程序收集的錯誤日志讀取為: HttpUtil-request 連接失敗,Read timeout at jave.net。它通常由兩部分組成,變量和常量 (也稱(chēng)為模板)。對于識別個(gè)體日志的異常檢測,目的是從原始日志解析的模板中識別是否存在異常信息。我們的模型使用 PoS 分析以及 NER 技術(shù)來(lái)進(jìn)行更精確和省力的日志異常檢測。PoS 有助于過(guò)濾標記有不必要的 PoS 屬性的模版詞,NER 的目標是將重要性分配給所有標記為重要的 PoS 屬性的模版詞。然后通過(guò)模板向量和權向量的乘積得到復合模板向量。
我們的日志異常檢測模型包括六個(gè)步驟,即模板解析、 PoS 分析、初始向量構造、基于 NER 的權重計算、復合向量和最終檢測。檢測的整個(gè)過(guò)程如圖 1 所示:
第一步:模板解析
初始日志是半結構化的文本,它們包含一些不必要的信息,可能會(huì )造成混亂或阻礙日志檢測。因此,需要預處理來(lái)省略變量,比如一些數字或符號,并提取常量,即模板。以前面提到的日志消息為例,原始日志 HttpUtil-request 連接 [wx/v1/pay/prepay] 的模板失敗,Read timeout at jave.net??梢蕴崛椋?HttpUtil 請求連接 * 失敗讀取時(shí)間為 * 。我們使用簡(jiǎn)單而有效的方法 FT-Tree 來(lái)實(shí)現日志解析,我們沒(méi)有引入復雜的基于規則的規則來(lái)去除那些不太重要的標記,比如停止詞。
第二步:PoS 分析
上一步的模版解析結果只有英語(yǔ)單詞、短語(yǔ)和一些非母語(yǔ)單詞保留在解析好的模板中,這些模版詞具有各種 PoS 屬性,例如 VB 和 NN。根據我們對大量日志模板的觀(guān)察,一些 PoS 屬性對于模型理解模板所傳達的意義很重要,而其他屬性可以忽略。如圖 3 所示,解析模板中的單詞 “at” 在理論上是不必要的,相應的 PoS 屬性 “ IN” 也是不必要的,即使去掉 IN 的標記,我們仍然可以判斷模板是否正常。因此,在我們得到了 PoS 向量之后,我們可以通過(guò)去掉那些具有特定 PoS 屬性的模版詞來(lái)簡(jiǎn)化模板。剩余的模版詞對于模型更好地理解模板內容非常重要。
第三步:初始模板向量構造
在獲得 PoS 矢量的同時(shí),模板也被編碼成數字向量。為了考慮模板的語(yǔ)義信息,在模型中使用 word2vec 來(lái)構造模板的初始向量。該初始向量將與下一步得到的權重向量相乘,得到模板的復合優(yōu)化表示。
第四步: 權重分析
首先對模板中的模版詞進(jìn)行 PoS 分析處理,剔除無(wú)意義的模版詞。至于其余的模版詞,有些是關(guān)鍵的,用于傳達基本信息,如服務(wù)器操作、健康狀態(tài)等。其他的可能是不太重要的信息,比如動(dòng)作的對象、警告級別等等。為了加大模型對這些重要模版詞的學(xué)習力度,我們構造了一個(gè)權重向量來(lái)突出這些重要的模版詞。為此,我們采用了 NER 技術(shù),通過(guò)輸入已定義的重要實(shí)體,學(xué)習挑選標記為重要實(shí)體的所有模版詞。該過(guò)程如圖所示:
CRF 是 NER 通常使用的工具,它也被用于我們的模型識別模版詞的重要性。也就是說(shuō),通過(guò)向模型提供標記為重要的模版詞,模型可以學(xué)習識別那些未標注的日志的重要的模版詞。一旦模板中的模版詞被 CRF 識別出來(lái),相應的位置就會(huì )賦予一個(gè)權重值 (2.0)。因此,我們得到一個(gè)權向量 W。
第五步:復合向量
在獲得權重向量 W 之后,通過(guò)將初始向量 V’乘以權重向量 W,可以得到一個(gè)表示模板的復合優(yōu)化向量 V。重要的模版詞分配更大權重,而其他的模版詞分配更小的。
第六步:異常檢測
將第五步得到的復合矢量 v 輸入到最終全連接層中,以便進(jìn)行異常檢測。完全連通層的輸出分別為 0 或 1,表示正?;虍惓?。
? 模型評估
我們通過(guò)實(shí)驗驗證了該模型對日志異常檢測的改進(jìn)效果。采用了兩個(gè)公共數據集,以及一套我們內部數據集,來(lái)驗證我們模型的實(shí)用性。我們將自己的結果與業(yè)界針對日志異常檢測提出的兩個(gè) Deeplog 和 LogClass 模型進(jìn)行了比較。
CANet 的框架是用 PyTorch 構建的,我們在 35 個(gè)訓練周期中選擇新加坡隨機梯度下降 (SGD) 作為優(yōu)化器。學(xué)習速度設定為 2e4。所有的超參數都是從頭開(kāi)始訓練的。
**(1)數據集:** 我們選取了兩套公共集和一套公司內部數據集進(jìn)行模型評估,BGL 和 HDFS 都是用于日志分析的兩個(gè)常用公共數據集:**HDFS:是從運行基于 Hadoop 的作業(yè)的 200 多個(gè) Amazon EC2 節點(diǎn)收集的。它由 11,175,629 條原始日志消息組成,16,838 條被標記為 “異?!?/strong>。BGL:** 收集自 BlueGene/L 超級計算機系統 ,包含 4,747,963 條原始日志消息,其中 348,469 條是異常日志。每條日志消息都被手動(dòng)標記為異?;蛘哒?。** 數據集 A:** 是從我們公司內部收集來(lái)進(jìn)行實(shí)際驗證的數據集。它包含 915,577 條原始日志消息和 210,172 條手動(dòng)標記的異常日志。
**(2)base 模型:** 我們將自己的模型在三個(gè)數據集上,與兩個(gè)業(yè)界最先進(jìn)的模型 (DeepLog 和 LogClass) 進(jìn)行比較:DeepLog: 是一個(gè)基于深度神經(jīng)網(wǎng)絡(luò )的模型,利用長(cháng)短期記憶 (LSTM) 來(lái)實(shí)現檢測。DeepLog 采用一次性編碼作為模板向量化方法。LogClass: LogClass 提出了一種新的方法 —— 逆定位頻率 (ILF) ,在特征構造中對日志文字進(jìn)行加權。這種新的加權方法不同于現有的反文檔頻率 (IDF) 加權方法。
**(3)模型評估結果:** 我們從 Precision、Recall 和 F1-score 三個(gè)方面評估兩個(gè) base 模型和我們的模型的異常檢測效果,在 HDFS 數據集上,我們的模型獲得了最高的 F1 得分 0.981,此外,我們的模型在召回方面也表現最好。LogClass 在 Precision 上取得了最好的成績(jì),比我們的稍微高一點(diǎn)。在第二套數據集 BGL 上,我們的模型在召回率 Recall (0.991) 和 F1-score (0.986) 方面表現最好,但在 Precision 上略低于 LogClass。在第三套數據集 A 上三個(gè)模型的性能,我們的模型實(shí)現了最佳性能,其次是 LogClass。
在所有的數據集中,我們的模型具有最好的 F1 得分和最高的召回率,這意味著(zhù)我們的模型造成的不確定性更小。
?Natural Language Processing-based Model for Log Anomaly Detection. SEAI.
?**ieeexplore 檢索:**https://ieeexplore.ieee.org/abstract/document/9680175
?Themis 智能運維平臺智能文本分析功能視圖:(http://jdtops.jd.com/)
以上就是關(guān)于pos機服務(wù)器異常,基于運維日志異常檢測 AIOps 落地實(shí)踐的知識,后面我們會(huì )繼續為大家整理關(guān)于pos機服務(wù)器異常的知識,希望能夠幫助到大家!
