我正在通过Logstash 5.2将csv中的数据插入Elasticsearch 5.2中。我的日期以纳秒为单位存储在csv中。 Elasticsearch仅以毫秒为单位记录日期。当我尝试以十亿分之一秒为单位插入时,产生的日期距离很远。如何将其转换为毫秒然后插入?
input {
http {
}
}
filter {
csv {
separator => "|"
columns => ["logEntryTimeNano", "ip", "country", "state", "city"]
}
}
output {
elasticsearch {
hosts => ["127.0.0.1"]
index => "log"
}
}
最佳答案
由于问题出在纳米时间的后3位数字上,因此您可以编写一个ruby过滤器,以这种方式删除这些数字:
filter {
csv{
separator => ","
columns => ["logEntryTimeNano", "ip", "country", "state", "city"]
} ruby {
code => "event.set('[logEntryTimeNano]', event.get('logEntryTimeNano')[0..-4])"
}
}
关于elasticsearch - 如何在Logstash中将以纳秒为单位的时间转换为日期类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42901198/