У меня эти журналы, где я пытаюсь извлечь несколько данных из каждой строки с помощью grok. Но, похоже, некоторые матчи не принимаются во внимание, хотя они кажутся мне прекрасными.Logstash grok множественные совпадения неудачи
Вот пример строки:
"#wtb# GetSP ok. Referer:http://test.redacted.com/path?query=string. Wtb:535e2554bdfdf33a22f564d0. Name:Client. Eans:3017565410073."
И Heres' соответствующая часть файла конф:
grok{
break_on_match => false
match => [
"msg", "Referer:%{URI:referer}\.",
"msg", "Wtb:%{WORD:wtb}",
"msg", "Name:(?<name>[^\.]+)",
"msg", "Eans:(?<eans>[\d,]+)",
"referer", "https?://%{HOSTNAME:host}"
]
tag_on_failure => []
}
Я использую несколько матчей, потому что каждая строка может быть любая комбинация различные параметры, указанные в образце.
В Кибане в событиях добавлены referer
и host
поля, но все остальные отсутствуют (wtb
, name
, eans
). Понятия не имею почему. Он не останавливается после успешного совпадения с момента добавления последнего шаблона. Может ли кто-нибудь определить, что мне не хватает?
Синтаксис на странице подтверждения повтора (https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html#plugins-filters-grok-match) работал для меня с несколькими совпадениями. – Matthias