「Fluentd Meetup 2015 夏」参加メモ

Fluentd Meetup 2015 夏 - 2015/06/01(月) - dots.[ドッツ]に参加してきたのでメモです。
ねんがんのFluentdステッカーを手に入れたぞ!
Fluent-bitは聞くのに精一杯でメモる余裕は無かったし、LTはざーっと聞くほうに倒してたのでいい加減です。
詳しいメモはmuziyoshizさんのブログ方が正確で詳しいのでそちらを見たほうがたぶんいいです。Fluentd Meetup 2015 夏の参加レポート - 無印吉澤@HatenaBlog
あと、Gloopsさんの会場良かったなあ。

  • 『Fluentd v0.12完全解説』@repeatedly

http://www.slideshare.net/repeatedly/fluentd-v012-master-guide
 大きな4つの追加
 v1config
 イベントハンドリング(フィルタとか)
 at-least-once
 HTTP-RPC
 
 v1config
  フォーマット自由度が上がった
  若干非互換部分があるがドキュメント読んでね
  Hash/Array型の追加
  RubyCodeも入れれる(環境変数とかを使ったりしやすく)
  :secretオプション
   プラグイン側の対応が必要
   起動時の設定ファイルのダンプとかの設定ファイルでマスクしたい設定をすることができるようになる
 Filter
  matchと同レベルでfilterが使えるようになって、filter専用プラグインで処理
  旧バージョンだとOutput単位でトランザクションしていたため、多段Outputの際に欠損する可能性があったが
  v0.12ではfilterを通すと1トランザクションで処理できるので欠損を減らせる
  デフォルトで stdout/grep/record_transformer が同梱
  実装する場合はfilter/filter_streamメソッド追加
  Label
   イベントのグルーピング機構
   複数ソースをまとめるようなシーンで使える…はず
   label対応する場合は、route.emit
   エラーレコードのみ抽出するemit_error_eventというAPIもあり(@ERRORラベルがつく)
 At-least-once
  エラーったら送り返す(重複する可能性あり)
  require_ack_reponse を設定追加すればOK
  al-most-onceがデフォルト挙動で、エラーったらロストの可能性あり
 HTTP-RPC
  HTTPベースのAPI提供
  SlackのAPIスタイルを参考にして実装
 
 Webのdocsは既にv0.12ベース
 Td-agentも現在はv0.12ベース

  • 『fluentdで本番環境を再現する』@toyama0919

http://toyama0919.bitbucket.org/fluentd_shadow.html#/

 Shadow Proxy
  productionのhttpリクエストを複製してバックエンドに送信するproxy
  OSSのその他の実装ではkageなどもある
  ユーザに近いフロントエンドにミドルウェアをあまり入れたくなく、安全にやりたい
 fluent-plugin-http_shadow
  http requestを復元
  Apache/Nginxログ想定だが、独自ログでのpostも可能
  パラメータ
   rate
    本番と同様のスペックをそろえられない場合のためのパラメータ
    1%くらいから始めて徐々にあげていくスタイル
   timeout
    fluentd の buffer が溜まるのでそのためのパラメータ
   並列数
    負荷調整用
  注意点
   config_paramにHASHが使えないものだと使えない
 ユースケース
  バグ発見器
  ミドルウェアのアップデート検証用
 まとめと感想
  完全なShadow環境は難しい
   POSTはログに無いと再現できない
   クライアントブラウザじゃない

  • 『fluent-bit』Eduardo Silva氏

http://fluentbit.io
https://github.com/fluent/fluent-bit
http://qiita.com/ksoeda@github/items/47fe5732637a923e5ed6

  • 『fluentd対応MIDIキーボードを作ってみた』@kazunori_279

http://qiita.com/kazunori279/items/208e1526367426b39bbb

  • 『Docker and Fluentd』@tagomoris

http://www.slideshare.net/tagomoris/docker-and-fluentd

  • 『fluentdによる大規模キュー設計』@edvakf

https://speakerdeck.com/edvakf/fluentdniyoruda-gui-mo-kiyushe-ji

  • 『大量のログをBigQueryに送ってみた』@catatsuy

https://speakerdeck.com/catatsuy/send-a-log-to-bigquery-with-fluentd

  • 所感

v0.12での変更点が綺麗にまとまっていて非常に助かりました。
v1configやFilter、LABELでプラグイン側での対応が必要だったりする箇所もあり、移行時に参考にする予定。
ロードマップ的には0.14がもう予定されているのでもうちょっと待ってv0.10→v0.14という方向もあるとは思うのですが、個人的には先日v1configが絡む微妙な動きも経験したこともあり、v0.12を1回でもいいから経験をしておいたほうが良いように感じます。
前作ったOracleのログかき集めがv0.10ベース…だと思うので、とりあえずそれをv0.12で作り直しかなあ。