【问题标题】:Kibana: Duration between logs and Calculated fieldsKibana:日志和计算字段之间的持续时间
【发布时间】:2015-11-02 23:13:37
【问题描述】:

我正在尝试使用 Kibana 来计算两个日志事件之间的持续时间。我遇到的问题是日志没有唯一标识符。我必须根据某些列对它们进行分组。在发现选项卡中,我将其设置为这样。我搜索了“通讯”和“drum 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 秒。这是我会在脚本领域做的事情吗?

我正在使用最新版本的 ELK 配置。 Kibana 4.2 elasticsearch 和 logstash 2.0.0。

谢谢!

【问题讨论】:

    标签: logging elasticsearch logstash kibana


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      使用 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'].value-doc['TimeBefore'].value 并将这个阵营保存为时差。

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

      Kibana 好运。

      【讨论】:

        猜你喜欢
        • 2017-03-22
        • 1970-01-01
        • 2016-12-31
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多