在 Fluentd 中使用 Grok 解析器

Using Grok parser in Fluentd

我正在寻找一种使用 grok 解析器解析数据的方法,但我似乎对如何使用它感到困惑。 我的目的是我想使用过滤器使用 grok patter 添加额外的字段。

类似于:

<filter acme.**>
    @type parser
    key_name log
    format grok
    <parse>
        <grok>
            @type grok
            grok_pattern grok_pattern %{TIMESTAMP_ISO8601:time_stamp}%{SPACE}
        </grok>
    </parse>
</filter>

使用这个 Fluend 会抱怨或警告很多东西没有被使用..

有关如何使用过滤器在 Fluentd 中使用 Grok 解析器的提示?

它与以下配置配合使用 Fluentd v0.12.29 包含的过滤器解析器插件。 <parse> 部分不适用于 v012.29。 它从 v0.14 开始可用,但 Fluentd v0.14.8 不包括过滤器解析器插件。 参见 https://github.com/fluent/fluentd/pull/1191

并且 ttps://github.com/tagomoris/fluent-plugin-parser 暂时不支持 Fluentd v0.14。

<source>
  @type dummy
  tag dummy.log
  dummy [
    { "message": "Oct 24 09:01:33 mymachine uim-toolbar[5831]: Theme parsing error: <data>:2:30: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version" },
    { "message": "Oct 24 09:01:33 mymachine uim-toolbar[5831]: Theme parsing error: <data>:3:27: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version" },
    { "message": "Oct 24 09:01:33 mymachine uim-toolbar[5831]: Theme parsing error: <data>:2:30: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version" }
  ]
</source>

<filter **>
  @type parser
  key_name message
  format grok
  grok_pattern %{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{SYSLOGPROG}: %{GREEDYDATA:message}
</filter>

<match **>
  @type stdout
</match>

另见 https://github.com/fluent/fluent-plugin-grok-parser/issues/23