Regex 如果某个字段与某个值不匹配,是否可以使用Logstash删除该字段?

Regex 如果某个字段与某个值不匹配,是否可以使用Logstash删除该字段?,regex,logstash,logstash-grok,Regex,Logstash,Logstash Grok,如果字段不包含“\u log”,我们希望通过删除字段来使用Logstash过滤日志。remove_字段语法可用,但仅在字段符合特定条件时才可用于删除字段 filter { grok { remove_field => [ "log_" ] } } # This works for removing the log_ field, we want to remove everything that does NOT match log_. 如果字段与特定条件不匹配,是否也可

如果字段不包含“\u log”,我们希望通过删除字段来使用Logstash过滤日志。
remove_字段
语法可用,但仅在字段符合特定条件时才可用于删除字段

filter {
  grok {
    remove_field => [ "log_" ]
  }
}
# This works for removing the log_ field, we want to remove everything that does NOT match log_.
如果字段与特定条件不匹配,是否也可以删除该字段


我们尝试使用一个正则表达式来实现这一点,但没有成功(是否有文档记录了您不能使用正则表达式的地方?)。删除所有其他字段也是一种选择,但需要付出更多的努力。我们希望有人能帮助我们筛选所有不包含“log_u2;”的字段。

您可以这样做的方法之一是

  • 标记与条件不匹配的字段(使用
    Tag\u on\u failure
  • 删除上面标记的字段
例如:-

grok {
    match => ["log_"]
    tag_on_failure => ["_todelete"]
}
然后

grok {
    remove_tag => [ "_todelete" ]
}

你可以这样做的方法之一是

  • 标记与条件不匹配的字段(使用
    Tag\u on\u failure
  • 删除上面标记的字段
例如:-

grok {
    match => ["log_"]
    tag_on_failure => ["_todelete"]
}
然后

grok {
    remove_tag => [ "_todelete" ]
}

regexp应该可以工作:

filter {
  if [field] !~ /pattern/ {
    mutate {
      remove_field => [ "field" ]
    }
  }
}

regexp应该可以工作:

filter {
  if [field] !~ /pattern/ {
    mutate {
      remove_field => [ "field" ]
    }
  }
}

我们可以为所有字段提供正则表达式吗?我有10-30个字段带有word createdBy-如何删除所有包含此字段的字段field@JinnaBalu除非他们添加了新的内容,否则您需要使用ruby。这里有很多关于stackoverflow的例子。我们可以为所有字段提供正则表达式吗?我有10-30个字段带有word createdBy-如何删除所有包含此字段的字段field@JinnaBalu除非他们添加了新的内容,否则您需要使用ruby。这里有很多关于stackoverflow的例子。