如何在弹性搜索中将日志中的时间设置为主@timestamp

How to set time in log as main @timestamp in elasticsearch

我正在使用 logstash 为我的弹性数据库中的一些旧日志文件编制索引。 我需要 kibana/elastic 将日志文件中的时间戳设置为主 @timestamp。

我按以下方式使用 grok 过滤器: %{TIMESTAMP_ISO8601:@timestamp} 然而 elasticsearch 将索引时间设置为主 @timestamp 而不是写入日志行的时间戳。

知道我在这里做错了什么吗?

谢谢

使用date filter设置@timestamp字段。将时间戳以任何格式提取到一个单独的(临时)字段中,例如timestamp,并将其提供给日期过滤器。在您的情况下,您很可能能够使用特殊的 ISO8601 时间戳格式令牌。

filter {
  date {
    match => ["timestamp", "ISO8601"]
    remove_field => ["timestamp"]
  }
}