我正在使用未在时间戳中编码的时区来将日志文件发送到logstash。几个月来,我一直在使用FileBeat处理器" add_locale"缩写格式添加[Beat] [TimeZone]的LogStash Date filter插件。我在世界各地的几个时区都有服务器,当今天从EST到EDT LogStash发生的时间变化时,新时区值开始有时区解析错误,因为FileBeat已发送EDT,这不是有效的规范ID时区对于logstash(http://joda time.sourceforge.net/timezones.html)。我对CEST和CET也有同样的问题。
FileBeat和LogStash可能使用不同的时区提交格式?
filebeat
processors:
- add_locale:
format: abbreviation
logstash
date {
locale => "en"
match => ["corp.log.entryTimestamp", "yyyy-MM-dd HH:mm:ss,SSS"]
timezone => "%{[beat][timezone]}"
tag_on_failure => ["timestamp_parse_failed"]
target => "@timestamp"
}
看起来FileBeat只是返回任何返回的内容。
有人为此找到了解决方法吗?
谢谢!
彼得
尝试解析时区缩写通常不是一个好主意。除了您指出的案例外,还有太多的歧义。
考虑" CST"。是中央标准时间(美国),中央标准时间(澳大利亚),中国标准时间,古巴标准时间,其他东西吗?
只有很少的缩写也是有效的IANA时区标识符。除UTC以外,它们通常会灰心。它们仅出于几个边缘案例的向后兼容原因而存在。
对于日志文件中的时间戳,缩写几乎没有用,您可能不需要像America/New_York
这样的全职区域标识符。在记录时有效的UTC的偏移是足够的,例如-05:00
(EST)或-04:00
(在EDT期间)
的确,根据FileBeat文档,默认格式为offset
。我会坚持下去。