首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个过滤器都失败而不是只有一个过滤器失败的情况下应用解析失败标签?

如何在两个过滤器都失败而不是只有一个过滤器失败的情况下应用解析失败标签?
EN

Stack Overflow用户
提问于 2020-08-13 17:24:51
回答 1查看 34关注 0票数 0

我的logtash配置有两个过滤器: 1)解析日志消息;2)解析JSON消息:

代码语言:javascript
复制
filter {
  grok {
    match => { "message" =>
    "\[%{TIMESTAMP_ISO8601:log_time}\]\[%{LOGLEVEL:log_level}(?<space>\s*)\]\[%{DATA:thread_name}\]\[%{DATA:class_name}\]%{GREEDYDATA:log_msg}" }
  }
  json {
    source => "message"
    add_tag => ["RiskExplain"]
  }
}

目前,如果记录了一条JSON消息,它将在被json过滤器解析之前使grok过滤器失败。因为它没有通过第一个过滤器,所以它将收到一个_grokparsefailure标记。我想删除这个标签,并且只在两个过滤器都失败的情况下才应用解析失败标签。这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 23:13:44

代码语言:javascript
复制
grok {
  match => { "message" =>
    "\[%{TIMESTAMP_ISO8601:log_time}\]\[%{LOGLEVEL:log_level}(?<space>\s*)\]\[%{DATA:thread_name}\]\[%{DATA:class_name}\]%{GREEDYDATA:log_msg}" }
}
if "_grokparsefailure" in [tags] {
  json {
    source => "message"
    add_tag => ["RiskExplain"]
    tag_on_failure => ["The_Tag_You_Want"]
    remove_tag => [ "_grokparsefailure" ]
  }
}

这样,仅当grok筛选器无法解析消息时才会使用json筛选器。json过滤器将删除_grokparsefailure标记,如果失败,将添加The_Tag_You_Want标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63392040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档