Sequence顺序语义日志解析器
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等)进行了测试。日志。如果您有一组日志希望我进行测试,请随时提出一个问题,我们可以为我安排下载和测试日志的方法。
评论