logstash - 改进我的多行 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 真的很好吗?请确认。
解决方案
推荐阅读
- google-cloud-run - 我可以使用 Deployment Manager 部署 Cloud Run 吗?
- html - 如何在单个功能块中多次渲染到同一个模板
- r - How to break a text in a label into two lines
- vba - How to extract PDF document from SAP GUI? (scripting)
- php - combining when() and whereBetween() methods in laravel query builder
- python - Python:如何使用带有巨大 csv 文件的 asyncio 从循环中发送异步请求?
- swift - 如何从方法内部更新类变量以使该变量对 Swift 中的其他类可见?
- swift - Codable:为新的非可选属性赋予默认值
- javascript - When I add .push function in my code for loop breaks
- node.js - sync function call in Node