您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Fluentd中out_copy如何使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
示例配置
<match pattern> @type copy <store> @type file path /var/log/fluent/myapp1 ... </store> <store> ... </store> <store> ... </store></match>
這個示例將日志輸出到本地文件和其他n個目的地。
這些目的地由<store>進行指定。
參數說明
@type
插件類型,取值為copy
copy_mode
指定日志事件在<store>插件間的傳遞方式。
包含以下幾種傳遞方式:
no_copy:
不產生日志拷貝,各<store>共享一份日志事件。
這是默認的傳遞方式。
這意味著,如果某個<store>對日志進行了修改,其他<store>也會繼承這個修改。
shallow:
采用淺拷貝的方式在<store>之間傳遞日志事件。
復制是為了避免某個<store>對日志的修改會影響到其他<store>。
淺拷貝和深拷貝是對象復制的兩種方式,主要是針對對象中是否存在嵌套引用對象的情況。
如果對象嵌套引用了其他對象,淺拷貝不會對引用對象進行復制,而深拷貝則會復制引用對象指向的內容。
如果<store>中的插件要修改日志事件,但不對嵌套的引用對象進行修改,則可以使用shallow拷貝;
如果<store>需要修改嵌套的引用對象,則需要使用下邊兩種深拷貝方式。
deep:
采用深拷貝的方式在<store>插件中傳遞日志事件。
其內部使用msgpack-ruby進行數據拷貝。
marshal:
如果msgpack-ruby無法進行數據深拷貝,則可以嘗試使用marshal這種方式。
需要注意的是,marshal速度很慢。
<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>
關于Fluentd中out_copy如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。