Fluentd の tail Input Plugin で CSV ファイルを読み込む際は read_from_head を true にする

Fluentd で CSV ファイルを読み込む

Fluentd を用いて CSV ファイルを読み込む際は、tail Input Plugin を用いるのが定石だと思います。formatcsvが指定できますし。

待てど暮らせど出力してくれない

しかしながら、以下のような感じで conf ファイルを書いても一向に出力してくれません。

<source>
  @type tail
  format csv
  path /path/to/sample.csv
  tag hogehoge
  pos_file /path/to/sample.csv.pos
  keys column_1,column_2,column_3
</source>

<match **>
  @type file
  path /path/to/sample.csv.log
</match>

read_from_head オプション

上記の書き方ですと CSV ファイルの読み込みを初めてする場合は入力がありません。ですので、read_from_headディレクティブを付けてその値をtrueと指定しましょう。

<source>
  @type tail
  format csv
  path /path/to/sample.csv
  tag hogehoge
  pos_file /path/to/sample.csv.pos
  keys column_1,column_2,column_3
  read_from_head true
</source>

<match **>
  @type file
  path /path/to/sample.csv.log
</match>

これでちゃんと CSV ファイルを読み込んでくれたはずです。ただ、このオプションを常時trueにしていると毎回先頭から読み込んでしまう(?)かもしれないので要検討です*1

*1:posファイルがあるから大丈夫?

Powered by はてなブログ