採集日誌時要求日誌採用統一的格式,但有時日誌中可能會包含多種格式,您可以採用Schema-On-Write
和Schema-On-Read
兩種模式處理。
背景資訊
以Java日誌為例,作為一個程式日誌,它一般既包含正常資訊,也會包含異常棧等錯誤資訊。
WARNING類型的多行日誌
INFO類型的簡單文本日誌
DEBUG類型的索引值日誌
[2018-10-01T10:30:31,000] [WARNING] java.lang.Exception: another exception happened
at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
[2018-10-01T10:30:32,000] [INFO] info something
[2018-10-01T10:30:33,000] [DEBUG] key:value key2:value2
解決方案
Schema-On-Write
使用情境:預Crowdsourced Security Testing道日誌格式,在採集日誌時完成格式化。
說明:為同一份日誌應用多個Logtail配置,每個Logtail配置具有不同的正則配置,從而能夠正確地實現欄位提取。預設情況下,一個檔案只能匹配一個Logtail配置,如果需要為同一份日誌應用多個Logtail配置,請參見如何?檔案中的日誌被採集多份。
Schema-On-Read