logstash7.2报错inputs.jdbc query 时区偏移导致的错误。
环境: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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
老哥有什么好的解决方案么?