timezone - 不能将 filebeat [beat][timezone] 与 logstash 日期过滤器插件一起使用?
问题描述
我正在使用未在时间戳中编码时区的 filebeat 将日志文件发送到 logstash。几个月来,我一直在使用 filebeat 处理器“add_locale”缩写格式添加 [beat][timezone] 的 logstash 日期过滤器插件。我在世界各地的几个时区都有服务器,当今天美国东海岸的时间从 EST 更改为 EDT 时,logstash 开始出现新时区值的时区解析错误,因为 filebeat 发送了 EDT,这不是有效的规范 ID 时区对于logstash(http://joda-time.sourceforge.net/timezones.html)。我对 CEST 和 CET 有同样的问题。
filebeat 和 logstash 是否有可能使用不同的时区文件格式?
文件节拍
processors:
- add_locale:
format: abbreviation
日志存储
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 只返回go返回的任何内容。
有没有人找到解决方法?
谢谢!
彼得
解决方案
尝试解析时区缩写通常不是一个好主意。除了你指出的情况之外,还有太多的歧义。
考虑“CST”。那是中部标准时间(美国)、中部标准时间(澳大利亚)、中国标准时间、古巴标准时间,还是别的什么?
只有极少数缩写也是有效的 IANA 时区标识符。除了 UTC,通常不鼓励使用它们。它们仅出于向后兼容的原因而存在,围绕一些边缘情况。
对于日志文件中的时间戳,缩写几乎没有用,您可能不需要完整的时区标识符,例如America/New_York
. 有在记录时有效的 UTC 偏移量就足够了,例如-05:00
(在 EST 期间)或-04:00
(在 EDT 期间)
事实上,根据filebeat 文档,默认格式是offset
. 我会坚持下去。
推荐阅读
- c# - WPF TreeView,IsExpanded 的 TwoWay 绑定不影响 C# 代码中的 GUI
- python - 使用 find() 从字符串变量中提取电子邮件
- python - django中招摇的网址
- reactjs - 安装反应时如何解决“未找到项目”错误
- c - 如何在C中分配字符串数组?
- ruby-on-rails - 如何检查数组中的每个单词是否包含子字符串并拒绝 Ruby on Rails 中的子字符串?
- swagger-2.0 - 如何使用 Spring Boot Open API 3 定义错误模式?
- gpflow - 对 SGPR 的 GPflow 多输出支持
- python - 无法将从 XPath 抓取的德语字符写入 CSV 文件
- r - R中的火山图:添加细节:仅着色公因数