Logstash: поддержание ценности событий

У меня есть дата, которая присутствует только один раз в каждом файле журнала, и я пытаюсь добавить эту дату ко всем последующим событиям после того, как она была сопоставлена ​​один раз, в некоторых отношениях она действует как глобальная переменная. (Дата находится вверху документа, и я не могу использоватьmultiline или внесите изменения в имя файла или содержимое)

Для этого мой подход заключается в использованииgrep фильтр сdrop => false.

grok {
    patterns_dir => "[...]"
    match => [ "message", "%{DATELINE}" ]
    tag_on_failure => [ ]
}
grep {
    add_field => { "grepdate" => "%{mydate}" }
    drop => false
}
date {
    locale => "en"
    timezone => "Europe/Paris"
    match => [ "grepdate", "yyyyMMdd" ]
    target => "grepdate"
}

Регулярное выражение:

DATELINE (= Date: (?<mydate>[0-9]{8}))

Я замечаю, чтоgrepdate поле корректно добавляется ко всем событиям - это то, что я хочу - но значение этого поля не является самой датой (значение%{mydate}), но фактическая строка"%{mydate}", за исключением случаев, когда на самом деле сопоставляются в первый раз (при анализе фактической даты в моем файле журнала,grepdate поле содержит правильное значение)

Что я могу сделать, чтобы это исправить?

Любая помощь очень ценится.

Редактировать:

Сейчас я пытаюсь найти решение, которое включает в себя использованиеmemorizeплагин. Однако я получаю следующую ошибку:

Невозможно использовать более одного работника фильтра, потому что следующие плагины не работают с более чем одним работником: запомнить

Есть ли способ сделать этот фильтр потокобезопасным?

Ответы на вопрос(1)

Ваш ответ на вопрос