elasticsearch 如何将纳秒时间转换为Logstash中的日期类型?
我正在通过Logstash 5.2将csv中的数据插入Elasticsearch 5.2。我的日期以纳秒为单位存储在csv中。Elasticsearch仅以毫秒为单位获取日期。当我尝试在纳秒内插入时,得到的日期是遥远的未来。如何将其转换为毫秒,然后插入elasticsearch 如何将纳秒时间转换为Logstash中的日期类型?,elasticsearch,logstash,elasticsearch,Logstash,我正在通过Logstash 5.2将csv中的数据插入Elasticsearch 5.2。我的日期以纳秒为单位存储在csv中。Elasticsearch仅以毫秒为单位获取日期。当我尝试在纳秒内插入时,得到的日期是遥远的未来。如何将其转换为毫秒,然后插入 input { http { } } filter { csv { separator => "|" columns => ["logEntryTimeNano", "ip",
input {
http {
}
}
filter {
csv {
separator => "|"
columns => ["logEntryTimeNano", "ip", "country", "state", "city"]
}
}
output {
elasticsearch {
hosts => ["127.0.0.1"]
index => "log"
}
}
由于您的问题出现在nanotime后面的3位数字上,您只需编写一个ruby过滤器,以这种方式删除这些数字:
filter {
csv{
separator => ","
columns => ["logEntryTimeNano", "ip", "country", "state", "city"]
} ruby {
code => "event.set('[logEntryTimeNano]', event.get('logEntryTimeNano')[0..-4])"
}
}
由于您的问题出现在nanotime后面的3位数字上,您只需编写一个ruby过滤器,以这种方式删除这些数字:
filter {
csv{
separator => ","
columns => ["logEntryTimeNano", "ip", "country", "state", "city"]
} ruby {
code => "event.set('[logEntryTimeNano]', event.get('logEntryTimeNano')[0..-4])"
}
}
您可以使用mutate/gsub删除最后6个数字(考虑到您的数字由9个数字组成)
如果您使用Elasticsearch 7,您也可以查看,因为此版本已经支持纳秒。您可以使用mutate/gsub删除最后6个数字(考虑到您的数字由9个数字组成)
如果您使用Elasticsearch 7,您也可以查看一下,因为这个版本已经支持纳秒。ruby code中是否应该有方括号覆盖
logEntryTimeNano
?@khateeb只要是单个字段,如果您想访问嵌套字段,就可以不使用方括号(让我们fay foo.bar)您必须编写[foo][bar]
(必填)。有关更多详细信息,请参见logstash事件api:ruby code中是否应该有包含logEntryTimeNano
的方括号?@khateeb只要它是一个字段,就可以不使用方括号,如果要访问嵌套字段(让我们fay foo.bar),则必须编写[foo][bar]
(必需)。有关更多详细信息,请参阅日志存储事件api: