Добрый день,
(с использованием logstash 1.4.2)
Я пытаюсь сделать что-то вроде:
filter {
if type == "feed" {
grok {
match => [ "message", "%{COMBINEDAPACHELOGS}" ]
add_tag => [ "grokked", "web" ]
tag_on_failure => [ "notweb" ]
}
}
if type == "feed" and "notweb" in [tags] {
grok {
patterns_dir => "/opt/logstash/patterns"
match => [ "message", "%{ERROPARSING}" ]
add_tag => [ "grokked", "%{[level]}" ] # %{level} named from ERRORPARSING
}
}
}
Но весь материал notweb заканчивается ошибкой _grokparsefailure, как если бы следующий шаг не был протестирован / оценен.
% {ERRORPARSING} правильно протестирован в Grokdebugger.
Не уверен, что это причина, но все же предположение, это:
if type == "feed" and "notweb" in [tags] {
Возможно, это не совсем необходимо, если у вас нет нескольких разных вещей, которые вы помечаете notweb, и в этом случае вы можете изменить тег:
if "notweb" in [tags] {
Кроме того, то, что что-то работает в Grokdebugger, не всегда означает, что это будет работать в logstash, есть несколько отличий, вставьте свой шаблон, если мое первое предложение не помогает