SlideShare une entreprise Scribd logo
1  sur  15
Fluentdとfluent-plugin-mongoを
       試してみたよ
                 Webサーバ勉強会
                     2012/04/21
自己紹介

名前: 松崎 学

所属: 株式会社キャム(SaaS型の経営管理システムを提供中)

Twitter: matsumana

最近のお仕事: インフラ、Javaプログラマ(Rubyもほんの少し)

最近の興味: Scala, Ruby, Python, Play, Node.js,
            Hadoop, Asakusa Framework, MongoDB, Fluentd, Vyatta
アジェンダ
Fluentdって?

どんな所が良いの?

弊社ではどう使いたいのか

各プロセスが落ちた場合の動作を確認する

Javaで出力したログを収集するデモ

RDBMSに保存するには?
公式ドキュメント
http://fluentd.org/doc/

GitHub
https://github.com/fluent/

@frsyukiさんのBlog
http://d.hatena.ne.jp/viver/20110929/p1

Fluentd meetup in Japan
http://www.zusaar.com/event/193104
http://johtani.jugem.jp/?eid=60
どんな所が良いの?
既存システムの構成を変えずに
ログ収集を始める事が可能。

MessagePackを使っている。

設定が簡単。

充実したプラグインにより柔軟な構成が可能。

JSONにパースしてくれる。

既に大規模サイトでの運用実績が!!
弊社ではどう使いたいのか

 アプリ(Java)からlog4jで出力した
 デバッグログの収集と保管を行いたい。
 (ローテーションして消えていくので、
 障害調査をする時にログがない事がある。)
Fluentdへのinput方法
 ログファイルをtailする。
 → 既存システムに手を加えずに導入可能。
  標準のin_tailは単一行のみ対応。
  複数行にまたがるログの場合、
  自分でプラグインを作る必要がある。

 アプリから直接Fluentdにログを投げる。
 → 今回はこれを試しました。

 別のFluentdから転送される。
複数行にまたがるログを
  処理するプラグインを作る時の参考


fluent-plugin-mysqlslowquery
http://d.hatena.ne.jp/yuku_t/20120122/1327209206
今回試した構成



bufferingしておけば、forward先やoutput先が落ちても、
         復旧後にちゃんと処理されます。
   fluent-plugin-mongo @repeatedlyさん作成
   fluent-logger-java   @mugaさん作成
                       (RubyやPythonもあるよ)
・APサーバの設定ファイル
https://gist.github.com/2422761

・LOGサーバの設定ファイル
https://gist.github.com/2422773

・ログ出力テストのソース(Java)
https://gist.github.com/2422818
各プロセスが落ちた場合の動作を確認する

 MongoDBが落ちた場合
 → LogサーバのFluentdの再起動が必要。
  再起動した時にbuffer fileを使ってMongoDBに保存される。

 LogサーバのFluentdが落ちた場合
 → LogサーバのFluentdが起動した時にAPサーバがbufferを使って
  LogサーバのFluentdに転送後、MongoDBに保存される。

 APサーバのFluentdが落ちた場合
 → Javaで例外が発生するが、printStackTrace()するだけなので、
  システムが止まる事はない。
$ java FluentLogClient
2012/04/21 1:43:47 org.fluentd.logger.sender.RawSocketSender open
SEVERE: Failed to connect fluentd: localhost/127.0.0.1:24224
2012/04/21 1:43:47 org.fluentd.logger.sender.RawSocketSender open
SEVERE: Connection will be retried
java.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.
RDBMSに保存したい場合
 MySQL
 → fluent-plugin-mysql

 PostgreSQL
 → fluent-plugin-pghstore
Ruby 1.9.3 p125 + jemalloc

        を使いましょう。

詳しくは@tagomorisさんのブログを。
 http://d.hatena.ne.jp/tagomoris/
     20120403/1333417657
ご清聴ありがとう
ございました。

Contenu connexe

Tendances

Jvm operation casual talks
Jvm operation casual talksJvm operation casual talks
Jvm operation casual talks
oranie Narut
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
Sea Mountain
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
techtalkdwango
 

Tendances (20)

Jvm operation casual talks
Jvm operation casual talksJvm operation casual talks
Jvm operation casual talks
 
120517 revert tomcat7
120517 revert tomcat7120517 revert tomcat7
120517 revert tomcat7
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイ
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマークPOWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
 
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsync
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
 
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbcZabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料
 
Vagrant入門以前
Vagrant入門以前Vagrant入門以前
Vagrant入門以前
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
 
mysqlftppc 紹介
mysqlftppc 紹介mysqlftppc 紹介
mysqlftppc 紹介
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
 

En vedette

FukPUG vol2 Tornado
FukPUG vol2 TornadoFukPUG vol2 Tornado
FukPUG vol2 Tornado
学 松崎
 
Should we write such like plugin or not?
Should we write such like plugin or not?Should we write such like plugin or not?
Should we write such like plugin or not?
SATOSHI TAGOMORI
 
リサーチャーとマーケター原稿2012326
リサーチャーとマーケター原稿2012326リサーチャーとマーケター原稿2012326
リサーチャーとマーケター原稿2012326
Shigeru Kishikawa
 
マークアップエンジニア だからうれしい Fireworksの使い方あれこれ
マークアップエンジニア だからうれしい Fireworksの使い方あれこれマークアップエンジニア だからうれしい Fireworksの使い方あれこれ
マークアップエンジニア だからうれしい Fireworksの使い方あれこれ
Naoki Matsuda
 
最新開発支援ツールを使ったデバッグ対応
最新開発支援ツールを使ったデバッグ対応最新開発支援ツールを使ったデバッグ対応
最新開発支援ツールを使ったデバッグ対応
Osamu Monoe
 
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザインこれから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
Yasuhisa Hasegawa
 

En vedette (20)

FukPUG vol2 Tornado
FukPUG vol2 TornadoFukPUG vol2 Tornado
FukPUG vol2 Tornado
 
Should we write such like plugin or not?
Should we write such like plugin or not?Should we write such like plugin or not?
Should we write such like plugin or not?
 
Fluentd in Co-Work
Fluentd in Co-WorkFluentd in Co-Work
Fluentd in Co-Work
 
The Craft of UX
The Craft of UXThe Craft of UX
The Craft of UX
 
リサーチャーとマーケター原稿2012326
リサーチャーとマーケター原稿2012326リサーチャーとマーケター原稿2012326
リサーチャーとマーケター原稿2012326
 
デザイナーがエンジニアさんと楽しくデザイン実装の話をするために
デザイナーがエンジニアさんと楽しくデザイン実装の話をするためにデザイナーがエンジニアさんと楽しくデザイン実装の話をするために
デザイナーがエンジニアさんと楽しくデザイン実装の話をするために
 
解析データの分析と活用
解析データの分析と活用解析データの分析と活用
解析データの分析と活用
 
Debugging mobile websites and web apps
Debugging mobile websites and web appsDebugging mobile websites and web apps
Debugging mobile websites and web apps
 
3D printing for Development Hack Day in Bucharest, session 1
3D printing for Development Hack Day in Bucharest, session 13D printing for Development Hack Day in Bucharest, session 1
3D printing for Development Hack Day in Bucharest, session 1
 
Transformative Web Design ~変化にしなやかに対応するデザイン力~
Transformative Web Design ~変化にしなやかに対応するデザイン力~Transformative Web Design ~変化にしなやかに対応するデザイン力~
Transformative Web Design ~変化にしなやかに対応するデザイン力~
 
マークアップエンジニア だからうれしい Fireworksの使い方あれこれ
マークアップエンジニア だからうれしい Fireworksの使い方あれこれマークアップエンジニア だからうれしい Fireworksの使い方あれこれ
マークアップエンジニア だからうれしい Fireworksの使い方あれこれ
 
最新開発支援ツールを使ったデバッグ対応
最新開発支援ツールを使ったデバッグ対応最新開発支援ツールを使ったデバッグ対応
最新開発支援ツールを使ったデバッグ対応
 
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench NagoyaWordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
 
画像Hacks
画像Hacks画像Hacks
画像Hacks
 
Simple Pure Java
Simple Pure JavaSimple Pure Java
Simple Pure Java
 
WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化WebフレームワークXSS対策の自動化
WebフレームワークXSS対策の自動化
 
『デザイニング・インターフェース』読書会資料
『デザイニング・インターフェース』読書会資料『デザイニング・インターフェース』読書会資料
『デザイニング・インターフェース』読書会資料
 
Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012
 
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザインこれから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
これから求められるWebコミュニケーションスキル 〜今日から始めるプロトタイプデザイン
 
言語の世界
言語の世界言語の世界
言語の世界
 

Similaire à Webサーバ勉強会 LT資料

Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0
NIFTY Cloud
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
Yuuki Namikawa
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
Taku Unno
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
Takatoshi Matsuo
 
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
Makoto Haruyama
 

Similaire à Webサーバ勉強会 LT資料 (20)

FluentdとGrothForecastをインストールする
FluentdとGrothForecastをインストールするFluentdとGrothForecastをインストールする
FluentdとGrothForecastをインストールする
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010ROMA on JRuby at JRubyKaigi 2010
ROMA on JRuby at JRubyKaigi 2010
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
 
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
 
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
 
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
 
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
 

Webサーバ勉強会 LT資料

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n