Logstash:无法识别的@timestamp 值,将当前时间设置为@timestamp,原始在_@timestamp 字段中
Logstash : Unrecognized @timestamp value, setting current time to @timestamp, original in _@timestamp field
我有 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\""}
我尝试了不同的配置,比如在 space 周围添加引号,在日期过滤器之前使用 mutate 重命名字段(结果具有相同的警告,并且错误提示缺少时间戳),等...
在弹性搜索中存储的值中,时间戳是日志被解析的时间,而不是原始的(后 2/3 秒)。
我错过了什么?
我认为问题在于源消息中的字段名为@timestamp,就像默认值一样。
我们通过重命名源中的字段来解决它,将配置更改为:
date {
match => ["apptimestamp", "yyyy-MM-dd HH:mm:ss.SSS"]
timezone => "Europe/Paris"
}
我有 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\""}
我尝试了不同的配置,比如在 space 周围添加引号,在日期过滤器之前使用 mutate 重命名字段(结果具有相同的警告,并且错误提示缺少时间戳),等...
在弹性搜索中存储的值中,时间戳是日志被解析的时间,而不是原始的(后 2/3 秒)。
我错过了什么?
我认为问题在于源消息中的字段名为@timestamp,就像默认值一样。
我们通过重命名源中的字段来解决它,将配置更改为:
date {
match => ["apptimestamp", "yyyy-MM-dd HH:mm:ss.SSS"]
timezone => "Europe/Paris"
}