码迷,mamicode.com
首页 > 其他好文 > 详细

Fluentd插件rewrite-tag-filter介绍

时间:2018-11-07 23:14:00      阅读:421      评论:0      收藏:0      [点我收藏+]

标签:rap   无法   example   一个   event   path   用法   font   使用   

安装方法:

gem install fluent-plugin-rewrite-tag-filter

详细文档:

https://github.com/fluent/fluent-plugin-rewrite-tag-filter       ######具体用法
https://docs.fluentd.org/v1.0/articles/out_rewrite_tag_filter    ######官方文档
tag是什么?在fluentd中事件流可以通过tag来控制,filter,parse,match,label都可以筛选tag来处理对应的event
rewrite-tag根据key的值来重写tag,支持正则表达式匹配,invert支持反向匹配,可以放在末尾来匹配所有不符合上面规则的event,如下所示
<match td.apache.access>
  @type rewrite_tag_filter
  capitalize_regex_backreference yes
  <rule>
    key     path
    pattern /\.(gif|jpe?g|png|pdf|zip)$/
    tag clear
  </rule>
  <rule>
    key     status
    pattern /^200$/
    tag     clear
    invert  true
  </rule>
  <rule>
    key     domain
    pattern /^.+\.com$/
    tag     clear
    invert  true
  </rule>
  <rule>
    key     domain
    pattern /^maps\.example\.com$/
    tag     site.ExampleMaps
  </rule>
  <rule>
    key     domain
    pattern /^news\.example\.com$/
    tag     site.ExampleNews
  </rule>
  <rule>
    key     domain
    pattern /^(mail)\.(example)\.com$/
    tag     site.$2$1
  </rule>
  <rule>
    key     domain
    pattern /.+/
    tag     site.unmatched
  </rule>
</match>

注意:一旦event(叫日志也行)进入 rewrite_tag_filter中过滤,任何没有被规则匹配的记录都将丢掉,实验下来是这种效果,所以可以在最后用invert来匹配所有其他的key值情况

1.0之后,官方比较推荐用label标签,而这个插件可以和relabel结合使用,同时因为在label中可以套filter标签和match标签,可以对event再过滤一次,如果你有这种需求,

<match pattern>
  @type relabel
  @label @foo
</match>
<label @foo>
  <filter pattern>
  ...
  </filter>
  <match pattern>
    ...
  </match>
</label>
使用这个插件重写tag的时候一定要注意定义好tag的格式,因为fluentd的routing是从上到下的,意思是每次要路由的时候都从上到下扫描一次,个人感觉有点类似iptables,所以如果是如下情况,会造成一个回路,无法输出
<match app.**>
  @type rewrite_tag_filter
  <rule>
    key     level
    pattern /(.+)/
    tag     app.$1
  </rule>
<match>

<match app.**>
  @type forward
  # ...
</match>

改成下面就好了

<match app.**>
  @type rewrite_tag_filter
  <rule>
    key     level
    pattern /(.+)/
    tag     level.app.$1
  </rule>
<match>

<match level.app.**>
  @type forward
  # ...
</match>

 

 

Fluentd插件rewrite-tag-filter介绍

标签:rap   无法   example   一个   event   path   用法   font   使用   

原文地址:https://www.cnblogs.com/nieqibest/p/9926207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!