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>

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

时间: 2024-08-30 15:59:43

Fluentd插件rewrite-tag-filter介绍的相关文章

Filter介绍,运行顺序,实例

Filter介绍 Filter可觉得是Servlet的一种"变种",它主要用于对用户请求进行预处理,也能够对HttpServletResponse进行后处理,是个典型的处理链. 它与Servlet的差别在于:它不能直接向用户生成响应. 完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对server响应进行后处理. Filter有例如以下几个用处. 在HttpServletRequest到达Servlet之前,拦截客户的H

Filter介绍,执行顺序,实例

Filter介绍 Filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Servlet的区别在于:它不能直接向用户生成响应.完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理. Filter有如下几个用处. 在HttpServletRequest到达Servlet之前,拦截客户的HttpServ

Tag Helpers 介绍

Tag Helpers 介绍 原文:Introduction to Tag Helpers作者:Rick Anderson翻译:刘浩杨校对:高嵩(Jack) 什么是 Tag Helpers? Tag Helpers 提供了什么 管理 Tag Helper 范围 Tag Helpers 智能感知支持 Tag Helpers 和 HTML Helpers 比较 Tag Helpers 和 Web 服务器控件比较 自定义 Tag Helper 元素字体 附加资源 什么是 Tag Helpers ? 在

visualvm 插件 visual gc 使用介绍

visual gc 是 visualvm 中的图形化查看 gc 状况的插件. 具体详细介绍可参照: http://www.oracle.com/technetwork/java/visualgc-136680.html 本文也是在此基础上进行的整理归纳. OUTPUT FORMAT visual gc 工具分成三大块 the Visual GC window the Graph window, the Survivor Age Histogram window(可选的) 作者 对 eclipse

JSP笔记——8.Filter介绍

跟它的名字一样,filter能够拦截特定的用户请求或者相应,并对这些东西进行处理.虽然很少用,不过也可以对request进行response.filter可以拦截多个请求相应,一个请求响应也可以被多个filter拦截.使用filter只需要创建filter处理类,然后在xml中配置filter. 创建filter类 必须实现Filter接口,里面要有三个方法:init用于初始化filter:destroy用于销毁filter前完成某些资源的回收:doFilter实现过滤功能.因为filter是处

jquery插件之DataTables 参数介绍

DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内). 先把它主页上写的特性翻译罗列如下: 可变长度分页: 动态过滤: 多列排序,带数据类型检测功能: 列宽度的智能处理: 从多种数据源获取数据(DOM,js Array, ajax file, server-side returning): 滚动配置属性: 完整国际化支持: jquery UI ThemeRoller支持:

select2 插件自定义 tag 选择问题

问题描述 select2 设置 tags = true 的时候可以输入并选择自定义的内容.但是最近出现了 <select> 重新插入初始化的时候,选择了自定义 tag 但是界面没有更新的情况. 插件版本: select2 4.0.1 查找 跟着源码跑了几遍才发现 select2 会对选择进行过滤,通过 getHighlightedResults 方法找到 select option:selected 的对应选项,如果当期 tag 是已选中的就直接 self.trigger('close', {

Filter 介绍

Filter 可认为是 Servlet 的一种加强版,它主要用于对用户请求进行预处理,也可以对 HttpServletResponse 进行后处理,是个典型的处理链. Filter 也可对用户请求生成响应,这一点与 Servlet 相同,但实际上很少会使用 Filter 向用户请求生成响应.使用 Filter 完整的流程是:Filter 对用户请求进行预处理,接着将请求交给 Servlet 进行处理并生成响应,最后 Filter 再对服务器响应进行后处理. Filter 有如下几个用处: 1.在

【krpano】高德地图导航插件(源码+介绍+预览)

简介 krpano可以利用js调用第三方网页版地图,因此可以实现导航效果,用来帮助用户导航到我们全景所在的位置. 效果截图如下,在手机端点击左侧按钮,便会对用户进行定位,跳转至高德地图进行导航      使用说明 插件共有3个文件,如下图所示: nv.js为js代码,主要作用为浏览器定位,生成地图调用uri等. nv.xml为样式文件,定义了krpano中按钮的位置 navigation.png为图标 使用时,把上述3个文件复制到项目目录,修改xml文件中的目的地参数即可. desloc对应于目