17. Fluentd输出插件:out_copy用法详解
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>
之间传递日志事件。
复制是为了避免某个<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用法详解的更多相关文章
- golang格式化输出-fmt包用法详解
golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org 声明: 此片文章并非原创,大多数内容都是来自:https:// ...
- 跟着百度学PHP[17]-PHP扩展CURL的用法详解
实现的功能: 1.实现远程获取和采集内容2.实现PHP 网页版的FTP上传下载3.实现模拟登陆:去一个邮件系统,curl可以模拟cookies4.实现接口对接(API),数据传输等:通过一个平台发送短 ...
- Vue插件编写、用法详解(附demo)
Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...
- Vue1.0用法详解
Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- Ubuntu kill命令用法详解
转自:Ubuntu kill命令用法详解 1. kill 作用:根据进程号杀死进程 用法: kill [信号代码] 进程ID root@fcola:/# ps -ef | grep sen ...
- JavaScript中return的用法详解
JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
随机推荐
- 【Python爬虫技巧】快速格式化请求头Request Headers
你好,我是 @马哥python说 . 我们在写爬虫时,经常遇到这种问题,从目标网站把请求头复制下来,粘贴到爬虫代码里,需要一点一点修改格式,因为复制的是字符串string格式,请求头需要用字典dict ...
- 40+倍提升,详解 JuiceFS 元数据备份恢复性能优化之路
JuiceFS 支持多种元数据存储引擎,且各引擎内部的数据管理格式各有不同.为了便于管理,JuiceFS 自 0.15.2 版本提供了 dump 命令允许将所有元数据以统一格式写入到 JSON 文件进 ...
- 03 uniapp自定义导航栏的开发
在我眼里自定义导航分2类: 原生基础上 || 非原生基础上 总结:项目当中能原生就原生,提高性能 区别 uni-app 自带原生导航栏,在pages.json里配置. 原生导航的体验更好,渲染新页面时 ...
- Airbnb的动态kubernetes集群扩缩容
Airbnb的动态kubernetes集群扩缩容 本文介绍了Airbnb的集群扩缩容的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的.最重要的经验就是Airbnb ...
- 基于NoCode构建简历编辑器
基于NoCode构建简历编辑器 基于NoCode构建简历编辑器,要参加秋招了,因为各种模版用起来细节上并不是很满意,所以尝试做个简单的拖拽简历编辑器. 描述 Github | Resume DEMO ...
- Java面试题(三)--虚拟机
1 内存结构 1.简述一下JVM的内存结构?(高频) JVM在执行Java程序时,会把它管理的内存划分为若干个的区域,每个区域都有自己的用途和创建销毁时间.如下图所示,可以分为两大部分,线程私有区和共 ...
- 3. 安装部署MGR集群 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 初始化MySQL Server 3. 初始化MGR第一个节点 4. 继续设置另外两个节点 5. ...
- beego下让swagger按照更新了controllers的接口信息自动更新commentsRouter_controllers.go
beego下让swagger按照更新了controllers的接口信息自动更新commentsRouter_controllers.go (1)在beego环境中,当更新了controllers目录下 ...
- 结束语句之 continue
C 语言自学之 continue Dome1:计算1到20之间不能被3整除的数字之和. 运算结果为: sum=147 1 #include<stdio.h> 2 ...
- bash脚本里的-h是什么意思?
问题描述 我在看脚本的时候,看到了下面代码 其中的-h "$PRG"我一时没明白是在判断什么东西.然后翻阅了一下菜鸟教程和其他教程,都没有说. 问题解决 -h其实是在判断这个文件是 ...