copy即複制,out_copy的作用就是将日志事件複制到多個輸出,這樣就可以對同一份日志做不同類型的分析處理。
out_copy内置于Fluentd,無需單獨安裝。
- 示例配置
<match pattern>
@type copy
<store>
@type file
path /var/log/fluent/myapp1
...
</store>
<store>
...
</store>
<store>
...
</store>
</match>
這個示例将日志輸出到本地檔案和其他n個目的地。這些目的地由進行指定。
- 參數說明
2.1 @type 插件類型,取值為copy
2.2 copy_mode
指定日志事件在插件間的傳遞方式。
包含以下幾種傳遞方式:
- no_copy:不産生日志拷貝,各
共享一份日志事件。這是預設的傳遞方式。這意味着,如果某個<store>
對日志進行了修改,其他<store>
也會繼承這個修改。<store>
- shallow:采用淺拷貝的方式在
之間傳遞日志事件。<store>
- deep:采用深拷貝的方式在
插件中傳遞日志事件。其内部使用msgpack-ruby進行資料拷貝。<store>
- 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>