真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Fluentd事件的生命周期有哪些

本篇文章給大家分享的是有關(guān)Fluentd事件的生命周期有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供浉河網(wǎng)站建設(shè)、浉河做網(wǎng)站、浉河網(wǎng)站設(shè)計(jì)、浉河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、浉河企業(yè)網(wǎng)站模板建站服務(wù),10年浉河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

什么是事件?

事件(Event)是Fluentd內(nèi)部處理流程使用的數(shù)據(jù)結(jié)構(gòu),日志記錄一旦進(jìn)入Fluentd便被封裝成一個(gè)event。Event由三部分組成:tag、time、record。

tag標(biāo)識(shí)事件的來(lái)源,或者說(shuō)類型,用于內(nèi)部消息路由,即后續(xù)交由哪個(gè)插件處理;

time是事件的發(fā)生時(shí)間;

record為日志的實(shí)際內(nèi)容,這是一個(gè)JSON對(duì)象。

Input插件負(fù)責(zé)將源數(shù)據(jù)封裝為event,比如in_tail插件從文本中生成event。對(duì)于下邊這行文本:

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

將會(huì)產(chǎn)生下邊的event對(duì)象:

tag: apache.access    #根據(jù)插件的tag參數(shù)來(lái)設(shè)置

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

record: {"user":"-","method":"GET","code":200,"size":777,"host":"192.168.0.1","path":"/"}    #根據(jù)in_tail插件中的parse項(xiàng)來(lái)決定如何解析單行日志記錄,并生成相應(yīng)的JSON對(duì)象

下邊我們通過(guò)一個(gè)具體的配置來(lái)講解事件的處理過(guò)程。

      本例使用一個(gè)很基礎(chǔ)的配置片段來(lái)描述各插件是如何關(guān)聯(lián)到一起的,它包括了如何定義輸入源(或者說(shuō)監(jiān)聽(tīng)器),以及如何設(shè)置通用的匹配規(guī)則將event路由到輸出端。

我們使用in_http和out_stdout這兩個(gè)插件來(lái)描述event的循環(huán)過(guò)程。

  @type http  port 8888  bind 0.0.0.0

    上邊的配置使用in_http插件定義了一個(gè)HTTP服務(wù)器,監(jiān)聽(tīng)端口為8888。然后我們?cè)俣x一個(gè)匹配(Match)規(guī)則,event路由引擎會(huì)根據(jù)這個(gè)規(guī)則將http請(qǐng)求派發(fā)到輸出端。這里的輸出端是stdout,僅僅將http請(qǐng)求打印到屏幕上。

  @type stdout 

    Match的作用是設(shè)置一個(gè)匹配規(guī)則test.cycle,對(duì)于每個(gè)進(jìn)入Fluentd的event,如果其tag值和test.cycle相等(或者說(shuō)匹配,因?yàn)閙atch可以使用通配符。這里的tag是由in_http插件生成的。),那么這個(gè)event就會(huì)進(jìn)入此match定義的output插件,本例中的output插件就是out_stdout。

    至此,我們定義了三個(gè)基本項(xiàng):Input、Match和Output,雖然僅僅使用兩個(gè)配置段。這就是一個(gè)可以使用的采集配置了,可以通過(guò)以下命令進(jìn)行測(cè)試:

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

    你會(huì)看到如下輸出:

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

    在/var/log/td-agent.log中會(huì)有如下輸出:

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

     
    下邊我們開(kāi)始了解一下事件是如何被處理和改變的。  
     
    當(dāng)你準(zhǔn)備好一個(gè)采集配置后,F(xiàn)luentd就生成了用以處理輸入數(shù)據(jù)的各種規(guī)則。日志事件會(huì)歷經(jīng)一系列的處理流程,從而決定了事件的循環(huán)周期。  
    • 過(guò)濾器(Filters)

    • 過(guò)濾器用于對(duì)事件進(jìn)行篩選,決定是否接收或者丟棄事件。我們可以在上邊的示例中增加一個(gè)過(guò)濾器。

        @type http  port 8888  bind 0.0.0.0
       @type grep      key action    pattern ^logout$  
       @type stdout
       

      添加過(guò)濾器之后,事件在路由到match之前必須經(jīng)過(guò)過(guò)濾器的處理。過(guò)濾器根據(jù)事件的類型和過(guò)濾規(guī)則來(lái)決定是否接受此事件。

      我們示例中使用的是grep過(guò)濾器,這個(gè)過(guò)濾器對(duì)test.cycle這類事件進(jìn)行過(guò)濾,會(huì)排除http請(qǐng)求中action值為logout的事件。

      所以,如果嘗試發(fā)送下邊的請(qǐng)求,在td-agent.log中是看不到任何輸出的。

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

      從示例中可以看到,事件是根據(jù)配置順序自上而下來(lái)被處理的。我們可以根據(jù)需要配置任意多個(gè)過(guò)濾器,這樣一來(lái),配置文件會(huì)變得很長(zhǎng)很復(fù)雜。Fluentd提供了標(biāo)簽來(lái)解決此問(wèn)題。

    • 標(biāo)簽(Labels)

      標(biāo)簽的作用是用來(lái)定義一組配置項(xiàng),這組配置項(xiàng)可以被其他配置項(xiàng)引用,從而實(shí)現(xiàn)事件路由跳轉(zhuǎn)。類似編程語(yǔ)言中的goto的功能。

      還是上邊的示例,我們定義一個(gè)標(biāo)簽來(lái)看一下效果。

        @type http  bind 0.0.0.0  port 8888  @label @STAGING
       @type grep      key action    pattern ^login$  
           @type grep          key action      pattern ^logout$      
           @type stdout  

      這個(gè)STARTING標(biāo)簽將之前的filter和match封裝到了一起,然后在source中進(jìn)行了引用。如此一來(lái),事件由input插件生成后將會(huì)跳過(guò)那個(gè)獨(dú)立的filter,直接進(jìn)入STARTING定義的處理流程中。

    • 緩存(Buffers)

      我們看到了事件從input產(chǎn)生,經(jīng)由filter篩選,最后到達(dá)output的過(guò)程。在上邊的示例中,我們使用的是stdout插件直接輸出到控制臺(tái),并沒(méi)有經(jīng)過(guò)緩存。

      實(shí)際應(yīng)用中,一般會(huì)先把數(shù)據(jù)進(jìn)行緩存,達(dá)到一定條件后再flush到目標(biāo)存儲(chǔ)中。這樣可以提升系統(tǒng)可靠性,對(duì)于穩(wěn)定系統(tǒng)吞吐量也很重要。可在后續(xù)文章中共同了解更多關(guān)于緩存插件的知識(shí)。

總的來(lái)說(shuō),事件會(huì)在各插件之間接續(xù)流轉(zhuǎn),直到到達(dá)output,結(jié)束整個(gè)生命周期。如下圖:  

Fluentd事件的生命周期有哪些

以上就是Fluentd事件的生命周期有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:Fluentd事件的生命周期有哪些
轉(zhuǎn)載來(lái)于:http://weahome.cn/article/gsssph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部