0

我从记录多行类型的日志文件中读取日志。在阅读 QRadar 时会组装两条记录并将其作为一个日志。

在将日志源添加到 QRadar 时,我将日志行的开始和结束模式描述为:

  • 启动模式正则表达式:^(\d{7})\,

  • 结束模式正则表达式:(\d{2}:\d{2}:\d{2})$

我应该读过类似的日志:

1158896,someuser,Inner User,Minor,10.6.130.11,2019-09-29 03:01:15,Security Management,Log in to the server,Network Management,Succeeded,User name: someuser,2019-09-29 03:01:15
1158897,someuser,Inner User,Minor,10.6.130.11,2019-09-29 03:03:16,Security Management,Log out the server,Network Management,Succeeded,"User name: someuserOnline duration: 0 day(s) 0 hour(s) 2 minute(s) 1 second(s)",2019-09-29 03:03:16

但我收到了其中一些组装好的,比如:

1158896,someuser,Inner User,Minor,10.6.130.11,2019-09-29 03:01:15,Security Management,Log in to the server,Network Management,Succeeded,User name: someuser,2019-09-29 03:01:151158897,someuser,Inner User,Minor,10.6.130.11,2019-09-29 03:03:16,Security Management,Log out the server,Network Management,Succeeded,"User name: someuserOnline duration: 0 day(s) 0 hour(s) 2 minute(s) 1 second(s)",2019-09-29 03:03:16

这是我的RegEx开始和结束模式的regex101.com记录。

https://regex101.com/r/2IfMR7/3

https://regex101.com/r/2IfMR7/4

如您所见,它在 regex101.com 中正常工作 为什么 QRadar 将它们作为一个来读取?

4

1 回答 1

0

您(或 qradar)可能正在使用与多行捕获字符相结合的贪婪量词。

如果你正在做这样的事情:^(\d{7})\,(?:\n|.)*(\d{2}:\d{2}:\d{2})$中央组在哪里(?:\n|.)*或任何类似的短语匹配多行,贪婪运算符*意味着它将尝试从整个日志页面上的前 7 位数字匹配到最后一个时间戳,忽略你的开始和结束锚点。尝试*?改用;?使它不贪婪,所以它会在第一个时间戳停止。

比较:贪婪非贪婪

于 2019-09-30T15:08:23.250 回答