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]}"
}