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>之间传递日志事件。

复制是为了避免某个<store>对日志的修改会影响到其他<store>

浅拷贝和深拷贝是对象复制的两种方式,主要是针对对象中是否存在嵌套引用对象的情况。

如果对象嵌套引用了其他对象,浅拷贝不会对引用对象进行复制,而深拷贝则会复制引用对象指向的内容。

如果<store>中的插件要修改日志事件,但不对嵌套的引用对象进行修改,则可以使用shallow拷贝;

如果<store>需要修改嵌套的引用对象,则需要使用下边两种深拷贝方式。

  • deep:采用深拷贝的方式在<store>插件中传递日志事件。其内部使用msgpack-ruby进行数据拷贝。
  • marshal:如果msgpack-ruby无法进行数据深拷贝,则可以尝试使用marshal这种方式。需要注意的是,marshal速度很慢。

2.3 <store>

指定存储目的地。其使用方法和相似,可以在其中使用各种输出插件。

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>

17. Fluentd输出插件:out_copy用法详解的更多相关文章

  1. golang格式化输出-fmt包用法详解

    golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org    声明: 此片文章并非原创,大多数内容都是来自:https:// ...

  2. 跟着百度学PHP[17]-PHP扩展CURL的用法详解

    实现的功能: 1.实现远程获取和采集内容2.实现PHP 网页版的FTP上传下载3.实现模拟登陆:去一个邮件系统,curl可以模拟cookies4.实现接口对接(API),数据传输等:通过一个平台发送短 ...

  3. Vue插件编写、用法详解(附demo)

    Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...

  4. Vue1.0用法详解

    Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 ...

  5. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  6. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

  7. Ubuntu kill命令用法详解

    转自:Ubuntu kill命令用法详解 1. kill   作用:根据进程号杀死进程   用法: kill [信号代码] 进程ID   root@fcola:/# ps -ef | grep sen ...

  8. JavaScript中return的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...

  9. C语言对文件的操作函数用法详解1

    在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...

随机推荐

  1. ModuleNotFoundError: No module named 'distutils.spawn'

    解决办法: 安装python3-distutils sudo apt-get install python3-distutils

  2. Chrome安装Vue.js devtool F12无效

    要安装 vue-devtools-4.1.4_0 链接: https://pan.baidu.com/s/1aeUxKJEUDW0U_i6uuAZFvQ 提取码: 4btc vue-devtools- ...

  3. surging作者出具压测结果

    前言 首先回应下@wen-wen 所贴的压测报告,我也把我和客户压测碰到的问题,和压测结果贴出来,这个结果是由客户提供的.不会有任何的舞弊手脚问题 问题一:Task.Run慎用 首先在最新的社区版本已 ...

  4. 5-9 Leaf 分布式ID

    Leaf 什么Leaf leaf是叶子的意思 我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统 我们可以在Github网站上下载项目直接使用 为什么需要Leaf 上面的图片中 是一个 ...

  5. logrotate command in Linux

    背景 在生产过程中,由于磁盘空间.保留周期等因素,会对系统.应用等日志提出要求,要求系统日志定期进行轮转.压缩和删除,从而减少开销,而系统自带的logrotate  则是一个简单又实用的小工具,下面着 ...

  6. 算法竞赛进阶指南0x41并查集

    并查集简介 并查集的两类操作: Get 查询任意一个元素是属于哪一个集合. Merge 把两个集合合并在一起. 基本思想:找到代表元. 注意有两种方法: 使用一个固定的值(查询方便,但是在合并的时候需 ...

  7. 第十三天python3 生成器yield

    生成器generator 生成器指的是生成器对象,可由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象: 生成器函数 函数体中包含yield语句的函数,返 ...

  8. sql语句实现每日资格设置

    CREATE TABLE 'iDayAuth'( 'openid' VARCHAR(16) NOT NULL , 'iStamp' INT(10) NOT NULL, 'iDayAuth' SMALL ...

  9. FreeSql 将 Saas 租户方案精简到极致[.NET ORM SAAS]

    什么是多租户 维基百科:"软件多租户是指一种软件架构,在这种软件架构中,软件的一个实例运行在服务器上并且为多个租户服务".一个租户是一组共享该软件实例特定权限的用户.有了多租户架构 ...

  10. DolphinScheduler 功能开发:⼯作流级别任务空跑(后端),测试工作流是否正确执行...

    点击上方 蓝字关注我们 ✎ 编 者 按 在今年由中国科学院软件研究所主办的开源软件所供应链点亮计划-开源之夏活动中,有不少小伙伴提交了关于 DolphinScheduler 的项目,本期是来自成都信息 ...