
У меня в основном конфигурация 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