fluentdに実データを通してみてわかったこと

個人的なメモ。

大層な話じゃないです。

あとfluentdをdissりたいわけでもないです。
使ってみてすごい使いやすかった。すばらしい。
ただちょっとだけ気をつけとかないと、という話。

遭遇した問題

  • 前提
  • fluentd-0.10.11(td-agent)
  • アクセスログ(データ不正的な感じ)を複数行まとめて投入してtailで読み込み
  • アクセスログの2行目以降にUTF-8なマルチバイトが含まれる
  • アクセスログをparseしてfileに書き出したい
  • 事象
  • 複数行投入したうち、マルチバイトを含む行以降がfileに出力されず
  • ログファイルに元データが出力されず。ログには unexpected error error="\"\\xEF\" from ASCII-8BIT to UTF-8" が出力

どういうこと?

まとめて投入した一連の途中で出力処理がエラーになっていて、以降の処理(=マルチバイトを含む行の次の行以降を出力する処理)が実行されない。

マルチバイトを含む行はエラーとして別の(システム側の)ログファイルにデータをまるっと出力しつつ、次の行以降の出力は継続してほしかった。

んで?

解析データの収集ツールとして使う分にはいいと思います。すごい使いやすいし、解析しやすい。使ってみて感動した。

ただし、現状ではログが消失する可能性があるので、ログ収集という意味合いでは使えないのです。
想定外のログ出力が消失してしまうので、不正アクセスみたいな問題があった時にトレースできなくなっちゃう。

syslogの代替に、って考えてるひとはご注意を(いないかな?)。

Server 

See also