Filebeat 到 Logstash 时区问题
Filebeat to Logstash timezone issue
使用 Filebeat 和 Logstash 7.9。
客户日志文件具有本地时区的时间戳。
想让 Logstash 知道 filebeat 所在的时区。
我可以通过添加来做到这一点:
processors:
- add_locale:
format: abbreviation
在 filebeat.yml 中,在 logstash 过滤器中使用 event.timezone 通过:
grok {
match => { "message" => "%{DATESTAMP:logdate} %{GREEDYDATA:jsonmess}"}
}
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "{{ event.timezone }}"
}
问题是时区格式的 filebeat 选项是“偏移量”和“缩写”,但 logstash 只需要“规范 ID”!
我怎样才能完成这项工作?
您可以在 Logstash 日期过滤器的 timezone
选项中使用 offset
。
例如,以下配置可以正常工作。
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "-03:00"
}
此外,您引用 event.timezone
字段的方式是错误的,您应该使用 %{[event][timezone}
而不是 {{ event.timezone }}
尝试将您的配置更改为
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "%{[event][timezone]}"
}
使用 Filebeat 和 Logstash 7.9。 客户日志文件具有本地时区的时间戳。 想让 Logstash 知道 filebeat 所在的时区。 我可以通过添加来做到这一点:
processors:
- add_locale:
format: abbreviation
在 filebeat.yml 中,在 logstash 过滤器中使用 event.timezone 通过:
grok {
match => { "message" => "%{DATESTAMP:logdate} %{GREEDYDATA:jsonmess}"}
}
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "{{ event.timezone }}"
}
问题是时区格式的 filebeat 选项是“偏移量”和“缩写”,但 logstash 只需要“规范 ID”! 我怎样才能完成这项工作?
您可以在 Logstash 日期过滤器的 timezone
选项中使用 offset
。
例如,以下配置可以正常工作。
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "-03:00"
}
此外,您引用 event.timezone
字段的方式是错误的,您应该使用 %{[event][timezone}
而不是 {{ event.timezone }}
尝试将您的配置更改为
date {
match => ["logdate", "yy-MM-dd HH:mm:ss,SSS"]
timezone => "%{[event][timezone]}"
}