首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在以前的grok模式的字段上写grok吗?

我可以在以前的grok模式的字段上写grok吗?
EN

Stack Overflow用户
提问于 2021-03-10 06:53:20
回答 1查看 163关注 0票数 0

我编写了一个grok模式,以便将一大块消息放到一个字段中。现在我想用不同的方法从这个字段中提取数据。

代码语言:javascript
复制
First Grok:
grok {
    match => { "message" => "%{WORD:ThreadNo}: %{NOTSPACE:tNumber}, %{GREEDYDATA:Info}" }
    }

在Info字段中,我捕获了一个原始数据,即

代码语言:javascript
复制
    "tNumber" => "t@-1686439616",
    "ThreadNo" => "3",
        "Info" => "<Start Stack Trace>  <1 - ADK Verbose Trace Entry>  stateless dispatch for invokeClass.bosInterface executing  Active: 1 minute  49.00 seconds   User:    s-plmv6intp  Tenant:      Session:    2FF1BFBFCC010E7815678741BB95907F:mx115420087975768b5:(WebServiceFacade.java:84)  Parameters:    bosContext _cntx:      user:        User Agent      depth:        2      session id:        2FF1BFBFCC010E7815678741BB95907F:mx115420087975768b5:(WebServiceFacade.java:84)    bosStringList _params:      2 entries          $$MXRIP$$java.util.HashMap          6    uint8 _local:      1",

现在,如果我想编写另一个grok,从信息字段提取数据。我怎么能做到这一点。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 16:35:29

如果您想使用第二个grok,那么使用第二个grok过滤器。不要尝试在单个筛选器中同时执行两个匹配。从理论上讲,这是支持的,但很容易弄错。以下配置

代码语言:javascript
复制
input { generator { count => 1 lines => [ 't@-1686439616: 3, <Start Stack Trace>  <1 - ADK Verbose Trace Entry>  stateless dispatch for invokeClass.bosInterface executing  Active: 1 minute  49.00 seconds   User:    s-plmv6intp  Tenant:      Session:    2FF1BFBFCC010E7815678741BB95907F:mx115420087975768b5:(WebServiceFacade.java:84)  Parameters:    bosContext _cntx:      user:        User Agent      depth:        2      session id:        2FF1BFBFCC010E7815678741BB95907F:mx115420087975768b5:(WebServiceFacade.java:84)    bosStringList _params:      2 entries          $$MXRIP$$java.util.HashMap          6    uint8 _local:      1' ] } }
filter {
    grok { match => { "message" => "%{WORD:ThreadNo}: %{NOTSPACE:tNumber}, %{GREEDYDATA:Info}" } }
    grok { match => { "Info" => "((.|\r|\n)*)Active: %{GREEDYDATA:Active}\s*User:\s*%{USER:UserInfo}" } }
}
output  { stdout { codec => rubydebug { metadata => false } } }

结果:

代码语言:javascript
复制
  "ThreadNo" => "1686439616",
   "tNumber" => "3",
  "UserInfo" => "s-plmv6intp",
    "Active" => "1 minute  49.00 seconds   "

等。

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

https://stackoverflow.com/questions/66559731

复制
相关文章

相似问题

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