Fluentd事件的生命周期有哪些

发布时间:2021-07-22 14:17:00 作者:Leah
来源:亿速云 阅读:220

本篇文章给大家分享的是有关Fluentd事件的生命周期有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

什么是事件?

事件(Event)是Fluentd内部处理流程使用的数据结构,日志记录一旦进入Fluentd便被封装成一个event。Event由三部分组成:tag、time、record。

tag标识事件的来源,或者说类型,用于内部消息路由,即后续交由哪个插件处理;

time是事件的发生时间;

record为日志的实际内容,这是一个JSON对象。

Input插件负责将源数据封装为event,比如in_tail插件从文本中生成event。对于下边这行文本:

        192.168.0.1 - - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777

将会产生下边的event对象:

tag: apache.access    #根据插件的tag参数来设置

time: 1362020400      # 28/Feb/2013:12:00:00 +0900

record: {"user":"-","method":"GET","code":200,"size":777,"host":"192.168.0.1","path":"/"}    #根据in_tail插件中的parse项来决定如何解析单行日志记录,并生成相应的JSON对象

下边我们通过一个具体的配置来讲解事件的处理过程。

      本例使用一个很基础的配置片段来描述各插件是如何关联到一起的,它包括了如何定义输入源(或者说监听器),以及如何设置通用的匹配规则将event路由到输出端。

我们使用in_http和out_stdout这两个插件来描述event的循环过程。

<source>  @type http  port 8888  bind 0.0.0.0</source>


    上边的配置使用in_http插件定义了一个HTTP服务器,监听端口为8888。然后我们再定义一个匹配(Match)规则,event路由引擎会根据这个规则将http请求派发到输出端。这里的输出端是stdout,仅仅将http请求打印到屏幕上。

<match test.cycle>  @type stdout </match>

    Match的作用是设置一个匹配规则test.cycle,对于每个进入Fluentd的event,如果其tag值和test.cycle相等(或者说匹配,因为match可以使用通配符。这里的tag是由in_http插件生成的。),那么这个event就会进入此match定义的output插件,本例中的output插件就是out_stdout。

    至此,我们定义了三个基本项:Input、Match和Output,虽然仅仅使用两个配置段。这就是一个可以使用的采集配置了,可以通过以下命令进行测试:

curl -i -X POST -d 'json={"action":"login","user":2}' http://localhost:8888/test.cycle

    你会看到如下输出:





    HTTP/1.1 200 OKContent-Type: text/plainConnection: Keep-AliveContent-Length: 0
     

    在/var/log/td-agent.log中会有如下输出:


    2020-03-05 14:06:24.144168913 +0800 test.cycle: {"action":"login","user":2}
     

     
    下边我们开始了解一下事件是如何被处理和改变的。  
     
    当你准备好一个采集配置后,Fluentd就生成了用以处理输入数据的各种规则。日志事件会历经一系列的处理流程,从而决定了事件的循环周期。  
总的来说,事件会在各插件之间接续流转,直到到达output,结束整个生命周期。如下图:  

Fluentd事件的生命周期有哪些

以上就是Fluentd事件的生命周期有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. fluentd 解析httpd日志
  2. spring bean 生命周期事件

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

fluentd

上一篇:Pytorch中mean和std调查的示例分析

下一篇:jQuery查找dom的方法有哪些

相关阅读

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

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