Upload
hiroshi-toyama
View
2.886
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
株式会社イプロス外山 寛
FLUENTD
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
2
自己紹介• 外山 寛
–株式会社イプロス–チーフエンジニア
• Github– @toyama0919– https://github.com/toyama0919/
• Twitter– @toyama0919
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
3
Twitter つぶやき噂生成によると?
http://140note.hitonobetsu.com/rumor/
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
4
フォローすればFluentdに
詳しくなれるかも!
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
5
Fluentd の概要1
プラグインの概要2
3
Fluentdライブラリ4
まとめ5
イプロスの使用例
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
6
覚えておいて確実に損はない技術
応用範囲は広い!
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
7
BigDataの活用までの道のり1,データの生成。2,データの収集。3,蓄積と処理。4,データマイニングと可視化5,監視やレポート
2〜4が fluentdの守備範囲
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
8
Fluentdの特徴、再度おさらい
あらゆるデータソースからログを収集、転送、集約できる。インストールや設定導入が簡単。プラグインアーキテクチャを採用しており、新規プラグイン・拡張開発を自由に行なう事ができる。HA構成も考慮されており、低レイヤー(クラスタなど)での冗長に対する考慮が必要ない。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
9
プラグインアーキテクチャって何?
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
10
プラグインアーキテクチャ
プラグインをインストールすることによって機能をどんどん追加できる。プラグインは基本的に INと OUTを制御するシンプルな構造。プラグインは有志の手で実装されており、 200弱存在する。プラグインは gemで作成し、 fluent-gemコマンドでインストールする。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
11
td-agentは
素の fluentdに幾つかのプラグインが同梱されている。Rubyすらも同梱しており、すでにサーバーに rubyがインストールされていたとしても競合しない。「 Fluentd安定版の配布パッケージ」という位置づけ。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
td-agent
plugins
12
fluent-plugin-s3
fluent-plugin-mongo
fluent-plugin-scribe
fluent-plugin-webhdfs
fluent-plugin-td
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
13
プラグイン(plugin)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
14
プラグインの種類
インプットプラグインデータの INにあたるプラグインtail、 twitter、mysqlなどが該当。アウトプットプラグインこれが圧倒的に多い。S3、 growthforecastなどが該当。主にサードパーティのサービスにデータを送信するものが多い。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
15
よくあるケース
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
16
よくあるケース
集約サーバー
growthforecast
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
17
イプロスの事例KPIダッシュボード
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
18
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
19
Redshiftを使っています。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
20
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
21
Leftronicへの転送経路
集約サーバー
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
22
Apacheのログを tailし、UserAgentがクローラであるもののみを抽出し、UserAgentをグルーピングして
Leftronicに転送。また、トータル件数も Leftronicに転送。
例えばクローラ、途中で何が?
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
23
使っているプラグイン
rewrite-tag-filter
wootheeクローラを判定してグルーピングする。
groupcounterレコードの件数を正規表現等で指定してカウントする。
datacounterGroup by を fluentd上で可能にする。
leftronicLeftronicにデータを送信する。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
24
代表的なプラグイン
mongo
rewrite-tag-filter
s3
datacounter
td
growthforecast
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
25
Fluent-plugin-rewrite-tag-filter
データを処理して振り分けできる。正規表現が使える。キーを指定できる。プレイスホルダーが使える。 (ホスト名など )
基本中の基本のプラグインとも言える。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
26
<match access> type rewrite_tag_filter capitalize_regex_backreference yes rewriterule1 path \.(gif|jpe?g|png|pdf|zip)$ clear rewriterule2 status !^200$ clear rewriterule3 domain .+ site.pageview</match>
<match site.pageview></match>
<match clear> type null</match>
Fluent-plugin-rewrite-tag-filter
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
27
fluentdは当然プログラミング言語からも扱えます。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
28
fluent-logger
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
29
Fluentdのmatchディレクティブに対して直接バッファを送信する。対応言語多数あり、後述。Javaだったら HashMap、 Rubyだったら Hashといったような KeyValue形式のオブジェクトをそのまま送信できる。内部的にはMessagePackという形式に変換して送信。
fluent-loggerとは?
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
30
require 'fluent-logger'
# Loggerを宣言log = Fluent::Logger::FluentLogger.new('myapp', :host=>'localhost', :port=>24224)
# matchディレクティブに対して送信# hashを引数にしているlog.post("access", {”id"=>”1”,"agent"=>"foo”})
Rubyの場合
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
31
private static FluentLogger LOG = FluentLogger.getLogger(”myapp");
Map<String, String> data = new HashMap<String, String>();data.put(”id", 1);data.put(”agent", ”foo");LOG.log(”access", data);
Javaの場合
myapp.accessディレクティブにデータが送信される。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
32
Ruby
Java
Scala
PHP
Perl
Node.js
Python
対応言語
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
33
td-logger
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
34
Treasure Dataにデータを送信する事に特化した Logger。送信する tagを指定できるので、 Treasure Data じゃないmatchに対しても送信は可能。Java、 Rubyがある。Fluentdが起動していなくても直接Treasure Dataに転送できる。
td-loggerとは?
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
35
TD.event.post('table_name', {:foo=>:bar})
# config/treasure_data.ymldevelopment: apikey: "YOUR_API_KEY" database: rails_development debug_mode: true # enable debug mode
production: apikey: "YOUR_API_KEY" database: rails_production debug_mode: false
Railsで使う場合
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
36
Treasure Dataへ直接転送
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
37
まとめ
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
38
Fluentdを支えているもの。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
39
それは強力なコミュニティ。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
40
コミュニティは偉大
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
41
一緒にプラグインを作って fluentdを発展させましょう!
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【 CONFIDENTIAL】
Fluentd
42
ご静聴ありがとうございました。