LoginSignup
13
13

More than 5 years have passed since last update.

Fluentdでプラグインを使うと便利になる

Last updated at Posted at 2016-03-01

概要

以下を使って、データの内容によってファイル名、パスを動的に変えて出力するメモ

  • rewrite_tag_filter
  • file_alternative

こんなかんじ↓

試しにやってみよう

1. 「tag」と呼ばれる情報でデータを管理する

  ※tagを付けるってことは、レコードごとにラベル付ける感じです

<source> 
  //データを格納するファイル名を指定
   @type tail path /var/tmp/data.csv
   //読み込んだ位置を記録するファイルを指定する。(  fluentd daemon を再起動したい場合などの場面でその続きから再開して読み込んでくれる)
    pos_file /var/tmp/data.log.event.pos  

  //各レコードに対してタグを指定する
   tag foo.id 

 //出力するデータのフォーマットを作る 
    format /^(?<fooid>[^,]*),(?<foodata>.*)$/ 
</source> 

こうなります

2. rewrite_tag_filterでレコードにタグを付ける

<match foo.id> 
  //レコードの内容に応じてタグを変更することが出来るプラグイン
    @type rewrite_tag_filter 
   //レコードにタグをつける
    rewriterule1 fooid (.*) bar.id.$1 
</match> 

こうなります

3. file_alternativeとforestでtagによってファイル名、パスを動的に変える

<match bar.id.*>
    @type copy 
    <store> 
         type forest 
     //タグの一部をディレクトリやファイル名に利用するプラグイン
         subtype file_alternative 
         <template> 
                // 利用したい要素を選ぶ ${tag_parts[0]}=bar ${tag_parts[1]}=id
             path /var/tmp/${tag_parts[2]}/rawdata.csv
         </template>
    </store>
</match>

こうなります

起動
/etc/init.d/td-agent restart

設定ファイル
vi /etc/td-agent/td-agent.conf

プラグインインストール
cd /usr/sbin/
./td-agent-gem install fluent-plugin-rewrite-tag-filter
./td-agent-gem install fluent-plugin-file-alternative
./td-agent-gem install fluent-plugin-forest

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13