勵志

勵志人生知識庫

drain日誌解析

Drain是一種基於固定深度樹的線上日誌解析方法,旨在將原始日誌信息轉換為結構化的日誌訊息。Drain的主要步驟包括:

預處理。利用領域知識對訊息進行預處理,包括刪除正則表達式匹配到的tokens,這些正則表達式代表常用的變數,如IP位址和塊ID。

根據日誌訊息長度搜尋。假設具有相同日誌事件的日誌訊息可能會有相同的日誌訊息長度,根據預處理過的日誌訊息的日誌訊息長度,選擇通往第1層節點的路徑。

按首標記(token)進行搜尋。基於這樣的假設:一個日誌訊息在開始位置上的tokens更有可能是常量。根據日誌訊息的起始tokens來選擇下一個內部節點。

搜尋由前綴標記的tokens。假設日誌信息開頭位置的tokens更有可能是常量。將日誌信息中的前(depth - 2)個tokens編碼為搜尋規則。

搜尋由相似性標記的tokens。從日誌組列表中選擇最合適的日誌組。在找到具有最大simSeq的日誌組後,將其與預定義的相似度閾值st進行比較。

更新解析樹。根據新的信息更新解析樹。

Drain的核心思想是建立一個由日誌長度、前綴單詞和日誌模板組成的Parse Tree,其中所有的葉子節點的深度都是相同的,由一個預定義的參數depth固定,這個參數限制了搜尋過程中訪問到的葉子節點,但會大幅度提升效率。