【问题标题】:Logstash: How to match the timezone ID 'CET' in a date filter pattern?Logstash:如何在日期过滤器模式中匹配时区 ID“CET”?
【发布时间】:2021-12-19 09:18:22
【问题描述】:

在 Logstash 中,我想使用日期过滤器将字符串转换为时间戳。字符串如下所示:

Fri Nov 05 06:24:28.651 CET 2021

我尝试了以下模式无济于事:

  date {
      match => [ "syslog_timestamp", "EEE MMM dd HH:mm:ss.SSS ZZZ yyyy"]
      locale => "en_US"
      timezone => "Europe/Berlin"
      target => "syslog_timestamp"
  }

这很令人困惑,因为 Logstash is said to use the Joda library 和 Joda 反过来说 'CET' is a legal timezone ID。我通过直接在 Java 应用程序中测试 Jody 库 v2.10.13 来确认结果。

如何在日期过滤器中解析 CET/CEST?

【问题讨论】:

    标签: date timezone logstash jodatime


    【解决方案1】:

    由于根据 Joda 的文档,time zone names (z) cannot be parsed 和 ZZZ 仍然不匹配夏令时变体“CEST”,因此我在 Logstash 中通过将时区代码作为文本处理并使用标准时区传递多个模式来解决这个问题和过滤器的夏令时区:

    match => [ "syslog_timestamp", "EEE MMM dd HH:mm:ss.SSS 'CET' yyyy", "EEE MMM dd HH:mm:ss.SSS 'CEST' yyyy"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多