天天看點

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>