へろへろもへじ

一応技術なことを綴るところ。タイトルに特に意味はありません。

Fluentd Meetup に参加しました #fluentd #fluentdmeetup

今日はhttp://eventdots.jp/event/49560 に参加してきました。 会場のフリークアウトさんがとにかくシャレオツでビックリ!!

f:id:fukuiretu:20140513192334j:plain

せっかくなので興奮が冷めないうちに、ざっくりですが、発表の内容をまとめました。

  • 登壇者の方のスライドは公開され次第リンクさせて頂きます
  • 情報に誤りがあればご指摘ください
  • 誤字脱字もご指摘頂けると幸いです

Fluentd v.1に関するアップデートと今後のロードマップ(仮) トレジャーデータ シニアソフトウェアエンジニア 中川真宏さん (@repeatedly)

v10(現在)のFluentd

  • logのフォワーディングを安全に
  • ハイパフォーマンスに
  • 任天堂他、著名な企業で使われている
  • 公開されているプラグイン数250以上
  • CRuby想定で書かれている

v11

  • 話が出たのは2年前くらい
  • 当時は全部APIを作り直す想定だった => ユーザが増えてしまってそういうわけにもいかなくなった
  • 去年の11月くらいにv10に必要な機能をマージするようになった

v1

  • 初めて見た人がv11だとよくわからないし、v1だと印象がいいのでv11 => v1に変更
  • 互換性を壊さずにv11にマージする
  • なるべく早く出そうと思っている
New configration
  • Hash,Arrayのサポート
  • Rubyのコードを実行できる
  • "--use-v1-config"オプションでずっと同じバージョンで使える
New parameter types
  • DSLがかける
  • Rubyのコードが書ける
Filter / Label support
  • ラベルを使うことでタグをadd_tag_xxx, remove_tag_xxxでわざわざルーティングしなくてもOK
  • タグの書き換えをしなくてもFilterできる(ネストで定義できるようにするetc)

Error stream

  • emitメソッドの粒度が現状でかい => チャンク単位でエラーになる
  • エラーとなるレコードのみエラーとする

Improved plugin

SeverEngine based

  • Rubyで作ったサーバ
  • signalハンドル自分で使わなくてOK
  • supervisorをビルドイン

Multi Process

  • 1台のサーバに複数のfluentd
  • マルチコアを内部に持つように

Zero downtime restart

  • gracefulな起動でコネクションが切れないようにする
  • 設定でon/offできるようにする予定

Actor

  • つらつら書いていたのをactorにより簡単にスマートに使えるように隠蔽

JRuby and Windows

  • Windowsブランチで絶賛開発中
  • JRubyもブランチで開発中

td-agent2

  • Ruby2.1.2
  • msgpack,coolio...verup

毎秒10万件でもまだ軽い!Norikra+BigQuery+Dockerでつくるリアルタイムログ解析基盤 日本グーグル 佐藤一憲さん (@kazunori_279)

チャレンジ

→ BigQuery + Norikra + Dockerでリアルタイムに負荷状況を可視化

Google Cloud Platform

etc...

各サービスの数値

  • Youtube 100 hours/min
  • GoogleSearch 100 million GB
  • Gmail 500+ million users
  • AppStore 900 milion users

BigQuery

Norikra (http://d.hatena.ne.jp/tagomoris/20130521/1369145114)

  • LINE社の@tagomorisさん作
  • オンメモリなので高速
  • SQLライクな検索が可能
  • 内部でEsperを駆動している
  • JRubyで動作
  • JOINもできる

デモ

おさらい

  • Norikraでリアルタイムに
  • FluentdからBigQueryに毎秒10万行
  • Googleスプレッドシートに簡単にグラフ表示
  • ゲームのKPIなどをリアルタイムに見ることなどに発展させていきたい

HTML5 Single Page Application のイベントログ収集をFluentdで効率化している話 Quipper 本多一行さん (@hakobera)

Single Page Applicationのイベントログで苦労した話

アクセスログが飛んでこない場合がある
  • APIアクセスを伴わない単純な画面遷移
  • ローカルキャッシュを利用する箇所で2回目からアクセスが来ない
  • Native連携

解決策

  • イベントに対応したツールを使う
  • mixpanelなど

Excelで分析...

  • exportプログラム書く
  • jenkins => s3にアップロード

Google Analyticsの追加...

  • 肥大化するscriptタグ
  • ページロード時間との戦いが始まる

Googleタグマネージャで解決

どんなツールでもやることとパラメータは大体同じ

  • Excel(用のデータをS3)もGoogle Analyticsもmixpanelもfluentdを介してデータを流し込み

mixpanel用プラグイン(fluent-plugin-mixpanel)がなかったので作った

  • in/out両方使える
  • ほぼほぼ動いてる。が、絶賛検証中。
  • mixpanel良いから、みんな使ったほうがいいよ!!

マゾいログ回収の話と未来 フリークアウト 加藤慶一さん(@s_wool)

RTBの簡単な仕組み

三度の飯とエレクトロンの記事がわかりやすい

構成

  • fluentdからtrasure-data,hdfsにデータを流している

現構成までのタイムライン

2011年頃
2012年頃
  • fluentdを使いはじめる
  • ストア先はMySQLだときつくなってきたので、TreasureDataを使う
2013年頃
  • Hadoopを使いはじめる
  • フロントからin_tailでfluentdに流してs3とhdfs
突然のDC移行
  • 諸事情によりログサーバから着手
  • 全て一旦S3に流す => ログサーバに転送
  • スレーブノードは自作機
  • CDH4にアップデート => fluent-plugin-webhdfsを利用
この辺りで色々ハマりはじめる
  • out_s3が詰まる
  • APサーバー上でのログのparseがしんどくなる
対処
  • 複数のfluentdプロセスを立てる
  • num_threadを増やす
  • buffer_queue_limitを増やす
  • td-monitor-agantで可視化
parseがしんどい
  • tail時のformatをシンプルに
複数台たてるとconfの管理とかが大変
2014年
  • Elasticsearchを使いはじめる

解決への課題

現状全ての入札ログをfluentdで捌くように改修できていない
  • 必要なカラム、必要ないカラムの精査
  • ログのフォーマットの精査

所感など

  • fluentdの運用の話を含めて、どうデータを可視化するか(してるか)みたいな話も聞けて大変参考になった
  • v1のリリースでコンフィグがよりスマートに書けそうなので、MLやGitHubのissues、Twitterはこまめにチェックしたい
  • td-agent2は近々リリースされるとのこと(パフォーマンスがさらに良くなるとのこと
  • Fluentd + BigQuery + Norikraのリアルタイムな可視化のデモは衝撃的でした(合間見てNorikra使ってみたい
  • 要件満たすプラグインがなければどんどんリリースしていきたい
  • @repeatedlyさんが着ていたHiveのTシャツがイカしていた
  • とりあえず社内で布教活動していきたい
  • 気づいたらピザがなくなっていたので恵比寿で九十九ラーメン食べて帰った

f:id:fukuiretu:20140513224244j:plain

フリークアウトさん、インテリジェンスさん、登壇者の皆様ありがとうございました‼︎