Splunk 按日期拆分多行日志事件

Splunk 按日期拆分多行日志事件

我有一个基本默认的 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

相关内容