System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件、微服務的智能運維領域、文本分析領域和異常檢測領域,尤其是一種用于微服務系統的日志異常檢測方法。
技術介紹
1、微服務架構是一種開發軟件系統的方法,它將應用程序構建為松散耦合服務的集合。與單機架構相比,這種方法變得越來越流行,因為它可以實現更輕松的可擴展性、更快的開發周期以及改進的故障隔離。
2、當前的微服務架構由于其高度的分布式特性,造成系統結構復雜,異常情況頻發,難以快速準確地排查,因此,如何盡早地發現系統中的異常,在其升級為更嚴重的問題之前進行干預,是一個很重要的問題。
3、在微服務環境中,每個服務通常都會生成自己的一組日志,記錄各種事件、事務或錯誤。這些日志對于監控服務的運行狀況、調試問題和維護安全至關重要。?盡管日志作為理解系統行為的一種重要手段,但是由于微服務的復雜性,日志數據具有龐大和無序性的特征,使得從中檢測異常變得極具挑戰。
4、因此,如何從微服務系統中對龐大和繁雜的日志進行分析,對異常進行及時的檢測,是一個很有價值的問題。
技術實現思路
1、本專利技術的目的在于提供一種用于微服務系統的日志異常檢測方法,旨在解決現有技術中微服務系統趨于復雜,導致的日志異常情況繁多且難以排查的問題,提高對微服務進行異常發現和定位的效率和準確性,提供一種自動化的方式,盡可能地減少對領域知識的要求,從而降低系統運維的門檻,使得運維人員能夠更方便地保障系統正常運行。
2、實現本專利技術目的的具體技術方案是;
3
4、步驟s1:微服務日志模板解析;具體包括:
5、步驟s11:日志預處理;
6、步驟s12:創建初始日志組;
7、步驟s13:創建與更新雙向樹;
8、步驟s14:生成日志模板;
9、步驟s2:微服務日志向量表示;具體包括:
10、步驟s21:輸入日志框架預設的配置;
11、步驟s22:通過步驟s1得到的日志模板和步驟s21中的格式,從日志中提取出日志框架預設格式、模板編號和動態參數;
12、步驟s23:對步驟s22中提取得到的日志框架預設格式進行詞嵌入,生成日志框架預設格式向量;
13、步驟s24:將步驟s22中提取得到的模板編號轉化為one-hot編碼;
14、步驟s25:對步驟s22中提取得到的動態參數進行詞嵌入,生成日志動態參數向量;
15、步驟s26:將步驟s23、步驟s24和步驟s25中獲得的所有參數連接起來,作為日志向量的表示;
16、步驟s3:微服務日志向量異常檢測;具體包括:
17、步驟s31:對單條日志進行特征學習;
18、步驟s32:對多條日志的上下文關系進行學習;
19、步驟s33:利用步驟s31和步驟s32的學習結果進行異常檢測。
20、進一步,步驟s11所述日志預處理,具體包括:
21、步驟s111:用分隔符對英文詞語進行分詞;
22、步驟s112:用jieba模型對中文詞語進行分詞。
23、進一步,s12所述創建初始日志組,具體包括:
24、步驟s121:統計日志中詞語的出現頻率,將出現頻率相同的詞語合并為同一組,從而構建一張詞頻表;
25、步驟s122:根據所述的詞頻表,提取每條日志的最長共同子序列;
26、步驟s123:根據所述的每條日志的最長共同子序列,提取所有的詞語組合,作為日志模板的集合;
27、步驟s124:設置一個頻率閾值;
28、步驟s125:設置一個超參數權重;
29、步驟s126:將日志中詞語組合的最高頻率乘以s125中的權重來計算最終的權重,并與s124中的閾值進行比較,若最終的權重大于閾值,則將該詞語組合保留,否則,則將該詞語組合舍棄;
30、步驟s127:對于每條日志,從所有保留的詞語組合中只保留最長的詞語組合,并將所有最長詞語組合相同的日志分為一組,最終形成一個初始日志組。
31、進一步,步驟s13所述創建與更新雙向樹,具體包括:
32、步驟s131:對于每個初始日志組,以最長共同子序列為根節點,創建一棵雙向樹,將處于日志同一列位置的詞語放到樹中相同深度的位置;
33、步驟s132:對于每個初始日志組,將某個詞在某列中出現的最大頻率作為該列的代表頻率;
34、步驟s133:對于每個初始日志組對應的雙向樹,檢查初始日志組中每一列,如果該列的代表頻率比根節點對應的列的代表頻率更高,則將該代表頻率對應的詞語加入到雙向樹的父方向中;
35、步驟s134:對于每個初始日志組對應的雙向樹,檢查初始日志組中每一列,如果該列的代表頻率比根節點對應的列的代表頻率更低,則將該代表頻率對應的詞語加入到雙向樹的子方向中。
36、進一步,步驟s14所述生成日志模板,具體包括:
37、步驟?s141:對于每個初始日志組,在兩個方向的節點添加完成后,將初始日志組中的每個詞語映射為樹中的一個節點;
38、步驟?s142:對于每棵雙向樹,從上到下生成日志模板,如果一個節點有多個子節點,則分別產生多個日志模板。
39、進一步,步驟s31所述對單條日志進行特征學習,具體包括:
40、步驟s311:收集微服務在正常運行期間產生的日志;
41、步驟s312:通過循環神經網絡構建一個encoder模型,將步驟s311中得到的日志經過步驟s2處理為日志向量,將日志向量作為encoder模型的輸入,從而生成一個固定大小的向量,作為正常日志的表示向量;
42、步驟s313:通過循環神經網絡構建一個decoder模型,將步驟s312中得到的表示向量作為模型的輸入,從而生成一個更長的向量,作為重構向量;
43、步驟s314:將步驟312構建的模型和步驟313構建的模型進行聯合,得到一個encoder-decoder模型,將原始的日志向量和重構向量的相似度的相反值作為損失函數,對encoder-decoder模型進行訓練,從而盡可能地提高原始的日志向量和重構向量的相似度,從而使得encoder模型能更好地產生日志的表示向量。
44、進一步,步驟s32所述對多條日志的上下文關系進行學習,具體包括:
45、步驟s321:初始化一個lstm(long?short?term?memory)網絡;
46、步驟s322:將微服務在正常運行期間產生的日志經過步驟s2后得到日志向量,按照時間順序導入到lstm網絡之中進行訓練,從而捕捉序列數據中的長期依賴關系。
47、進一步,步驟s33所述利用步驟s31和步驟s32的學習結果進行異常檢測,具體包括:
48、步驟s331:本文檔來自技高網...
【技術保護點】
1.一種用于微服務系統的日志異常檢測方法,其特征在于,包括如下步驟:
2.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S11所述日志預處理,具體包括:
3.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,S12所述創建初始日志組,具體包括:
4.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S13所述創建與更新雙向樹,具體包括:
5.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S14所述生成日志模板,具體包括:
6.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S31所述對單條日志進行特征學習,具體包括:
7.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S32所述對多條日志的上下文關系進行學習,具體包括:
8.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟S33所述利用步驟S31和步驟S32的學習結果進行異常檢測,具體包括:
【技術特征摘要】
1.一種用于微服務系統的日志異常檢測方法,其特征在于,包括如下步驟:
2.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟s11所述日志預處理,具體包括:
3.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,s12所述創建初始日志組,具體包括:
4.根據權利要求1所述的用于微服務系統的日志異常檢測方法,其特征在于,步驟s13所述創建與更新雙向樹,具體包括:
5.根據權利要求1所述的用于微服務系統的日志異...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。