9. Fluentd部署:日志


Fluentd是用來處理其他系統產生的日志的,它本身也會產生一些運行時日志。Fluentd包含兩個日志層:全局日志和插件級日志。每個層次的日志都可以進行單獨配置。

  1. 日志級別
    Fluentd的日志包含6個級別:fatal、error、warn、info、debug和trace。級別依次遞增,高級別的日志包含低級別的日志。默認為info,所以默認情況下,日志中包含info、warn、error、fatal這4個級別的日志。

  2. 全局日志
    Fluentd內核使用全局日志配置,若插件沒有單獨設置自己的日志配置項,插件也共用全局日志配置項。可通過命令行或配置文件進行設置。

2.1 命令行

  • -v、-vv用於增加日志級別,-q、-qq用於降低日志級別。
$ fluentd -v  ... # debug level
$ fluentd -vv ... # trace level

$ fluentd -q  ... # warn level
$ fluentd -qq ... # error leve

使用命令行可以在不改變配置文件的情況下調整日志級別,方便調試。

  • 配置文件
    也可以在配置文件中設置 的log_level來配置全局日志級別。
<system>
  # equal to -qq option
  log_level error
</system>
  1. 插件日志
    可通過@log_level對每個插件單獨設置日志級別,這個級別將覆蓋全局日志級別。
<source>
  @type tail
  @log_level debug
  path /var/log/data.log
  ...
</source>
<source>
  @type http
  @log_level fatal
</source>

上邊這個片段中,對兩個不同的輸入源分別設置了各自的日志級別。

  1. 日志格式
    Fluentd的日志支持text和json兩種格式,默認使用text,可在<system>中進行設定。
<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

這條日志將會轉化為如下輸出:

{"time":"2017-07-27","level":"info","message":"fluentd worker is now running worker=0","worker_id":0}
  1. 將日志寫入文件
    Fluentd默認將其日志輸出到stdout,可通過-o將日志輸出到文件中。
$ fluentd -o /path/to/log_file

若將日志寫入文件,默認情況下Fluentd不會進行日志輪轉,即會向指定的文件中不斷寫入日志,這可能會導致日志文件過大。可通過命令行參數開啟日志輪轉功能。

5.1 --log-rotate-age AGE
這里AGE為整數或字符串,需要和下邊的rotate-size配合使用。
整數表示輪轉文件個數;
字符串表示輪轉頻率,可為daily、weekly或monthly。

5.2 --log-rotate-size BYTES
BYTES為輪轉文件的大小,達到此字節數即開始寫入新的文件。
當rotate-age值為整數時,通過此配置項控制日志的輪轉。

$ fluentd -c fluent.conf --log-rotate-age 5 --log-rotate-size 104857600
  1. 捕獲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>

這樣做的一個用處是用來監控Fluentd運行情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM