zoukankan      html  css  js  c++  java
  • Fluentd插件rewrite-tag-filter介绍

    安装方法:

    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>
    乌龟虽然跑的慢但是比兔子长寿啊
  • 相关阅读:
    matplotlib 进阶之origin and extent in imshow
    Momentum and NAG
    matplotlib 进阶之Tight Layout guide
    matplotlib 进阶之Constrained Layout Guide
    matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions
    matplotlb 进阶之Styling with cycler
    matplotlib 进阶之Legend guide
    Django Admin Cookbook-10如何启用对计算字段的过滤
    Django Admin Cookbook-9如何启用对计算字段的排序
    Django Admin Cookbook-8如何在Django admin中优化查询
  • 原文地址:https://www.cnblogs.com/nieqibest/p/9926207.html
Copyright © 2011-2022 走看看