FluentdとMongoで作る
サービス
PHPStudy 73rd
@kogarasi_cross
は、、、初20枠です!
自己紹介
名前: こがらし
Twitter: @kogarasi_cross
仕事: Unityを使って飛び跳ねます(物
理)
こんな感じ
…なんか違う
冗談はさておき…
まずは登場人物を紹介
Fluentdとは
ログ収拾のためのツール
とってもPluggableなツール
いろんなものを投げれる
いろんなものをはける
Fluentdとは Part.2
何を投げれるのか?
ログファイル(Tail
PHPとかからプッシュ(Socket
TwitterのStream←重要
Fluentdとは Part.3
何に投げれるのか
標準出力・ファイル・S3
MySQL/MongoDB…各種DB
WebSocket
Fluentdとは Part.4
つまるところ何でもいける!
内部でJSONだったりMsgPackを使って
いる。
そういうのをプラグイン上で処理出来れ
ばOK
etc
めっちゃいろんなプラグインがあります
zabbixとか(zabbixってなに
twilioとか
http://fluentd.org/plugin/
MongoDBとは
JSONぽいのを扱えるNoSQL DB
Capped Collectionとかいうものがある
(これを使う)
JSを使って内部で集計処理とかやらせら
れる
Capped Collection
保持できるデータ量に制限(Capped)が
ついたもの
指定したデータ数・データサイズになる
と、自動的に古いものから削除してくれる
※ただし、ユーザー操作でデータの削除や
途中挿入・並び替えは出来ない
ということで本題
あれ、Fluentdって
ログ収拾ツールだよね?
そうです!
そんなFluentdが今回は主役です!
簡単な物から
まずはFluentd単体で!
Twitterから“なう"を集める
http://nowtter.kogarasi.com
中身
TwitterプラグインでPublic Streamを取得
Rewriteプラグインで”なう”が含まれるツ
イートを抽出(日本語なのでTwitter APIで
のフィルタリングが出来ない)
WebSocketプラグインでクライアントへ転
...
チェックポイント

サーバーサイドのコーディングしてない
ゲームに転用←
「Stream Fighter」
至って普通のシューティング
…ただし、敵が

”つぶやきによって出現すること以外は”
つぶやきの量=時間帯に
よってスクリームの沸く
量が変わる
ピーク時にやるとかなり
つらい
チェックポイント

ユーザーに伝わらない←
+MongoDBで

Twitterで雨っぽいことを抽出して、各地
のお天気を表示
http://kogarasi.com/weather
簡単な流れ
Twitterプラグインでつぶやきを取得
集めたつぶやきから単語で抽出
抽出したつぶやきをMongoDBに片っ端から投げ込
む!
Jenkinsで定期的にデータを集計しておく
集計データから現在の状況を表示する
チェックポイント
Capped Collectionを利用しているので、
古いデータが自動的に破棄されていく
↑難しいデータ管理とか必要無い
雨には反応するけど、晴れには反応し
ない\(^_^)/
まとめ
基本的な部分は動くように”設定”するだ
け(Fluentd/MongoDB/Jenkins)
コーディングしてるのはフロントエンド
に近い部分のみ
と思ったけど、集計処理とかは書いてた
…
質問とかそういうの
ご清聴
ありがとうございました
Fluentとmongoで作るサービス
Fluentとmongoで作るサービス
Fluentとmongoで作るサービス
Upcoming SlideShare
Loading in …5
×

Fluentとmongoで作るサービス

705 views
600 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
705
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Fluentとmongoで作るサービス

  1. 1. FluentdとMongoで作る サービス PHPStudy 73rd @kogarasi_cross
  2. 2. は、、、初20枠です!
  3. 3. 自己紹介 名前: こがらし Twitter: @kogarasi_cross 仕事: Unityを使って飛び跳ねます(物 理)
  4. 4. こんな感じ …なんか違う
  5. 5. 冗談はさておき…
  6. 6. まずは登場人物を紹介
  7. 7. Fluentdとは ログ収拾のためのツール とってもPluggableなツール いろんなものを投げれる いろんなものをはける
  8. 8. Fluentdとは Part.2 何を投げれるのか? ログファイル(Tail PHPとかからプッシュ(Socket TwitterのStream←重要
  9. 9. Fluentdとは Part.3 何に投げれるのか 標準出力・ファイル・S3 MySQL/MongoDB…各種DB WebSocket
  10. 10. Fluentdとは Part.4 つまるところ何でもいける! 内部でJSONだったりMsgPackを使って いる。 そういうのをプラグイン上で処理出来れ ばOK
  11. 11. etc めっちゃいろんなプラグインがあります zabbixとか(zabbixってなに twilioとか http://fluentd.org/plugin/
  12. 12. MongoDBとは JSONぽいのを扱えるNoSQL DB Capped Collectionとかいうものがある (これを使う) JSを使って内部で集計処理とかやらせら れる
  13. 13. Capped Collection 保持できるデータ量に制限(Capped)が ついたもの 指定したデータ数・データサイズになる と、自動的に古いものから削除してくれる ※ただし、ユーザー操作でデータの削除や 途中挿入・並び替えは出来ない
  14. 14. ということで本題
  15. 15. あれ、Fluentdって ログ収拾ツールだよね?
  16. 16. そうです! そんなFluentdが今回は主役です!
  17. 17. 簡単な物から まずはFluentd単体で! Twitterから“なう"を集める http://nowtter.kogarasi.com
  18. 18. 中身 TwitterプラグインでPublic Streamを取得 Rewriteプラグインで”なう”が含まれるツ イートを抽出(日本語なのでTwitter APIで のフィルタリングが出来ない) WebSocketプラグインでクライアントへ転 送(簡単にWSサーバーになってくれる)
  19. 19. チェックポイント サーバーサイドのコーディングしてない
  20. 20. ゲームに転用← 「Stream Fighter」 至って普通のシューティング …ただし、敵が
 ”つぶやきによって出現すること以外は”
  21. 21. つぶやきの量=時間帯に よってスクリームの沸く 量が変わる ピーク時にやるとかなり つらい
  22. 22. チェックポイント ユーザーに伝わらない←
  23. 23. +MongoDBで Twitterで雨っぽいことを抽出して、各地 のお天気を表示 http://kogarasi.com/weather
  24. 24. 簡単な流れ Twitterプラグインでつぶやきを取得 集めたつぶやきから単語で抽出 抽出したつぶやきをMongoDBに片っ端から投げ込 む! Jenkinsで定期的にデータを集計しておく 集計データから現在の状況を表示する
  25. 25. チェックポイント Capped Collectionを利用しているので、 古いデータが自動的に破棄されていく ↑難しいデータ管理とか必要無い 雨には反応するけど、晴れには反応し ない\(^_^)/
  26. 26. まとめ 基本的な部分は動くように”設定”するだ け(Fluentd/MongoDB/Jenkins) コーディングしてるのはフロントエンド に近い部分のみ と思ったけど、集計処理とかは書いてた …
  27. 27. 質問とかそういうの
  28. 28. ご清聴 ありがとうございました

×