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>
    乌龟虽然跑的慢但是比兔子长寿啊
  • 相关阅读:
    服务器Nginx 反向代理 其他服务器 8181端口 失败的问题
    Nginx 文件下载 apk 文件下载不了
    https和http 调用过程中请求头 referrer 获取不到的问题
    windows 下 nginx log 分割
    使用Windows Service Wrapper快速创建一个Windows Service 如nginx
    VS 中 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
    使用With递归查询 树
    nginx 常用命令
    (译)(function (window, document, undefined) {})(window, document); 真正的意思
    在Emacs 24.4中使用在线字典
  • 原文地址:https://www.cnblogs.com/nieqibest/p/9926207.html
Copyright © 2011-2022 走看看