使用Logstash和regex从日志文件中提取请求和响应数据的最佳方法是什么?

u4vypkhs  于 2023-05-23  发布在  Logstash
关注(0)|答案(1)|浏览(185)

我有应用程序日志文件,其中包含应用程序请求和响应,完整的请求和响应看起来像下面,我尝试了不同的模式使用RegEx,但不幸的是没有任何运气,有人可以建议我应该改变什么吗?
模式=>

"
(?m)\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}\b.?\bRequest given by the user\b.?\brspDesc is\b(?!.\n)..?(?=\R|$)
"
2023-05-11 00:20:26,103 [http-apr-7777-exec-46] INFO com.welcome.ws.AccountWebServiceImpl. - Request given by the user

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:GetCustomerBalanceReq xmlns="url" xmlns:ns2="url">

testt
**
xls

ns2:ID/EID/5000000004/123456****1234</ns2:ID>
</ns2:GetCustomerBalanceReq>

2023-05-11 00:20:26,144 [http-apr-7777-exec-46] INFO com.welcome.svc.AccountService. - rspCode is:1001 and rspDesc is:Account or Media does not Exist

我试了这个正则表达式,但它不匹配任何东西

"(?m)\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}\b.?\bRequest given by the user\b.?\brspDesc is\b(?!.\n)..?(?=\R|$)
vlju58qv

vlju58qv1#

重申一下,您的意思是在日志文件中有一些部分以您提供的示例文本开始和结束。
若要捕获这些节,可以使用以下正则表达式模式。

(?s)(\d{4}-\d\d-\d\d .+?rspDesc.+?$)
  • 使用s标志启用单行模式,使.额外匹配换行符。
  • 模式的开始将与时间戳匹配。
  • 然后,匹配所有字符直到“rspDesc”。
  • 最后,继续,直到到达行的末尾。

相关问题