天天看点

17. 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个目的地。这些目的地由进行指定。

  1. 参数说明

2.1 @type 插件类型,取值为copy

2.2 copy_mode

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

包含以下几种传递方式:

  • no_copy:不产生日志拷贝,各

    <store>

    共享一份日志事件。这是默认的传递方式。这意味着,如果某个

    <store>

    对日志进行了修改,其他

    <store>

    也会继承这个修改。
  • shallow:采用浅拷贝的方式在

    <store>

    之间传递日志事件。
  • deep:采用深拷贝的方式在

    <store>

    插件中传递日志事件。其内部使用msgpack-ruby进行数据拷贝。
  • marshal:如果msgpack-ruby无法进行数据深拷贝,则可以尝试使用marshal这种方式。需要注意的是,marshal速度很慢。
<match app.**>
  @type copy
  <store>
    @type plugin1
  </store>
  <store>
    @type plugin2
  </store>
</match>
           
<match app.**>
  @type copy
  <store ignore_error>
    @type plugin1
  </store>
  <store>
    @type plugin2
  </store>
</match>