Email时间转Logstash @timestamp时区解析错误,求助排查
问题分析与解决
咱们来拆解下你的Logstash日期解析配置里的两个关键点:
1. 月份格式符使用错误
你的原始日期里的月份是May——这是月份缩写形式,而你配置里写的MMMM对应的是完整月份名称(比如January、February这类全称)。正确的格式符应该是MMM,它专门用来匹配三个字母的月份缩写(像Jan、Feb、May都适用)。
2. @timestamp显示UTC是正常行为,并非时区解析错误
你看到的May 28th 2018, 14:53:54 +0000其实是符合预期的结果:Logstash的@timestamp字段默认会把所有解析后的日期统一转换为UTC时区存储。原始时间是15:53:54 +0100,转成UTC正好是14:53:54,这说明时区已经被正确解析了,只是存储格式遵循了Logstash的统一规范而已。
如果你需要保留原始时区的信息,或者在输出时展示原始时区的时间,可以额外添加字段存储原始时区的时间,或者在输出插件(比如Elasticsearch、stdout)里配置对应的时区格式。
修正后的Logstash配置
filter { date { match => ["date", "E, d MMM yyyy HH:mm:ss Z"] } }
内容的提问来源于stack exchange,提问作者Rob X
相关产品推荐
相关产品推荐

