根据条件计算特定日志之间的时间

时间:2017-06-26 16:23:13

标签: elasticsearch logstash kibana kibana-5

我在日志文件中有一个系统日志列表,我必须根据某些条件计算两个特定日志之间的时差

@timestamp                      message  

May 19th 2016, 02:55:29.003     just some log
May 19th 2016, 02:55:29.003     retired 2 times
May 19th 2016, 02:55:29.200     System1 down -------
May 19th 2016, 02:55:29.205     just some log  
May 19th 2016, 02:55:29.453     System1 up ----
May 19th 2016, 02:55:39.200     System2 down 
May 19th 2016, 02:55:49.205     just some log  
May 19th 2016, 02:55:53.453     System2 up  -------
May 19th 2016, 02:55:58.453     all done

例如,在上述日志中,当我们在某些日志中看到“重试”消息时,我们需要触发计算。

在看到消息后,它应该开始计算与紧随其后的消息的区别,该消息包含“System1 Down”消息,直到它看到“System1 Up”消息。但这里的问题是系统消息可以是动态的,如同' System1'或'System2'

如果它以'System1 Up'开头,它应该计算到'System1 Down'的时间 和'System2 Up'相同。是否有可能在logstash中使用正则表达式。

当消息中显示“全部完成”时,所有进程都应该停止。如果在之后的任何日志中看到“退役2次”,则应该再次开始时差计算。

我厌倦了在Logstash中使用已经过时的插件并聚合但不确定,它不适用于这种流程。

最好的做法是什么?在Logstash,弹性搜索或Kibana中。 提前致谢

0 个答案:

没有答案