溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Fluentd如何部署日志

發(fā)布時(shí)間:2021-11-30 14:28:26 來源:億速云 閱讀:182 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹Fluentd如何部署日志,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Fluentd是用來處理其他系統(tǒng)產(chǎn)生的日志的,它本身也會(huì)產(chǎn)生一些運(yùn)行時(shí)日志。我們一起來了解一下Fluentd本身的日志機(jī)制。

Fluentd包含兩個(gè)日志層:全局日志和插件級(jí)日志。每個(gè)層次的日志都可以進(jìn)行單獨(dú)配置。

  1. 日志級(jí)別

    Fluentd的日志包含6個(gè)級(jí)別:fatal、error、warn、info、debug和trace。級(jí)別依次遞增,高級(jí)別的日志包含低級(jí)別的日志。默認(rèn)為info,所以默認(rèn)情況下,日志中包含info、warn、error、fatal這4個(gè)級(jí)別的日志。


  2. 全局日志

    Fluentd內(nèi)核使用全局日志配置,若插件沒有單獨(dú)設(shè)置自己的日志配置項(xiàng),插件也共用全局日志配置項(xiàng)。可通過命令行或配置文件進(jìn)行設(shè)置。

    1. 命令行

      -v、-vv用于增加日志級(jí)別,-q、-qq用于降低日志級(jí)別。

      $ fluentd -v  ... # debug level$ fluentd -vv ... # trace level
      $ fluentd -q  ... # warn level$ fluentd -qq ... # error leve
      使用命令行可以在不改變配置文件的情況下調(diào)整日志級(jí)別,方便調(diào)試。



    2. 配置文件
      也可以在配置文件中設(shè)置<system>的log_level來配置全局日志級(jí)別。    
            
            
            
            <system>   
             
             
               # equal to -qq option   
             
             
               log_level error   
             
             
             </system>


  3. 插件日志
    可通過 @log_level對(duì)每個(gè)插件單獨(dú)設(shè)置日志級(jí)別,這個(gè)級(jí)別將覆蓋全局日志級(jí)別。
     
         
         
         
         <source>  
          
          
            @type tail  
          
          
            @log_level debug  
          
          
            path /var/log/data.log  
          
          
            ...  
          
          
          </source>  
          
          
          <source>  
          
          
            @type http  
          
          
            @log_level fatal  
          
          
          </source>
     
    上邊這個(gè)片段中,我們對(duì)兩個(gè)不同的輸入源分別設(shè)置了各自的日志級(jí)別。

  4. 日志格式
    如今天第一篇文章中所述,F(xiàn)luentd的日志支持text和json兩種格式,默認(rèn)使用text,可在<system>中進(jìn)行設(shè)定。
     
         
         
         
         <system>  
          
          
            <log>  
          
          
              format json  
          
          
              time_format %Y-%m-%d  
          
          
            </log>  
          
          
          </system>
     
    若使用json格式,
     
         
         
         
         2017-07-27 06:44:54 +0900 [info]: #0 fluentd worker is now running worker=0
     
    這條日志將會(huì)轉(zhuǎn)化為如下輸出:
     
         
         
         
         {"time":"2017-07-27","level":"info","message":"fluentd worker is now running worker=0","worker_id":0}
        
  5. 將日志寫入文件
    Fluentd默認(rèn)將其日志輸出到stdout,可通過-o將日志輸出到文件中。
     
         
         
         
         $ fluentd -o /path/to/log_file
     
    若將日志寫入文件,默認(rèn)情況下Fluentd不會(huì)進(jìn)行日志輪轉(zhuǎn),即會(huì)向指定的文件中不斷寫入日志,這可能會(huì)導(dǎo)致日志文件過大。可通過命令行參數(shù)開啟日志輪轉(zhuǎn)功能。

    1. --log-rotate-age AGE
      這里AGE為整數(shù)或字符串,需要和下邊的rotate-size配合使用。
      整數(shù)表示輪轉(zhuǎn)文件個(gè)數(shù);
      字符串表示輪轉(zhuǎn)頻率,可為daily、weekly或monthly。
    2. -log-rotate-size BYTES
      BYTES為輪轉(zhuǎn)文件的大小,達(dá)到此字節(jié)數(shù)即開始寫入新的文件。
      當(dāng)rotate-age值為整數(shù)時(shí),通過此配置項(xiàng)控制日志的輪轉(zhuǎn)。    
      $ fluentd -c fluent.conf --log-rotate-age 5 --log-rotate-size 104857600



  6. 捕獲Fluentd日志
    Fluentd自身日志也可以被采集。
    Fluentd使用fluent作為自身日志的tag,我們可以通過<label @FLUENT_LOG>來處理Fluentd自身的日志。
    # Add hostname for identifying the server<label @FLUENT_LOG>  <filter fluent.*>    @type record_transformer    <record>      host "#{Socket.gethostname}"    </record>  </filter>
     <match fluent.*>    @type monitoring_plugin    # parameters...  </match><label>
     
    這樣做的一個(gè)用處是用來監(jiān)控Fluentd運(yùn)行情況。

以上是“Fluentd如何部署日志”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI