【问题标题】:timezone incorrect in logstash / ELK / elasticsearchlogstash / ELK / elasticsearch中的时区不正确
【发布时间】:2015-04-23 23:37:19
【问题描述】:

我是弹性搜索的新手,花了很长时间试图解决以下问题。也许解决方案应该在文档中 - 但它不是:-(

我的服务器在多个时区运行。

日志文件被同步到具有不同时区的服务器中,但是很容易通过时区字段来知道原始时区,例如{"timezone": "UTC"} 或时间格式本身,例如{"@timestamp": "2015-02-20T12:11:56.789Z"}

我可以完全控制日志文件,并且可以在必要时调整它们。

使用 logstash 时 - 它会将时间格式更改为运行它的服务器的本地时间。例如"@timestamp" => "2015-02-21T22:26:24.920-08:00"

如何从源日志文件、日志存储和弹性搜索中获取始终如一的时区? (显然 - 在那之后我想在 Kibana 中拥有它)。我尝试了很多事情都没有成功。

提前致谢。

【问题讨论】:

  • 您使用的是logstash date filter吗?如果是这样,您可以将时区明确设置为Etc/UTC
  • 还有this issue
  • 如果 @timestamp 字段已经设置(通常由另一个 Logstash 实例),我很确定 Logstash 不会碰它。你能澄清一下这里到底发生了什么吗?你的配置是什么样的?理想情况下,原始日志文件应以 UTC 格式指定时间戳,或在您提供给日期过滤器的同一字符串中包含时间戳标识符。
  • 感谢马特和马格努斯的想法。我都试过了,因为它们很有意义。

标签: elasticsearch timezone logstash kibana grok


【解决方案1】:

我的目标是在 elasticsearch 中创建包含日志记录时间的 _id - 这样即使通过 logstash 再次发送日志,它也永远不会重复

在解决这个问题几个小时后 - 我有一些结论,就我而言,没有足够的文档记录,建议解决。

1) 如果日志文件的格式中包含时区 - 在 logstash 中无法修改它。因此 - 不要在时区或部分匹配或添加时区上浪费时间。如果时间末尾有 Z - 那么它将是 GMT。我认为这是一个错误,当这种情况发生时 - 不会发出警告。

2) 无论输入字符串的格式如何,Logstash 以本地时间输出到标准输出/文件。

3) Logstash 使用其本地时间的时间 - 因此将时间连接到变量中会变得混乱 - 即使原始字符串是 GMT。所以不要尝试使用@timestamp 变量!!!

4) 弹性搜索在 GMT 中工作 - 所以它的行为正常。因此,您在 logstash 的输出中看到的 "@timestamp" => "2015-02-21T20:26:24.921-08:00" 被弹性搜索正确解释为 "@timestamp" => "2015-02-21T12 :26:24.921Z"

所以我的解决方法如下: 1) 使用不是@timestamp 的时间戳保存日志 2) 始终将日志文件中的时间保存为 GMT 并用尾随 Z 标记它们 3) 以最基本的形式使用日期过滤器。无时区属性

filter {
    date {
        match => ["log_time", "YYYY-MM-dd'T'HH:mm:ss.SSSZ"]
        #timezone => "Etc/GMT-8" <--- THIS DOES NOT WORK IF THERE IS A Z IN SOURCE
    }   
}

4) 直接从 log 变量创建时间导数 - 而不是从 @timestamp。例如

output {
    stdout { codec => rubydebug }
    elasticsearch { 
        host => localhost
        document_id => "%{log_time}-%{host}" # <--- DO THIS
        # document_id => "%{@timestamp}-%{host}" <--- DON'T DO THIS
    }   
}

如果 Jordan Sissel 碰巧读到了这篇文章——我认为默认情况下,logstash 应该与 elasticsearch 一致——或者至少可以选择在 GMT 内部输出和工作。在第一次使用现有日志尝试该工具时,我遇到了每个人都会经历的事情。

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2020-09-15
    相关资源
    最近更新 更多