跳转至

如何使用 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-agenttd-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's IP or domain for receiving]
    port 24224
    weight 50                    # Set up the load balancing weight in the <server> section
  </server>
  <server>
    name com2us.fluentd2
    host [Server2's IP or domain for receiving]
    port 24224
    weight 50                   # Set up the load balancing weight in the <server> section
  </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