我使用jdbc-plugin针对MSSQL数据库每分钟查询一次。 在这个数据库中,我的时间戳存储在滴答。字段名称是lastupdate。 现在我想将lastupdate字段转换为时间戳格式,然后用转换后的lastvalue字段覆盖@timestamp字段。 我试图用从另一篇文章提供的方法提供的方法从ticks到datetime(Parse ticks to datetime)转换,但无法实现转换并得到_rubyexception和_dateparsefailure的ruby过滤器插件。使用Ruby插件将刻度转换为logstash中的@timestamp
我的过滤器看起来是这样的:
filter {
if [type] == "mydb" {
ruby {
init => "require 'time'"
code => "lastupdate = Time.at(event['lastupdate'].to_s)"
}
date {
match => [ "lastupdate", "MM/dd/YY HH:mm:ss,SSS" ]
}
}
}
举例LASTUPDATE:转换后636062509024728064
日期与 http://tickstodatetime.com/:2016年8月8日T11:01:42.472Z
附加Ticks中的信息:https://msdn.microsoft.com/en-us/library/system.datetime.ticks%28v=vs.110%29.aspx
请用一个例子日志信息编辑你的问题你正试图解析 – pandaadb
@pandaadb添加示例。使用上面的过滤器,lastupdate字段的值根本不会改变。提前致谢! – cvanhalt
你没有分配它。什么样的时间映射? :) Time.at给我:“281182817-11-03 04:01:49 +0000” – pandaadb