Fluentd输出插件:out_copy用法详解

copy即复制,out_copy的作用就是将日志事件复制到多个输出,这样就可以对同一份日志做不同类型的分析处理。
out_copy内置于Fluentd,无需单独安装。
  1. 示例配置

    <match pattern> @type copy <store> @type file path /var/log/fluent/myapp1 ... </store> <store> ... </store> <store> ... </store></match>

    这个示例将日志输出到本地文件和其他n个目的地。

    这些目的地由<store>进行指定。

  2. 参数说明

    1. @type

      插件类型,取值为copy

    2. copy_mode

      指定日志事件在<store>插件间的传递方式。

      包含以下几种传递方式:

      no_copy:

      不产生日志拷贝,各<store>共享一份日志事件。

      这是默认的传递方式。

      这意味着,如果某个<store>对日志进行了修改,其他<store>也会继承这个修改。

      shallow:

      采用浅拷贝的方式在<store>之间传递日志事件。

      复制是为了避免某个<store>对日志的修改会影响到其他<store>。

      浅拷贝和深拷贝是对象复制的两种方式,主要是针对对象中是否存在嵌套引用对象的情况。

      如果对象嵌套引用了其他对象,浅拷贝不会对引用对象进行复制,而深拷贝则会复制引用对象指向的内容。

      如果<store>中的插件要修改日志事件,但不对嵌套的引用对象进行修改,则可以使用shallow拷贝;

      如果<store>需要修改嵌套的引用对象,则需要使用下边两种深拷贝方式。

      deep:

      采用深拷贝的方式在<store>插件中传递日志事件。

      其内部使用msgpack-ruby进行数据拷贝。

      marshal:

      如果msgpack-ruby无法进行数据深拷贝,则可以尝试使用marshal这种方式。

      需要注意的是,marshal速度很慢。

    3. <store>

      指定存储目的地。其使用方法和<match>相似,可以在其中使用各种输出插件。

      out_copy插件至少要配置一个<store>。

      <store>支持一个可选的参数:ignore_error。

      在使用多个<store>的场景下,若某个<store>抛出了错误,会影响到其他<store>。

      比如:

      <match app.**> @type copy <store> @type plugin1 </store> <store> @type plugin2 </store></match>

      如果plugin1发生错误,plugin2便不会被执行。

      可在<store>中启用ignore_error,以避免此种情况的发生。

      <match app.**> @type copy <store ignore_error> @type plugin1 </store> <store> @type plugin2 </store></match>
(0)

相关推荐

  • TBtools | 插件商店(Plugin Store)面世!

    写在前面 TBtools 文稿见刊前后,我释放了 TBtools 的插件(Plugin)功能,支持插件安装和卸载(Ctrl+鼠标点击).而插件的分发则一直是通过用户使用交流群(QQ或者微信).如此下来 ...

  • 号称下一代日志收集系统!来看看它有多强

    后面随着架构的优化与演进,又引入另一个轻量级的组件 Filebeat,Filebeat和Logstash一样属于日志收集处理工具,基于原先 Logstash-fowarder 的源码改造出来的.与Lo ...

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

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

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

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

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

    stdout即标准输出,out_stdout将收到的日志事件打印到标准输出. 如果Fluentd以daemon方式在后台运行,out_stdout会将事件输出到Fluentd的运行日志中. 这个插件在 ...

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

    和上一篇in_forward相对应的插件是out_forward. out_forward是一个带缓存的输出插件,用于向其他节点转发日志事件,并支持转发节点之间的负载均衡和自动故障切换. out_fo ...

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

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

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

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

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

    in_forward插件通常用于从其他节点接收日志事件,这些节点包括其他Fluentd实例.fluent-cat命令行或者Fluentd客户端程序.这是目前效率最高的日志事件接收方法. in_forw ...

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

    in_tail输入插件内置于Fluentd中,无需安装.它允许fluentd从文本文件尾部读取日志事件,其行为类似linux的tail -F命令(按文件名来tail).这几乎是最常用的一个输入插件了. ...

  • Fluentd-kafka插件用法详解

    Fluentd支持从kafka订阅数据,同时支持向kafka发布数据.这两项功能集成在一个插件中:fluent-plugin-kafka,我们在下文中分别称之为输入插件和输出插件. [安装说明] 通过 ...