Logstash - 将@timestamp 设置为使用微秒

Logstash - Set @timestamp to use microseconds

有没有办法更新 logstash 中的@timestamp 以便添加微秒?

在 Kibana 中,我们将格式设置为 'Date Nanos',但在 logstash 中,当我们使用日期过滤器插件设置 @timestamp 和时间戳时从文件中,微秒似乎被忽略了。

我认为这是因为日期过滤器插件处理毫秒级精度,对吗?如果是这样,设置@timestamp 以显示正在摄取的文件的微秒数的最佳方法是什么?

谢谢

来自 logstash 文件的样本

date {
    target => "@timestamp"
    match => ["file_timestamp", "YYYY-MM-dd HH:mm:ss.SSSSSS"]
}

在 Kibana 中格式化

不,logstash 只支持毫秒精度。当 elasticsearch 开始支持纳秒精度时,没有对 logstash 进行相应的更改。 github 上有两个未解决的问题要求进行更改,here and here

Logstash::Timestampclass只支持毫秒精度,因为它包装的Joda只支持毫秒。其中一个问题提到了从 Joda 迁移到 time/date 的原生 Java 处理。 logstash 期望 [@timestamp] 是一个 Logstash::Timestamp(例如,sprintf 引用假设这个)

您可以使用其他字段名称,在elasticsearch中使用模板将类型设置为date_nanos,并在logstash中将其作为字符串处理。