跳轉至

如何使用 Fluentd

本指南描述了如何通过fluentd发送在Analytics v2中使用的用户最终日志。

Fluentd 安裝

Note

安裝 td-agent

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
  • 編輯 td-agent 設定檔
$ vim /etc/td-agent/td-agent.conf

Fluentd 預設設定

  • 日誌檔案: 日誌檔案的預設路徑是 /var/log/td-agent,而 td-agent.log 檔案位於子資料夾中。
  • 事件: 在 fluentd 中,事件 意味著記錄和日誌。
  • 來源: 使能夠接收各種 input,並且許多插件可以通過使用 @ type 來使用。
  • 匹配: 它處理通過 發送的 input 事件。

Fluentd 插件

  • 檢查並安裝插件: 在檢查插件列表後安裝您需要的插件。 (默認提供的插件有 tailforwardstdout,但其他如 forest 的插件需要單獨安裝。)
$ td-agent-gem list  #檢查插件列表
# 可用的插件安裝格式為 td-agent-gem install [你想要的插件]
$ td-agent-gem install fluent-plugin-forest          # 安裝 fluent-plugin-forest 插件
  • 標籤: 標籤 是由 事件 組成的值,<match> 部分處理與 標籤 匹配的值。
# 使用範例標籤
<source>
@type tail
tag ha2union.game.com2us        # 將此標籤附加到通過 in_tail 發送的事件
path /var/log/sample.log
</source>
# 通過來源傳輸的輸入事件被發送到與事件標籤映射的匹配標籤。
<match ha2union.game.com2us>
@type stdout
<match>

[輸入插件]

  • in_tail: in_tail 插件使用 tail 命令來讀取數據。
<source>
  @type tail
  path /var/log/com2us.log                           # 讀取路徑,例如文件
  pos_file /var/log/fluent/com2us_posfile.log.pos    # 記錄最後的讀取部分
  tag ha2union.game.com2us                           # 事件標籤。將標籤附加到發送事件上。
</source>
# pos_file: 當重新執行 fluentd 時,從最後的讀取部分處理文件。
  • in_forward: 通常用於接收來自其他 fluentd 節點的數據。
<source>
  @type forward
  port 24224        # Port to send ( default : 24224 )
  bind 0.0.0.0      # Bind address to send ( default : 0.0.0.0(all of address))
</source>

[輸出插件]

Note

部分中定义的输出插件定义了作为部分的子部分的缓冲和刷新设置。

  • output\_stdout: 匯出事件日誌,使用 stdout 主要用於除錯。
<match <i></i>>
  @type stdout
</match>
  • output\_forward: 用於將事件日誌發送到其他 fluentd 節點時使用。
<match <i></i>>
  @type forward
  <server>
    name com2us.fluentd1
    host [Server1的IP或域名以接收]
    port 24224
    weight 50                    # <server>部分设置负载均衡权重
  </server>
  <server>
    name com2us.fluentd2
    host [Server2的IP或域名以接收]
    port 24224
    weight 50                   # <server>部分设置负载均衡权重
  </server>
</match>
  • fluent-plugin-forest: 使能夠使用標籤名稱保存日誌文件。 (通過以下設置,可以將日誌保存到本地。)
<store>
  @type forest
  subtype file
  <template>
    time_slice_format %Y%m%d%H
    time_slice_wait 10s
    path /com2us/log/td-agent/data/${tag}/${tag}.*.log
    compress gz
    format json
  </template>
</store>

fluentd 的使用範例

使用fluentd可以通過以下方法發送日誌。欲了解更多詳情,請點擊以下鏈接。


編輯設定

  • 檢查 td-agent.conf 上下文
$ td-agent -c /etc/td-agent/td-agent.conf
  • 重新啟動 td-agent
$ service td-agent restart