首页 > 解决方案 > 改进我的多行 javastack 日志的工作 grok 模式

问题描述

我的日志文件有很多空格和换行符,我写了 grok 模式来从中提取数据。如果这种方法适用于这种日志,需要一些确认,如果还有其他更好的方法,请提出建议。

原始日志文件:

Active: 37 minutes  0.00 seconds 
  User:
    ServiceUser1
  Tenant:
    
  Session:
    9F0071A66D89544155D149CCE2453E9A:mx2135649930e123d964:(WebServiceFacade.java:84)
  Parameters:
    bosContext _cntx:
      user:
        ContextUser1
      depth:
        3
      session id:
        9F0071A66D89544155D149CCE2453E9A:mx2135649930e123d964:(WebServiceFacade.java:84)
    bosUTF _className:
      TestClassName1
    bosStringList _construct:
      2 entries
          $$MXRIP$$|java.util.HashMap
          1
    bosUTF _methodName:
      TestMethodName1

为上述没有空格的日志工作 Grok 就是这样。

Active:((?m))%{GREEDYDATA:Active}\n\s*User\:\n((?m))%{GREEDYDATA:User}\n\s*Tenant:\n((?m))%{GREEDYDATA:Tenant}\n\s*Session:\n((?m))%{DATA:session}\n\s*Parameters:\n\s*bosContext\s_cntx:\n\s*user:\n((?m))%{GREEDYDATA:ContextUser}\n\s*depth:\n((?m))%{GREEDYDATA:depth}\n\s*session\sid:\n((?m))%{GREEDYDATA:SessionID}\n\s*bosUTF\s_className:\n((?m))%{DATA:ClassName}\n\s*bosStringList\s_construct:\n((?m))%{GREEDYDATA:Construct}\n\s*bosUTF\s_methodName:\n((?m))%{GREEDYDATA:Method}

以 grok 模式编写这么多空格和 GREEDYDATA 真的很好吗?请确认。

标签: logstashelastic-stacklogstash-groklogstash-configurationelk

解决方案


推荐阅读