Fluentd Не анализирует последнюю строку журнала - PullRequest
0 голосов
/ 21 мая 2019

В настоящее время я настраиваю стек efk для анализа моих журналов java (log4j).Я могу проанализировать все журналы, кроме последней строки журнала.так, например.

2019-05-17 07:19:35,708 WARN log-line-1

2019-05-17 07:19:35,708 WARN log-line-2

, поэтому log-line-1 анализируется, но не log-line-2.В противном случае я могу проанализировать все.

Я проверил свое регулярное выражение (https://rubular.com/), и он отлично работает.

Ниже приведена конфигурация для fluentd:

format multiline

format_firstline /\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3}/

format1 /(?<logtime>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3})[\s](?<LEVEL>[A-Z]+)(?<message>(?=([\w\W\s]*?\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))([\w\W\s]*?)(?=(\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))|((.|\s)*))/

@type tail

time_key logtime

1 Ответ

0 голосов
/ 22 мая 2019

У меня была такая же ошибка и Я не знаю, может ли это помочь вам, но это сработало для меня.

TD-agent.conf:

    ...
    @type tail
    format multiline
    format_firstline  /^\d{4}-\d{1,2}-\d{1,2}.\d{1,2}:\d{1,2}:\d{1,2},\d{3} (?<type>[A-Z]+) (?<message>.*\n.*)/
    format1 /^\d{4}-\d{1,2}-\d{1,2}.\d{1,2}:\d{1,2}:\d{1,2},\d{3} (?<type>[A-Z]+) (?<message>.*\n.*)/
    ...

Я думаю, что (?<message>.*\n.*) может помочь, потому что включает несколько /n, включая все строки после.

попробуйте здесь .

Надеюсь, это помогло.

...