Your SlideShare is downloading. ×
Webサーバ勉強会 LT資料
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Webサーバ勉強会 LT資料

5,964
views

Published on

Webサーバ勉強会@福岡のLT資料です。 …

Webサーバ勉強会@福岡のLT資料です。

http://atnd.org/events/26885

Published in: Technology

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

No Downloads
Views
Total Views
5,964
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
13
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Fluentdとfluent-plugin-mongoを 試してみたよ Webサーバ勉強会 2012/04/21
    • 2. 自己紹介名前: 松崎 学所属: 株式会社キャム(SaaS型の経営管理システムを提供中)Twitter: matsumana最近のお仕事: インフラ、Javaプログラマ(Rubyもほんの少し)最近の興味: Scala, Ruby, Python, Play, Node.js, Hadoop, Asakusa Framework, MongoDB, Fluentd, Vyatta
    • 3. アジェンダFluentdって?どんな所が良いの?弊社ではどう使いたいのか各プロセスが落ちた場合の動作を確認するJavaで出力したログを収集するデモRDBMSに保存するには?
    • 4. 公式ドキュメントhttp://fluentd.org/doc/GitHubhttps://github.com/fluent/@frsyukiさんのBloghttp://d.hatena.ne.jp/viver/20110929/p1Fluentd meetup in Japanhttp://www.zusaar.com/event/193104http://johtani.jugem.jp/?eid=60
    • 5. どんな所が良いの?既存システムの構成を変えずにログ収集を始める事が可能。MessagePackを使っている。設定が簡単。充実したプラグインにより柔軟な構成が可能。JSONにパースしてくれる。既に大規模サイトでの運用実績が!!
    • 6. 弊社ではどう使いたいのか アプリ(Java)からlog4jで出力した デバッグログの収集と保管を行いたい。 (ローテーションして消えていくので、 障害調査をする時にログがない事がある。)
    • 7. Fluentdへのinput方法 ログファイルをtailする。 → 既存システムに手を加えずに導入可能。 標準のin_tailは単一行のみ対応。 複数行にまたがるログの場合、 自分でプラグインを作る必要がある。 アプリから直接Fluentdにログを投げる。 → 今回はこれを試しました。 別のFluentdから転送される。
    • 8. 複数行にまたがるログを 処理するプラグインを作る時の参考fluent-plugin-mysqlslowqueryhttp://d.hatena.ne.jp/yuku_t/20120122/1327209206
    • 9. 今回試した構成bufferingしておけば、forward先やoutput先が落ちても、 復旧後にちゃんと処理されます。 fluent-plugin-mongo @repeatedlyさん作成 fluent-logger-java @mugaさん作成 (RubyやPythonもあるよ)
    • 10. ・APサーバの設定ファイルhttps://gist.github.com/2422761・LOGサーバの設定ファイルhttps://gist.github.com/2422773・ログ出力テストのソース(Java)https://gist.github.com/2422818
    • 11. 各プロセスが落ちた場合の動作を確認する MongoDBが落ちた場合 → LogサーバのFluentdの再起動が必要。 再起動した時にbuffer fileを使ってMongoDBに保存される。 LogサーバのFluentdが落ちた場合 → LogサーバのFluentdが起動した時にAPサーバがbufferを使って LogサーバのFluentdに転送後、MongoDBに保存される。 APサーバのFluentdが落ちた場合 → Javaで例外が発生するが、printStackTrace()するだけなので、 システムが止まる事はない。
    • 12. $ java FluentLogClient2012/04/21 1:43:47 org.fluentd.logger.sender.RawSocketSender openSEVERE: Failed to connect fluentd: localhost/127.0.0.1:242242012/04/21 1:43:47 org.fluentd.logger.sender.RawSocketSender openSEVERE: Connection will be retriedjava.net.ConnectException: 接続を拒否されました at gnu.java.net.PlainSocketImpl.connect(libgcj.so.10) at java.net.Socket.connect(libgcj.so.10) at java.net.Socket.connect(libgcj.so.10) at org.fluentd.logger.sender.RawSocketSender.connect(RawSocketSender.java:144) at org.fluentd.logger.sender.RawSocketSender.open(RawSocketSender.java:132) at org.fluentd.logger.sender.RawSocketSender.<init>(RawSocketSender.java:127) at org.fluentd.logger.FluentLogger.getLogger(FluentLogger.java:53) at org.fluentd.logger.FluentLogger.getLogger(FluentLogger.java:40) at org.fluentd.logger.FluentLogger.getLogger(FluentLogger.java:36) at FluentLogClient.<clinit>(FluentLogClient.java:10) at java.lang.Class.initializeClass(libgcj.so.10)Logging.
    • 13. RDBMSに保存したい場合 MySQL → fluent-plugin-mysql PostgreSQL → fluent-plugin-pghstore
    • 14. Ruby 1.9.3 p125 + jemalloc を使いましょう。詳しくは@tagomorisさんのブログを。 http://d.hatena.ne.jp/tagomoris/ 20120403/1333417657
    • 15. ご清聴ありがとうございました。