Splunk는 여러 줄의 로그 이벤트를 날짜별로 분할합니다.

Splunk는 여러 줄의 로그 이벤트를 날짜별로 분할합니다.

저는 표준 Java 애플리케이션에서 대부분의 로그 메시지를 적절하게 분할하는 기본 Splunk 구성을 가지고 있습니다. 줄 바꿈, 줄 병합 또는 날짜 형식과 관련된 기본값은 재정의되지 않습니다. 어떤 상황에서는 Splunk가 여러 줄의 로그 이벤트에 날짜가 있음을 감지하고 해당 줄에서 이벤트를 잘못 분할하는 것처럼 보입니다. 이런 일이 발생하지 않도록 방지하는 방법을 알고 싶습니다.

아래에는 4개의 로그 이벤트가 포함된 예가 포함되어 있으며 각 이벤트는 날짜 타임스탬프와 심각도로 시작됩니다. 첫 번째와 네 번째 이벤트는 한 줄의 로그 이벤트이고, 두 번째와 세 번째 이벤트는 더 많은 세부 정보를 포함하는 더 자세한 여러 줄의 로그 이벤트입니다.

두 번째 이벤트의 경우 Splunk는 이 이벤트를 전체적으로 올바르게 분할합니다. 그러나 세 번째 이벤트의 경우 "발생 날짜" 옆에 기록하는 날짜는 이벤트 시작 시 타임스탬프에서 1~2밀리초 정도 벗어났습니다. 이 경우 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

관련 정보