V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Weixiao0725

logstash/ES 时区问题

  •  
  •   Weixiao0725 · Feb 1, 2018 · 12814 views
    This topic created in 3014 days ago, the information mentioned may be changed or developed.

    我用 logstash 索引日志到 es 中,从日志中 grok 某个字段出来赋值给 @timestamp,然后存到 Es 中以后就少了 8 个小时,我知道只是因为 ES 存储统一用的 UTC 格式,网上建议说不要在 logstash -> es 过程中强制指定 timezone => "+00:00",因为 Kibana 会自动根据浏览器进行更改。

    但是,我的数据存到 ES 以后,我是用 java/python 写代码去查,这样的话我不知道代码中的时间是否要我自己转成 utc 的时间去 ES 里查,还是说直接传东八区给 ES,es 会进行转换。

    比如,es 中现在存的是 utc 时间 9 点,那么中国时间肯定是 17 点了,那么如果我写代码去查询 Es 的话,代码中我是要传 17 点还是( 17-8)点去查询?

    现在我不知道,这个时区在哪里转换比较合适,谢谢大家哦~

    6 replies    2018-02-02 10:55:18 +08:00
    Philippa
        1
    Philippa  
       Feb 1, 2018   ❤️ 1
    在服务器上,代码里全部统一使用 utc 时间。假如你用于开发的电脑不是 utc 那就改成 utc。Python 的 datetime 无论时 utc 还是不设 utc 都是返回数值但在 datetime 对象里不包含时区信息的,因此你需要手动配合 pytz 库加一个时区进去,或者在字符串结尾加 Z 和标注时区方式再转为 Python 对象。

    这样到了 Elasticsearch 就会按照你的时区进行识别,否则默认是 utc,那样你会发现载入数据后慢了 8 小时。
    billlee
        2
    billlee  
       Feb 1, 2018
    程序访问的话,最好把时间格式统一成 epoch_millis 或 strict_date_time.
    scriptB0y
        3
    scriptB0y  
       Feb 1, 2018
    17-8,从这里 https://logstash.jira.com/browse/LOGSTASH-973 看 logstash 是存储 UTC 时间的,这样我们写起脚本来更加准确和方便,因为心中很明确 ES 里面的时间必定是 UTC 时间。

    准确来说应该是:时间在 ES 中是 UTC 表示,实际以时间戳存储,查询应该以 UTC 为准,但是 PUT 如果带上时区,ES 会处理并最终以时间戳存储。参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html
    igaoliang
        4
    igaoliang  
       Feb 2, 2018
    时区信息是前段根据当地时区自己转换的,例如 elk 技术栈中。kibana 负责展现 es 中的搜索结果,那么时区问题就是 kibana 自己转换的。
    wklken
        5
    wklken  
       Feb 2, 2018
    es/logstash/前端等都不动, 查询代码还是用 17:00, 多指定一个 timezone 就行

    https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search-aggregations-bucket-datehistogram-aggregation.html#_time_zone



    ```
    "format": "yyyy-MM-dd HH:mm:SS",
    "time_zone": "+08:00"
    ```

    某些场景直接使用相对时间

    ```
    "@timestamp": {
    "gt": "now-1h"
    }
    ```
    Weixiao0725
        6
    Weixiao0725  
    OP
       Feb 2, 2018
    @wklken thank you bro
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2902 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 07:17 · PVG 15:17 · LAX 00:17 · JFK 03:17
    ♥ Do have faith in what you're doing.