fluentd

4,990 views

Published on

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,990
On SlideShare
0
From Embeds
0
Number of Embeds
2,847
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

fluentd

  1. 1. * 2013/03/22 Keisuke.K
  2. 2. この資料は、社内技術発表会用に作成していますが、外部に公開することを意識した内容になっています。 *
  3. 3. * 鎌田啓佑* Java 好き* FreeBSD 好き* Jiemamy コミッタ&インフラ管理者 (http://jiemamy.org/)* java-ja *
  4. 4. *
  5. 5. * Treasure Data, Inc. の古橋氏が開発。* Ruby 製* 様々なログ入力、およびログ出力方法を備えて いる。* 入力: TCP, HTTP, tail, exec, syslog (udp), scribe* 出力: ファイル, TCP, exec, stdout, S3, MongoDB, HDFS *
  6. 6. "Fluentd" is a OSS lightweight and flexible logcollector. Fluentd receives logs as JSON streams,buffers them, and sends them to other systemslike S3, MongoDB, Hadoop, or other Fluentds.公式サイトより引用 *
  7. 7. "Fluentd" is a OSS lightweight and flexible logcollector. Fluentd receives logs as JSON streams,buffers them, and sends them to other systemslike S3, MongoDB, Hadoop, or other Fluentds.公式サイトより引用 *
  8. 8. ジェイソンさんとは、ホラー映画『13日の金曜日』シリーズに登場するキャラクター『ジェイソン』に扮してチェーンソーアートを行う人物である。2011/07/07放送のTV番組「ZIP!」で中の人は60歳の仏像彫刻師であることが明かされた。ジェイソンさんにとってのチェーンソーアートとは、ご本人曰く「1ヶ所切り込むと、後は自然に出来上がる」「材料に合わせ、作りたいものを作るだけ」引用元http://dic.nicovideo.jp/a/%E3%82%B8%E3%82%A7%E3%82%A4%E3%82%BD%E3%83%B3%E3%81%95%E3%82%93 *
  9. 9. ジェイソンさんとは、ホラー映画『13日の金曜日』シリーズに登場するキャラクター『ジェイソン』に扮してチェーンソーアートを行う人物である。2011/07/07放送のTV番組「ZIP!」で中の人は60歳の仏像彫刻師であることが明かされた。ジェイソンさんにとってのチェーンソーアートとは、ご本人曰く「1ヶ所切り込むと、後は自然に出来上がる」「材料に合わせ、作りたいものを作るだけ」引用元http://dic.nicovideo.jp/a/%E3%82%B8%E3%82%A7%E3%82%A4%E3%82%BD%E3%83%B3%E3%81%95%E3%82%93 *
  10. 10. * JavaScript Object Notation* {”name”: ”John Doe”, ”age”: 28}* Twitter などの API の返却値として利用される ことも。* つまり、プログラム側で処理しやすい。 *
  11. 11. *
  12. 12. * Configure ntpd.* /etc/limits.conf root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535* /etc/sysctl.conf net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10240 65535 *
  13. 13. * curl-L http://toolbelt.treasure- data.com/sh/install-redhat.sh | sh* service td-agent start *
  14. 14. 2013-03-21 18:38:49 +0900: starting fluentd-0.10.302013-03-21 18:38:49 +0900: reading config file path="/etc/td-agent/td-agent.conf"2013-03-21 18:38:49 +0900: using configuration file: <ROOT> :2013-03-21 18:38:49 +0900: adding source type="forward"2013-03-21 18:38:49 +0900: adding source type="http"2013-03-21 18:38:49 +0900: adding source type="debug_agent"2013-03-21 18:38:49 +0900: adding match pattern="td.*.*" type="tdlog"2013-03-21 18:38:49 +0900: adding match pattern="debug.**" type="stdout"2013-03-21 18:38:49 +0900: listening fluent socket on 0.0.0.0:242242013-03-21 18:38:49 +0900: listening dRuby uri="druby://127.0.0.1:24230"object="Engine" *
  15. 15. * MessagePack プロトコルで fluentd にログを投 げる Java ライブラリ。* Maven Central Repository にある。 *
  16. 16. FluentLogger logger = FluentLogger.getLogger(”tag”);Map<String, Object> data = new HashMap<String, Object>();data.put(”key”, ”value”);logger.log(”label”, data); *
  17. 17. * syslog で言う facility みたいなもの。* 任意に設定可能なので、アプリケーションごと のログ設定とかで使えるかも。<match tag.label> type stdout</match> *
  18. 18. *
  19. 19. * Twitter4j を使ってタイムラインをストリームで 受信。* 受信したツイートを fluent-logger-java でロギ ング。* というツールを想定。 *
  20. 20. <dependencies> <dependency> <groupId>org.fluentd</groupId> <artifactId>fluent-logger</artifactId> <version>0.2.8</version> </dependency> <dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-stream</artifactId> <version>3.0.3</version> </dependency></dependencies> *
  21. 21. FluentLogger logger = FluentLogger.getLogger("t2fluentd");Twitter twitter = TwitterFactory.getSingleton();StatusListener listener = new StatusAdapter() { @Override public void onStatus(Status status) { Map<String, Object> data = new HashMap<String, Object>(); data.put("name", status.getUser().getName()); data.put("screenName", status.getUser().getScreenName()); data.put("text", status.getText()); LOGGER.log("stream", data); }};TwitterStream twitterStream = new TwitterStreamFactory().getInstance(accessToken);twitterStream.addListener(listener);twitterStream.addListener(new UserStreamAdapter());twitterStream.user(); *
  22. 22. <match t2fluentd.*> type stdout</match><source> type forward</source> *
  23. 23. 2013-03-21 21:06:11 +0900 t2fluentd.stream: {"text":"うー、池袋でラーメン食べ歩きしたい…...","name":"***","screenName":"***"}2013-03-21 21:06:21 +0900 t2fluentd.stream: {"text":"RT @***: @*** とくにすぐ無くなるとは...","name":"***","screenName":"***"}2013-03-21 21:06:31 +0900 t2fluentd.stream: {"text":"“ITProみたいにベンダーに広告もらって...","name":"***","screenName":"***"}2013-03-21 21:06:32 +0900 t2fluentd.stream: {"text":"Riak CSがOSSになったのは結構すごいこ...","name":"***","screenName":"***"}2013-03-21 21:06:42 +0900 t2fluentd.stream: {"text":"全然cssが効かないんですけお!!!!...,"name":"***","screenName":"***"}2013-03-21 21:06:54 +0900 t2fluentd.stream: {"text":"では今日はそろそろ失礼します。あした...","name":"***","screenName":"***"}2013-03-21 21:07:01 +0900 t2fluentd.stream: {"text":"えっ、星矢オメガの新章、スチールセイ...","name":"***","screenName":"***"}2013-03-21 21:07:01 +0900 t2fluentd.stream: {"text":"しかし仮に5V導入したとして置き場所が...","name":"***","screenName":"***"}2013-03-21 21:07:06 +0900 t2fluentd.stream: {"text":"なぜ博多ラーメンが好きなのかというと...","name":"***","screenName":"***"}2013-03-21 21:07:09 +0900 t2fluentd.stream: {"text":"RT @***: 「型システム入門」の訳者の...","name":"***","screenName":"***"}2013-03-21 21:07:15 +0900 t2fluentd.stream: {"text":"#ジョルダンライブ [03/21 21:06] #山...","name":"***","screenName":"***"}2013-03-21 21:07:18 +0900 t2fluentd.stream: {"text":"もう一蘭で全然いいよぅ…","name":"***","screenName":"***"}2013-03-21 21:07:18 +0900 t2fluentd.stream: {"text":"大胆な金融緩和も良いけれど、ベッドに...","name":"***","screenName":"***"}2013-03-21 21:07:46 +0900 t2fluentd.stream: {"text":"もう後先考えずやるか","name":"***","screenName":"***"} *
  24. 24. * tag が任意なので syslog より設定が自由に効く* S3 や HDFS に出力できるところから見ると、ビッグデータ用にも使える?* とにかく強力そう* 検証で作ったコードは Bitbucket に push してあります https://bitbucket.org/ewigkeit1204/t2fluentd *
  25. 25. ご清聴ありがとうございました

×