我正在寻找一种使用grok解析器解析数据的方法,但我似乎仍然坚持如何使用它。 我的目的是我想使用过滤器使用grok模式添加其他字段。
类似的东西:
<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解析器?
答案 0 :(得分:2)
使用Fluentd v0.12.29包含的过滤器解析器插件进行以下配置。
v012.29不提供<parse>
部分。
它自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