今日はhttp://eventdots.jp/event/49560 に参加してきました。 会場のフリークアウトさんがとにかくシャレオツでビックリ!!
せっかくなので興奮が冷めないうちに、ざっくりですが、発表の内容をまとめました。
- 登壇者の方のスライドは公開され次第リンクさせて頂きます
- 情報に誤りがあればご指摘ください
- 誤字脱字もご指摘頂けると幸いです
Fluentd v.1に関するアップデートと今後のロードマップ(仮) トレジャーデータ シニアソフトウェアエンジニア 中川真宏さん (@repeatedly)
v10(現在)のFluentd
v11
- 話が出たのは2年前くらい
- 当時は全部APIを作り直す想定だった => ユーザが増えてしまってそういうわけにもいかなくなった
- 去年の11月くらいにv10に必要な機能をマージするようになった
v1
- 初めて見た人がv11だとよくわからないし、v1だと印象がいいのでv11 => v1に変更
- 互換性を壊さずにv11にマージする
- なるべく早く出そうと思っている
New configration
- Hash,Arrayのサポート
- Rubyのコードを実行できる
- "--use-v1-config"オプションでずっと同じバージョンで使える
New parameter types
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
td-agent2
- Ruby2.1.2
- msgpack,coolio...verup
毎秒10万件でもまだ軽い!Norikra+BigQuery+Dockerでつくるリアルタイムログ解析基盤 日本グーグル 佐藤一憲さん (@kazunori_279)
チャレンジ
- テレビ朝日さんのミュージックステーションの事例
- WebSocketを使ってリアルタイムで捌く
→ BigQuery + Norikra + Dockerでリアルタイムに負荷状況を可視化
Google Cloud Platform
- Google BigQuery
- Google App Engine
- Google Compute Engine
- Google Cloud Storage
etc...
各サービスの数値
- Youtube 100 hours/min
- GoogleSearch 100 million GB
- Gmail 500+ million users
- AppStore 900 milion users
BigQuery
- 元々はDremel
- ColumnIO => 圧縮効率が良い
- データセンター全体を1台のコンピュータとして使う
- デモ → 5億件がインデックスの使用ナシで3秒で返ってきた
- 無償で試せる → https://cloud.google.com/products/bigquery/?hl=ja
- Fluentdからもプラグインを使うことで簡単に取り込める → https://github.com/tagomoris/fluent-plugin-bigquery
Norikra (http://d.hatena.ne.jp/tagomoris/20130521/1369145114)
- LINE社の@tagomorisさん作
- オンメモリなので高速
- SQLライクな検索が可能
- 内部でEsperを駆動している
- JRubyで動作
- JOINもできる
デモ
おさらい
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年頃
突然のDC移行
- 諸事情によりログサーバから着手
- 全て一旦S3に流す => ログサーバに転送
- スレーブノードは自作機
- CDH4にアップデート => fluent-plugin-webhdfsを利用
この辺りで色々ハマりはじめる
- out_s3が詰まる
- APサーバー上でのログのparseがしんどくなる
対処
- 複数のfluentdプロセスを立てる
- num_threadを増やす
- buffer_queue_limitを増やす
- td-monitor-agantで可視化
parseがしんどい
- tail時のformatをシンプルに
複数台たてるとconfの管理とかが大変
- Puppetを使って一元管理
- 起動スクリプトをいじる
2014年
- Elasticsearchを使いはじめる
解決への課題
現状全ての入札ログをfluentdで捌くように改修できていない
- 必要なカラム、必要ないカラムの精査
- ログのフォーマットの精査
所感など
- fluentdの運用の話を含めて、どうデータを可視化するか(してるか)みたいな話も聞けて大変参考になった
- v1のリリースでコンフィグがよりスマートに書けそうなので、MLやGitHubのissues、Twitterはこまめにチェックしたい
- td-agent2は近々リリースされるとのこと(パフォーマンスがさらに良くなるとのこと
- Fluentd + BigQuery + Norikraのリアルタイムな可視化のデモは衝撃的でした(合間見てNorikra使ってみたい
- 要件満たすプラグインがなければどんどんリリースしていきたい
- @repeatedlyさんが着ていたHiveのTシャツがイカしていた
- とりあえず社内で布教活動していきたい
- 気づいたらピザがなくなっていたので恵比寿で九十九ラーメン食べて帰った
フリークアウトさん、インテリジェンスさん、登壇者の皆様ありがとうございました‼︎