by shigemk2

当面は技術的なことしか書かない

memo Keynote: Past & Future of Fluentd #fluentdmeetup

オープニング meetupの概要

  • v0.14.0 リリース
  • 概要
  • windows関係で何が起こるか
  • APIの変更

本編

  • Fluentdの昔と未来 2011/06/20に0.9.0リリース 5年
  • 5年プロダクトが続いているなら成功している部類
  • フルタイムコミッターが2名入ったことでアクティブにつづいている
  • 最近さらにアクティブになっている
  • 堅牢なOSSのコミュニティ まだまだ成長している

  • v0.14.0

    • 昨日 05/31
    • インストールしたらなんがしかのプラグインでバグがあるので、試してみて、Issueを登録してくれ

v0.12.0まで

以下の機能はリリース時にはなかった機能

  • label
    • @ERROR
    • 設定ファイルを構造化できるので使わない手はない
    • タグの書き換えをしなくてよい
  • filter
    • タグの書き換えをしなくてよい
  • forward
    • at-most-once at-least-once エラーが起きるとログが紛失する可能性があり、バッファを消さないようにする
  • heartbeatをtcp/DNSラウンドロビン
    • 分散環境構成(ココ2年)
  • configのフォーマット
  • log_level
  • fluentd-ui
  • buffer_queue
    • 例外を上げるかわりに一番古いチャンクを捨てるなどする

未来をどうするか

  • バックプレッシャー
    • バッファがつまったときに 賢く 転送する
    • in_tailで大量にやるときに転送量がつまる
  • PubSub/pull forward→Kafkaと似たようなもの
    • pushではなくpullすることで賢く
  • bufferの圧縮
  • bufferの分散とレプリケーション
    • ログの構造をレプリケーションするのはapacheとかではすでにやっている
  • service plugins
    • fluentdの上にのせるサービスはハックするしかない
    • source-match→serviceを使うことで、パッケージングしたサービスをFluentdのうえで走らせる
    • 例: ES/KibanaをFluentdのうえで走らせる
  • Schema-validate logging
    • 書き込み先のストレージに変なデータが入ると困る
    • validateされたログだけを転送したい
    • 変なデータを送信してエラーだとか帯域を圧迫するとかっていうのをやめて、余計なデータを送らないようにする
    • 認証とかも絡むかも
  • configを中央で管理する
    • ansibleとかshellとか使うのが今まで
    • Dockerを使ってデプロイする
    • fluentdの設定を、どこかのサーバで管理する
    • git pushするとconfigをばらまくとか
  • ロゴ
    • デザイナから「見にくい」っていうご指摘