多行正則模式
更新時間 2024-09-02 10:02:45
最近更新時間: 2024-09-02 10:02:45
分享文章
本文主要介紹結構化解析-多行正則模式。
概述
多行正則模式用于處理結構化的日志,針對包含多行內容的日志,您需要指定一個行首正則表達式用于匹配日志的開頭,并指定一個正則表達式用于提取多個值,采集器按照該正則表達式將一條完整日志提取為多個 key-value 鍵值。
示例
如您需要采集的原始數據為:
- 原始日志:
[2023-04-02T14:29:01,000] [INFO] java.lang.Exception: exception happened at TestPrintStackTrace.f(TestPrintStackTrace.java:3) at TestPrintStackTrace.g(TestPrintStackTrace.java:7) at TestPrintStackTrace.main(TestPrintStackTrace.java:16) - 配置行首正則表達式為:
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.* - 配置自定義正則表達式為:
\[([^]]+)]\s\[(\w+)\S+(.*) - 系統將根據行首正則表達式匹配每條日志的開頭,并根據自定義正則表達式提取鍵值對,您需要為每個提取出來的值指定key名稱。同時會將原始日志內容存放在
__message__字段中,如下所示:time: 2023-04-02T14:29:01,000 level: INFO msg: java.lang.Exception: exception happened at TestPrintStackTrace.f(TestPrintStackTrace.java:3) at TestPrintStackTrace.g(TestPrintStackTrace.java:7) at TestPrintStackTrace.main(TestPrintStackTrace.java:16) __message__: [2023-04-02T14:29:01,000] [INFO] java.lang.Exception: exception happened at TestPrintStackTrace.f(TestPrintStackTrace.java:3) at TestPrintStackTrace.g(TestPrintStackTrace.java:7) at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
配置說明
在日志接入流程中-創建采集配置步驟中,按如下參數說明配置切割模式:
采集配置參數說明:
| 參數 | 描述 |
|---|---|
| 切割模式 | 針對原始日志執行分詞的模式,選擇“多行正則”。 |
| 日志樣例 | 輸入您需要采集的日志樣例。 |
| 首行正則表達式 | 首行正則表達式用于匹配每一條日志的行首,以確認每條日志的開頭位置。輸入完成后,點擊【驗證】,系統將根據您輸入的日志樣例判斷表達式是否通過以及成功解析的日志條數。 |
| 正則表達式 | 輸入正則表達式,點擊【驗證】按鈕,系統將根據您輸入的正則表達式對日志樣例進行字段切割。 |
| 日志提取內容 | 根據正則表達式切割的結果會展示在日志提取內容中,您需要為每個字段定義唯一的 key。 |