
我有一個幾乎預設的 Splunk 配置,它可以從標準 Java 應用程式中正確分割大部分日誌訊息。我們不會覆寫任何有關換行符、行合併或日期格式的預設值。在某些情況下,Splunk 似乎偵測到多行日誌事件上有日期,並錯誤地拆分了該行上的事件。我想知道如何防止這種情況發生。
下麵包含一個包含 4 個日誌事件的範例 - 每個日誌事件均以日期時間戳記和嚴重性開頭。請注意,第一個和第四個事件是單行日誌事件,第二個和第三個事件是包含更多詳細資訊的更詳細的多行日誌事件。
對於第二個事件,Splunk 正確地完整拆分了該事件。然而,對於第三個事件,我們在「發生日期」旁邊寫入的日期與事件開始時的時間戳相差一兩毫秒。發生這種情況時,Splunk 會將這些事件分割為多個事件。
值得注意的是,多行事件的行分隔符號很可能是\n
。我不能 100% 確定每個事件末尾的行分隔符號是什麼,但也有可能\n
。
有沒有辦法阻止 Splunk 偵測行中間的日期/時間戳記並根據該標記拆分事件?
2021-08-27 20:57:34,860 ERROR [<redacted>][<redacted>] <redacted>
2021-08-27 20:56:24,118 ERROR [<redacted>][<redacted>] MESSAGE="
<redacted - more info>
<redacted - more info>
-- OCCURRED ON: 08/27/2021 20:56:24:11
<redacted - more info>
<redacted - more info>
<redacted - more info>
<redacted - more info>
<redacted - more info>
2021-08-27 20:56:11,221 ERROR [<redacted>][<redacted>] MESSAGE="
<redacted - more info>
<redacted - more info>
-- OCCURRED ON: 08/27/2021 20:56:11:220
<redacted - more info>
<redacted - more info>
<redacted - more info>
<redacted - more info>
<redacted - more info>
2021-08-27 20:57:09,960 ERROR [<redacted>][<redacted>] <redacted>
答案1
告訴 Splunk 在行首的日期之前中斷事件。這將有助於告訴 Splunk 時間戳記的預期格式:
LINE_BREAKER = ([\r\n]+)\d\d\d\d-\d\d-\d\d
TIME_PREFIX = ^
TIME_FORMAT = %Y-%m-%d %H:%M:S,%3N