Sequence顺序语义日志解析器

联合创作 · 2023-09-30 00:26

Sequence是高性能的顺序日志扫描器、分析器和解析器。它依次通过一条日志消息,解析出有意义的部分,而无需使用正则表达式。它可以每秒解析超过 100,000 条消息,而无需按日志源类型分开解析规则。

性能

以下性能基准在单4核(2.8Ghz i7)MacBook Pro上运行,尽管测试仅使用1或2核。第一个文件是一堆sshd日志,每条消息平均98字节。第二个是Cisco ASA日志文件,每条消息平均180字节。最后是ASA,sshd和sudo日志的混合,平均每条消息136个字节。

  $ ./sequence bench scan -i ../../data/sshd.all
  Scanned 212897 messages in 0.78 secs, ~ 272869.35 msgs/sec

  $ ./sequence bench parse -p ../../patterns/sshd.txt -i ../../data/sshd.all
  Parsed 212897 messages in 1.69 secs, ~ 126319.27 msgs/sec

  $ ./sequence bench parse -p ../../patterns/asa.txt -i ../../data/allasa.log
  Parsed 234815 messages in 2.89 secs, ~ 81323.41 msgs/sec

  $ ./sequence bench parse -d ../patterns -i ../data/asasshsudo.log
  Parsed 447745 messages in 4.47 secs, ~ 100159.65 msgs/sec

可以通过添加更多核心来提高性能:

  $ GOMAXPROCS=2 ./sequence bench scan -i ../../data/sshd.all -w 2
  Scanned 212897 messages in 0.43 secs, ~ 496961.52 msgs/sec

  GOMAXPROCS=2 ./sequence bench parse -p ../../patterns/sshd.txt -i ../../data/sshd.all -w 2
  Parsed 212897 messages in 1.00 secs, ~ 212711.83 msgs/sec

  $ GOMAXPROCS=2 ./sequence bench parse -p ../../patterns/asa.txt -i ../../data/allasa.log -w 2
  Parsed 234815 messages in 1.56 secs, ~ 150769.68 msgs/sec

  $ GOMAXPROCS=2 ./sequence bench parse -d ../patterns -i ../data/asasshsudo.log -w 2
  Parsed 447745 messages in 2.52 secs, ~ 177875.94 msgs/sec

局限性

  • sequence不处理多行日志。每个日志消息必须显示为一行。因此,如果有多行日志,则必须首先将其转换为单行。
  • sequence仅使用一组有限的系统(Linux,AIX,sudo,ssh,su,dhcp等),网络(ASA,PIX,Neoteris,CheckPoint,Juniper防火墙)和基础结构应用程序(apache,bluecoat等)进行了测试。日志。如果您有一组日志希望我进行测试,请随时提出一个问题,我们可以为我安排下载和测试日志的方法。
浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报