Logstash 在解析日期时省略夏令时
Logstash omitting daylight saving time when parsing date
我的日志文件包含没有时区指示符的时间戳。
格式为 dd-MMM-yyyy::HH:mm:ss
我的服务器位于欧洲中部,因此处于 UTC+1 时区,但目前使用的 DST 导致 UTC+2。
日志文件中的日期:2017-07-25::17:30:00
被解析为 2017-07-25T16:30:00Z
。不过应该是2017-07-25T15:30:00Z
。因为我们现在是夏令时。
Logstash 似乎只考虑时区而不考虑 DST。
我该如何解决这个问题?
我的 logstash 配置:
date {
match => ["logdate", "dd-MMM-yyyy::HH:mm:ss"]
target => "@timestamp"
remove_field => "logdate"
}
您需要指定日期所在的时区:
date {
match => ["logdate", "dd-MMM-yyyy::HH:mm:ss"]
target => "@timestamp"
remove_field => "logdate"
timezone => "Europe/Zurich" <-- add this line
}
您可以将 "Europe/Zurich" 更改为 whatever timezone makes sense to you (other list of time zones that might be of use)
我的日志文件包含没有时区指示符的时间戳。
格式为 dd-MMM-yyyy::HH:mm:ss
我的服务器位于欧洲中部,因此处于 UTC+1 时区,但目前使用的 DST 导致 UTC+2。
日志文件中的日期:2017-07-25::17:30:00
被解析为 2017-07-25T16:30:00Z
。不过应该是2017-07-25T15:30:00Z
。因为我们现在是夏令时。
Logstash 似乎只考虑时区而不考虑 DST。
我该如何解决这个问题?
我的 logstash 配置:
date {
match => ["logdate", "dd-MMM-yyyy::HH:mm:ss"]
target => "@timestamp"
remove_field => "logdate"
}
您需要指定日期所在的时区:
date {
match => ["logdate", "dd-MMM-yyyy::HH:mm:ss"]
target => "@timestamp"
remove_field => "logdate"
timezone => "Europe/Zurich" <-- add this line
}
您可以将 "Europe/Zurich" 更改为 whatever timezone makes sense to you (other list of time zones that might be of use)