コンテンツにスキップ

Fluentdの使い方

このガイドでは、Analytics v2で使用されるユーザーの決定的なログをfluentdを介して送信する方法について説明します。

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        # 送信ポート ( デフォルト : 24224 )
  bind 0.0.0.0      # 送信するバインドアドレス ( デフォルト : 0.0.0.0(すべてのアドレス))
</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