logstash, grok - как сопоставить необязательное поле после многострочных данных? - PullRequest
0 голосов
/ 16 октября 2018

Я использую logstash для разбора сообщений из filebeat.Отдельные сообщения имеют следующий синтаксис:

key1: some data!....
-...data continues..special symbols ..:!?111--
whatever...1234!"..??..data..continues !!';;; blabla
key2: important data

key1 - это многострочный беспорядок, который я хочу записать.
Также обратите внимание, что key2 является необязательным, и может не произойтибыть в сообщении журнала!

Я хочу проанализировать значение key2, если оно есть, и попробовал его так:

key1: (?m)%{DATA}(\nkey2:%{DATA:value})?

, но кажется, что первый блок DATA просто совпадаетвсе сообщение и дополнительная часть пропущены.
Мне нужен первый блок DATA, чтобы не быть жадным, и чтобы не пропускать key2.

Спасибо за любые предложения:)

1 Ответ

0 голосов
/ 16 октября 2018

Является ли это случайно стэктрейс, который предназначен?Тогда вы можете фильтровать для пробелов.Пример вашего журнала может быть полезным.

...