Как работать с несоответствующими фильтрами Logstash Grok
Мне интересно, какой лучший подход использовать с моими фильтрами Logstash Grok. У меня есть несколько фильтров для определенных записей журнала, и я выигралт применяется ко всем записям. Те, которые неt применять всегда генерировать теги _grokparsefailure. Например, у меня есть один фильтр Grok, которыйs для каждой записи в журнале, и она отлично работает. Тогда у меня есть еще один фильтр, которыйs для сообщений об ошибках с трассировками. Фильтр трассировки выдает grokparsefailure для каждой записи журнала, которая неУ меня нет обратной связи. Я
Я предпочел бы, чтобы он просто передавал правило, если нетсоответствие вместо добавления тега parsefailure. Я использую тег parsefailure, чтобы найти вещи, которые неправильно разбирать, а не вещи, которые просто нене соответствует конкретному фильтру. Может быть это'просто номенклатурасбой разбора это меня достает. Для меня это означает, что тамЧто-то не так с фильтром (например, плохо отформатированный), а не с тем, чтот совпадают.
Итак, вопрос в том, как мне справиться с этим?
Сделать шаблон фильтра необязательным, используя?
(ab) использовать опцию tag_on_failure, задав для нее значение []
сделать фильтр условным, используя что-то вродеесли трассировка в сообщении
что-то еще яя не рассматриваю?
Заранее спасибо.
РЕДАКТИРОВАТЬ
Я взял путь добавления условия вокруг фильтра:
if [message] =~ /took\s\d+/ {
grok {
patterns_dir => "/etc/logstash/patterns"
match => ["message", "took\s+(?[\d\.]+)"]
add_tag => [ "stats", "servicetime" ]
}
}
Тем не менее, все еще заинтересованы в обратной связи. Что считаетсялучшая практика » Вот?