elasticsearch - 如何在Logstash中将以纳秒为单位的时间转换为日期类型?

标签 elasticsearch logstash

我正在通过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/

相关文章:

sorting - Elasticsearch 中的意外(不区分大小写)字符串排序

python - 在日志记录配置文件中使用外部模块

elasticsearch - 在Logstash 5.x中修改默认的Elasticsearch模板

elasticsearch - 过滤数据时出现logstash grok问题

java - Spark Elasticsearch : Multiple ES-Hadoop versions detected in the classpath

elasticsearch - 防止某些索引与Elasticsearch 1.7.x中的其他节点共享

lucene - Elasticsearch使用空格搜索确切的查询

elasticsearch - packetbeat没有捕获大的HTTP POST数据包

rabbitmq - 如果我在 rabbitmq 中配置队列大小限制会发生什么?

elasticsearch - ElasticSearch适用范围和范围