Logstash:无法识别@timestamp值,将当前时间设置为@timestamp,_@timestamp字段中为原始时间

6gpjuf90  于 2023-08-01  发布在  Logstash
关注(0)|答案(1)|浏览(216)

我将JSON日志消息发送到logstash,它看起来像:

{"@timestamp":"2017-08-10 11:32:14.619","level":"DEBUG","logger_name":"application","message":"Request processed in 1 ms"}

字符串
和logstash配置为:

json {
    source => "message"
}

date {
  match => ["@timestamp", "yyyy-MM-dd HH:mm:ss.SSS"]
  timezone => "Europe/Paris"
}


但我在日志里有个警告

[2017-08-10T11:21:16,739][WARN ][logstash.filters.json    ] Unrecognized @timestamp value, setting current time to @timestamp, original in _@timestamp field {:value=>"\"2017-08-10 11:20:34.527\""}


我尝试了不同的配置,比如在空格周围添加引号,在日期过滤器之前用mutate重命名字段(结果是相同的警告,以及一个错误,说时间戳丢失),等等。
在ElasticSearch中存储的值中,时间戳是日志被解析的时间,而不是原始的时间(2/3秒之后)。
我错过了什么?

jljoyd4f

jljoyd4f1#

我认为问题在于源消息中的字段名为@timestamp,就像默认值一样。
我们通过重命名源代码中的字段来解决这个问题,添加更改配置为:

date {
  match => ["apptimestamp", "yyyy-MM-dd HH:mm:ss.SSS"]
  timezone => "Europe/Paris"
}

字符串

相关问题