暇人じゃない

fluentd で LTSV がサポートされたのでメモ

fluentd の v0.10.32 がリリースされました。

v0.10.32 では最近流行りの LTSV format がサポートされたとのことで、早速使ってみたメモです。
これまでは LTSV なログをパースするのに fluent-plugin-tail-labeled-tsv を使っていました。

今回は nginx のアクセスログをパースしてみます。

nginx の log format はよしなに設定してください。LTSV の公式ページに設定例があります。
パーマリンクを貼れないのが辛い…

fluentd の conf はこんな感じで。formatltsv を指定するだけですね:

<source>
  type tail
  path /path/to/access_log
  tag nginx.access
  pos_file /tmp/nginx-access.log.pos
  format ltsv
</source>

file output plugin で吐き出してみます:

<match nginx.access>
  type file
  path /tmp/fluentd-test.log
</match>

/tmp/fluentd-test.log:

2013-03-05T16:01:05+09:00       nginx.access       {"time":"05/Mar/2013:16:01:05 +0900","host":"x.x.x.x","method":"GET","uri":"/","protocol":"HTTP/1.1","status":"200","size":"15726","referer":"-","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22","reqtime":"0.532","apptime":"0.532"}

ちゃんとパースされているみたいですね!
運用している fluentd をバージョンアップしていかなければ。
サポートに感謝です。