fluentd(td agent)インストール&設定

久々の投稿になります。サーバーエンジニアのHAです。

弊社ではビッグデータ分析におけるインフラ手段として、「トレジャーデータサービス by IDCF」を採用しています。
ビッグデータ分析なら「トレジャーデータサービス by IDCF」|IDCフロンティア
株式会社ORATTA様 | 導入事例 | IDCフロンティア

今回はパッケージサービスのひとつ、Treasure Data(以下TD)を利用するうえで前提となる、td-agent(オープンソースのデータ収集・転送ミドルウェアfluentdの安定版配布パッケージ)のインストールと、トレジャーデータサービスにデータを転送する設定をご紹介します。

動作環境

・CentOS 7

インストール&設定

td-agentインストール

td-agentのインストールはTD公式にあるように非常簡単で、コマンド1行で済みます。また、環境によってはRuby Gemのインストールも必要です。

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

 

そのままtd-agent起動で完了と思ったら。。

[error]: dry run failed: Unknown output plugin 'forest'. Run 'gem search -rd fluent-plugin' to find plugins

で、forestなるpluginがみつからない。。

調べた結果、td-agentのプラグインをインストールする時はtd-agent-gemを利用すべきでした。

td-agentプラグイン(fluent-plugin-forest)インストール


yum install ruby-devel
td-agent-gem install fluent-plugin-forest

設定ファイル修正

サンプルで/etc/td-agent/td-agent.confを以下のように設定しました。

なお、APIキーはトレジャーデータサービスにサインアップしてから取得できます。

<source>
@type tail
path /var/log/kpi/XXXXX.log
tag send.app.kpi_XXXXX
format json
pos_file /var/log/td-agent/kpi_XXXXX.pos
</source>

<match send.app.kpi_XXXXX>
@type rewrite_tag_filter
rewriterule1 kpi_log_title ^([a-zA-Z0-9_\-]+)$ kpi_XXXXX.$1
</match>

<match kpi_.*>
@type forest
subtype tdlog
<template>
apikey 1234567890
database hoge
table ${tag_parts[1]}
auto_create_table
buffer_type file
buffer_path /var/log/td-agent/buffer/kpi_XXXXX_${tag_parts[1]}
use_ssl true
endpoint https://api.ybi.idcfcloud.net #レジャーデータサービス by IDCF
flush_interval 60s
</template>
</match>

posファイル作成&パーミッション変更

touch /var/log/td-agent/kpi_xxxxx.pos
chmod 0777 /var/log/td-agent/kpi_xxxxx.pos

設定反映(td-agent再起動)

/etc/init.d/td-agent reload

 

以上で完了です。

まとめ

fluentdに触れる機会は今回が初めてでしたが、簡単なtd-agentコマンド操作と設定だけで済みました。

トレジャーデータサービスのダッシュボードも非常に分かりやすいUIで、後はデータ転送先サービスのDBだけ設定すればデータの収集が確認できますので、ビッグデータ分析基盤の構築に是非お試し下さい!