【问题标题】:How can I sync up log times in logstash or kibana如何在 logstash 或 kibana 中同步日志时间
【发布时间】:2016-12-06 17:26:41
【问题描述】:

我有两个来自不同来源的日志,我通过 logstash 将它们拉入 elasticsearch,然后使用 kibana 进行可视化。我的问题是每个日志的开始时间应该是相同的,但是其中一个日志在 30 分钟前错误地记录了条目。

我该如何纠正这个时间问题,是否有可以从时间中减去 30 分钟的 logstash 过滤器,或者我可以在 Kibana 中添加一些高级查询?

我更喜欢更新 logstash 中的日志条目。

【问题讨论】:

  • 日期从何而来?从文件中解析或只是由logstash 添加的@timestamp。你使用一个或两个logstash?如果有两个,它们是否在同一台机器上?
  • @baudsp 日期来自日志文件本身。我只是像批处理作业一样在每个日志文件的几个小时内运行一个logstash,所以我没有连续运行logstash。
  • 我试图找到一种方法来使用 ruby​​ 过滤器更改值 @timestamp 字段但没有成功,所以我试图查看问题是否来自您的设置。

标签: logstash kibana elastic-stack logstash-configuration


【解决方案1】:

理想情况下,您可能希望修复日志,以便在文件中列出正确的时间。如果您的问题出在数据中,则更容易在此处解决问题,而不是与下游的额外规则搏斗。

但是,如果需要,您可以操作 Logstash 时间戳。

每个事件的@timestamp 字段与Ruby 的Time 类有很多共同之处。特别是,它实现了相同的 +- 运算符,允许您添加或减去一些秒数:

filter {
    ruby {
        code => "
                event['@timestamp'] = LogStash::Timestamp.new(event['@timestamp'] + (30 * 60))
        "
    }
}

【讨论】:

  • 不适用于 Logstash 2.2:Ruby exception occurred: The field '@timestamp' must be a (LogStash::Timestamp, not a Time
  • 哎呀。我不喜欢 ruby 过滤器的一件事是它们在 Logstash 版本之间往往很脆弱。我已经编辑了 sn-p 以便它应该在 2.2 中工作
  • 我们不知道这个问题使用的是哪个版本,所以你之前的回答也可以。不管怎样,你的答案比我的好,所以我会删除它。我学到了一些东西,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
相关资源
最近更新 更多