logstash7.2报错inputs.jdbc query 时区偏移导致的错误。

发布于 2022-09-11 22:44:23 字数 1213 浏览 26 评论 0

环境:winserver2016,elk7.2,sqlserver2017,采集sqlserver 30多个表的全部记录,用于全文检索,所以一个索引下有几十个列名不同的日期字段datetime类型

最终存在es的记录上所有datetime,时间都减了8个小时,在kibana里查询2017-03-15,会出现2017-3-16的记录,在logstash导入遇到到特定几个夏令时时间时还会报错

错误信息:logstash.inputs.jdbc
exception when executing jdbc query
illegal instant due to time zone offset transition (daylight savings time 'gap') 1989-4-16T00:00:000 [Asia/Shanghai]

大概意思就是时区偏移转换产生的非法错误,应该是logstash的input从sqlserver查询采集数据就开始出现时区问题了,所以改filter过滤插件应该是解决不了

所以先从源头查看,本机winserver2016,时区设置正常+8北京时间没问题

在配置input{jdbc{}}是已经增加了

jdbc_default_timezone => "Asia/Shanghai"

问题是没解决的,查询到老版本的logstash可以改配置 timestamp.rb文件来改

然后找提示的路径:

/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.1.0-java/lib/logstash/timestamp.rb

emmmmmm 这个路径在7.2版本已经没了,不存在logstash-core-版本号-java的文件夹了,研究了一下,有个新路径:

logstash-7.2.0logstash-coreliblogstashtimestamp.rb

打开一看

# The contents of this file have been ported to Java. It is included for for compatibility
# with plugins that directly require "logstash/timestamp".

文件仅是为了兼容,已经移植到java了,请教下这个该怎么弄??

最终是要解决logstash源头采集查询数据出现的时区问题,任何办法都行,先行谢过各位大佬

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

知足的幸福 2022-09-18 22:44:23

老哥有什么好的解决方案么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文