温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Fluentd中out_copy如何使用

发布时间:2021-06-23 14:08:18 来源:亿速云 阅读:309 作者:Leah 栏目:大数据

这篇文章将为大家详细讲解有关Fluentd中out_copy如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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>


关于Fluentd中out_copy如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI