Fluentd插件:过滤插件概述

 过滤插件是用来修改日志记录的

filter字面意思为过滤器,实际上并非简单的把一些东西给“滤掉”。
在计算机领域,它有“清洗、修改”的意思。
比如,图形图像领域熟知的“滤镜”一词,实际上也是filter。大名鼎鼎的ffmpeg就是通过很多filter来实现音视频的编解码和转码的。

同样,Fluentd也使用filter插件来实现对日志记录的过滤和修改。


过滤插件通常用于以下场景:

  1. 通过grep匹配一个或多个日志字段,过滤掉不符合条件的日志

  2. 向日志中增加新的字段,以丰富日志内容

  3. 删除或掩盖某些字段,使得日志合乎规格


【使用方法】

在配置文件中通过使用<filter>指令来添加一个过滤器插件。

<filter foo.bar> @type grep regexp1 message cool</filter>

这个配置片段用来对tag为foo.bar的日志进行过滤。

只有日志的message字段包含"cool",这条日志才会继续执行后续处理。

和用于输出插件的<match>指令一样,<filter>也是针对具有特定tag标签的日志的。

一旦日志事件被filter处理,该事件的处理过程会遵循配置文件中的顺序,自上而下地进行。

所以,如果有多个filter处理相同的tag,这些filter会依次被调用。

比如:

<filter foo.bar> @type grep regexp1 message cool</filter>
<filter foo.bar> @type record_transformer <record> hostname "#{Socket.gethostname}" </record></filter>

这个配置片段中,只有message字段中包含"cool"的日志记录才会被增加hostname字段。


【过滤链路优化】

我们看到,多个filter可以形成一个过滤链路,依次执行不同的处理逻辑。

如果在处理链路中使用了多个filter,Fluentd会尝试优化对filter的调用,以提升性能。

这个优化的执行有一个前提条件,就是过滤链路中的所有插件必须使用filter方法,而不是filter_stream方法。

这个涉及到插件的开发细节,我们先不用管。

如果你在Fluentd的运行日志中发现以下信息,这表示优化被禁用了。

disable filter chain optimization because [Fluent::Plugin::XXXFilter] uses `#filter_stream` method

这是一个不太重要的信息,可以忽略。


【过滤插件列表】

这里列出几个常用的filter插件。

  • grep

  • record_transformer

  • filter_stdout


我们接下来会一起学习这几个常用过滤插件的使用方法。

(0)

相关推荐

  • 美团外卖流量数据的采集加工和应用

    编辑整理:史士博 出品平台:DataFunTalk 导读:本文介绍了美团外卖流量数据采集.流量数仓的建设以及典型的流量数据应用,其中重点介绍了流量数仓建设过程.在建设过程中需要关注的问题以及对应的解决 ...

  • linux tail 过滤日志文件中的关键字

    linux tail 过滤日志文件中的关键字

  • Fluentd 过滤插件:grep 用法详解

    " filter_grep 是一个常用的过滤日志内容的插件." 熟悉或者使用过 Linux 系统的小伙伴应该知道,Linux 中有三个处理文本内容的利器:grep.awk 和 se ...

  • PS插件portraiture插件如何使用?

    PS中的portraiture插件是如何来使用的,其实非常的简单,虽然操作界面复杂,但是用到的不多,下面看看操作吧. 1.首先我们在滤镜下的插件里面找到portraiture插件. 2.需要注意的是, ...

  • PS插件.photoshop插件.PS滤镜.photoshop滤镜.PS扩展插件大全

    欢迎来到[ps插件/ps滤镜插件]专版:</strong> 本版提供最全的PS滤镜,PS插件汉化版,最新PS磨皮滤镜下载,ps调色插件,ps抠图插件,PS磨皮插件,PS特效插件,PS插件打 ...

  • rubberhose插件|rubberhose插件下载 v1.0附安装教程

    rubberhose插件是针对"Adobe After Effects"推出的卡通人物关节骨骼绑定联动弹跳MG动画效果脚本,也是目前市面上制作MG人物绑定动画最简单方便的AE脚本. ...

  • Fluentd插件:解析插件概述

    " 解析插件用于适配各种源数据" 我们知道,Fluentd是一个通用的日志采集框架,一个很重要的原因就在于它可以处理各种各样的源数据. 处理数据的第一步就是要识别这些数据的格式. ...

  • Fluentd插件:输出插件概述

    输出插件用于将日志输出到指定的后端系统(包括存储.实时分析等).输出插件通常支持格式化和缓存功能. Fluentd v1.0输出插件有3种缓存与输出模式: 无缓存模式:不缓存数据,直接输出处理结果. ...

  • Fluentd输出插件:out_elasticsearch用法详解

    " 把日志输出到elasticsearch做业务分析,这大概是最普遍的日志采集用途了" out_elasticsearch 输出插件用于将日志记录写入elasticsearch. ...

  • Fluentd输出插件:rewrite_tag_filter用法详解

    我们在做日志处理时,往往会从多个源服务器收集日志,然后在一个(或一组)中心服务器做日志聚合分析.源服务器上的日志可能属于同一应用类型,也可能属于不同应用类型. 我们可能需要在聚合服务器上对这些不同类型 ...

  • Fluentd输入插件:in_http用法详解

    in_http插件允许使用HTTP协议来采集日志事件.这个插件会建立一个支持REST风格的HTTP端点,来接收日志事件请求. [配置示例] 以下片段展示了in_http插件的简单用法. <sou ...