首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logstash过滤器-根据内容命名字段

Logstash过滤器-根据内容命名字段
EN

Stack Overflow用户
提问于 2014-10-06 14:26:58
回答 1查看 624关注 0票数 0

我有个问题是关于Logstash的那个垃圾过滤器的。假设我有两条日志消息,如下所示:

代码语言:javascript
复制
06 Oct 2014 15:49:23,256 DEBUG [http-8080-1] (com.webratio.units.content.rtx.db.PowerIndexUnitService:45) - [8C590C7717CB12BE96A83F23DA9EE56B][page21][pwu5][trace][127.0.0.1,8C590C7717CB12BE96A83F23DA9EE56B] RESULT_COUNT:2 {oid=[9, 8]}

06 Oct 2014 15:49:23,270 DEBUG [http-8080-1] (com.webratio.units.utility.rtx.db.SelectorUnitService:45) - [8C590C7717CB12BE96A83F23DA9EE56B][page21][seu13][trace][127.0.0.1,8C590C7717CB12BE96A83F23DA9EE56B] RESULT_COUNT:0 {}

我的过滤器如下:

代码语言:javascript
复制
filter {
    grok {
            match => [ "message", "%{INT:day} %{MONTH:month} %{YEAR:year} %{TIME:time} %{SPACE} %{WORD:mode} \[%{DATA:http}\] %{SPACE} \(%{DATA:path}\) - \[%{DATA:sessionId}\]\[%{DATA:pageId}\]\[%{DATA:pwuId}\]\[%{DATA:trace}\]%{GREEDYDATA:Info}" ]
    }   
}

正如您可能猜到的那样,筛选器匹配这两个日志消息。但是,第二条日志消息中的seu13也被命名为pwuId。您知道是否有办法检查字段内部并相应地给出适当的名称吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-06 14:40:58

你必须用grok做这样的事情

代码语言:javascript
复制
grok { 
  match => [ "message", 
    "%{INT:day} %{MONTH:month} %{YEAR:year} %{TIME:time} %{SPACE} %{WORD:mode} [%{DATA:http}] %{SPACE} (%{DATA:path}) - [%{DATA:sessionId}][%{DATA:pageId}][(?<pwuId>pwu\d+)}][%{DATA:trace}]%{GREEDYDATA:Info}",
    "%{INT:day} %{MONTH:month} %{YEAR:year} %{TIME:time} %{SPACE} %{WORD:mode} [%{DATA:http}] %{SPACE} (%{DATA:path}) - [%{DATA:sessionId}][%{DATA:pageId}][(?<seuId>seu\d+)}][%{DATA:trace}]%{GREEDYDATA:Info}" 
  ] 
}

所以现在你有两种不同的匹配模式--第一种只匹配pwu#‘s,第二种只匹配seu#’s

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

https://stackoverflow.com/questions/26218412

复制
相关文章

相似问题

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