elasticsearch,logstash,kibana,Logging,elasticsearch,Logstash,Kibana" /> elasticsearch,logstash,kibana,Logging,elasticsearch,Logstash,Kibana" />

Logging Kibana:日志和计算字段之间的持续时间

Logging Kibana:日志和计算字段之间的持续时间,logging,elasticsearch,logstash,kibana,Logging,elasticsearch,Logstash,Kibana,我试图使用Kibana来计算两个日志事件之间的持续时间。我遇到的问题是日志没有唯一标识符。我必须根据某些列对它们进行分组。在“发现”选项卡中,我将其设置为这样。我搜索了“通信”和“鼓sw”,并按时间对结果进行排序 1: September 10th 2015, 03:04:41.000 Communication Failure drum sw 939 2: September 10th 2015, 03:04:46.000 Communication Normal

我试图使用Kibana来计算两个日志事件之间的持续时间。我遇到的问题是日志没有唯一标识符。我必须根据某些列对它们进行分组。在“发现”选项卡中,我将其设置为这样。我搜索了“通信”和“鼓sw”,并按时间对结果进行排序

1:  September 10th 2015, 03:04:41.000   Communication   Failure drum    sw  939
2:  September 10th 2015, 03:04:46.000   Communication   Normal  drum    sw  939
3:  September 10th 2015, 03:28:07.000   Communication   Failure drum    sw  2305
4:  September 10th 2015, 03:28:13.000   Communication   Normal  drum    sw  2305
是否有办法按地区(sw)和设备类型(sw)对这些日志进行分组?除此之外,如何创建计算字段以确定事件之间的持续时间

所以对于前两个,它们之间的持续时间是5秒:例如:(当前时间)-(结束时间)=5秒。这是我在脚本字段中要做的事情吗

我使用的是最新版本的麋鹿配置。Kibana 4.2 elasticsearch和logstash 2.0.0


谢谢

使用经过的{}过滤器,您可以指定一个作为唯一键的复杂模式(如组合两个字段)。

我认为使用脚本字段是不可能的,因为:

使用Lucene表达式时有一些限制:

Stored fields are not available
有了这个,我想您不能引用时间,因为它是一个没有唯一值的存储字段。一种解决方案可能是存储每个日期之前的时间。一个例子:

1:2015年9月10日,03:04:41.000通信故障鼓sw 939,您添加了一个营地名称TimeBefore,其值为2015年9月10日,03:04:46.000,您使用脚本字段执行以下操作:

doc['Time'].为doc['TimeBefore']赋值。将此夏令营赋值并保存为差异时间

也许还有其他更好的解决办法,但这是我唯一能想象的

祝你好运