使用来自 JDBC 输入的日期时间替换 @timestamp

Replacing @timestamp using datetime from JDBC input

如何在不将 DateTime 转换为字符串然后对该列进行日期筛选的情况下替换 Logstash 管道中的 @timestamp 字段?

mutate {
  convert => ["datetime", "string"]
}
date {
  match => ["datetime", "ISO8601"]
}

为避免多个过滤器,可以对字段执行简单的重命名,操作如下:

mutate {
  id => "sample-rename-timestamp"
  rename => {
    "datetime" => "@timestamp"
  }
}

这会将消息到达 @timestamp 替换为您提供的字段。

因为jdbc输出字段datetime是日期类型,所以我们可以将其复制为@timestamp字段。

filter {
  mutate {
    copy => { "datetime" => "@timestamp" }
 }
}