Мне нужно использовать регулярное выражение нулевой длины в шаблоне Грока.
Я протестировал его в онлайн-конструкторе grok. Оно работает.
Но тот же шаблон не работает в моем контейнере докеров. Я тестировал в Logstash v6.6.1, v7.3.0. Я также пробовал другое регулярное выражение: .{0}, ^$
.
Пример журнала:
17: 16: 09,691 INFO blablabla
Паттерн Logstash
%{TIME:time} %{LOGLEVEL:severity} %{GREEDYDATA:message}(?<zero_length_field>())
Результаты конструктора Grok. Ожидается
MATCHED
time 17:16:09,691
severity INFO
message blablabla
zero_length_field
Результат стандартного вывода - контейнер докеров
"severity" => "info",
"time" => 17:16:09,691
"version" => "0.3.0",
"message" => " blablabla",
keep_empty_captures
наtrue
- person Wiktor Stribiżew   schedule 22.08.2019grok { keep_empty_captures => true match => { "message" => "%{TIME:time} %{LOGLEVEL:severity} %{GREEDYDATA:message}(?<zero_length_field>)"} }
- person Wiktor Stribiżew   schedule 22.08.2019