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>
    乌龟虽然跑的慢但是比兔子长寿啊
  • 相关阅读:
    tcp和udp的区别
    链路聚合配置
    TCP/IP协议
    ip数据报格式
    私有IP地址和公网IP地址
    ipconfig
    ipconfig
    命令更改ip地址2
    命令更改ip地址一
    路由器静态ip设置
  • 原文地址:https://www.cnblogs.com/nieqibest/p/9926207.html
Copyright © 2011-2022 走看看