一、实战问题
如下都是实战环节遇到的问题:
-
logstash谁解决过时区问题,mysql是东八区shanghai 但是这玩意读完存到es就少了8小时?
-
目前索引会比真正时间晚8小时,导致8点前的日志写到昨天索引里,大佬们有招吗?
-
问一下 logstash输出日志到本地文件中,按照小时生成索引,但是他这边的时区是utc,生成的时间和北京时间少8小时,这一块大佬们是咋操作的?
-
......从浏览器kibana那里看timestamp时间戳变成了utc的时区?
上面的问题都涉及到时区问题,涉及到数据的同步(logstash)、写入、检索(elasticsearch)、可视化(kibana)的几个环节。
二、时区问题拆解
我们通过如下几个问题展开拆解。
1 Elasticserch 默认时区是?能改吗?
官方文档强调:在 Elasticsearch 内部,日期被转换为 UTC时区并存储为一个表示自1970-01-01 00:00:00 以来经过的毫秒数的值。
Internally, dates are converted to UTC (if the time-zone is specified) and stored as a long number representing milliseconds-since-the-epoch.
https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html
Elasticsearch date 类型默认时区:UTC。
正如官方工程师强调(如下截图所示):Elasticsearch 默认时区不可以修改。

本文详细探讨了Logstash、Elasticsearch、Kibana在处理时区问题上的挑战,包括数据写入时区不一致、Kibana显示时间错误等。解决方案包括通过Elasticsearch的ingest pipeline预处理时区转换、Logstash filter阶段进行时区调整,以及在查询和聚合时指定时区。实践案例展示了如何在Logstash中使用ruby filter处理时区,并提供了配置示例。
最低0.47元/天 解锁文章
817

被折叠的 条评论
为什么被折叠?



