前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fluentd输出插件:out_copy用法详解

Fluentd输出插件:out_copy用法详解

作者头像
Fluentd中文网
发布2020-06-10 16:16:41
9850
发布2020-06-10 16:16:41
举报
文章被收录于专栏:Fluentd学习交流Fluentd学习交流

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>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Fluentd学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档