Haruka Yoshihara
null+****@clear*****
Tue Jan 8 14:34:28 JST 2013
Haruka Yoshihara 2013-01-08 14:34:28 +0900 (Tue, 08 Jan 2013) New Revision: 511f180ef9d625ea1c0fe5c0c154821ac9173d2e https://github.com/groonga/groonga.github.com/commit/511f180ef9d625ea1c0fe5c0c154821ac9173d2e Log: doc: publish the entry about fluent-plugin-groonga TODO: translate this entry to English and published Added files: ja/_posts/2013-01-08-fluent-plugin-groonga.textile Added: ja/_posts/2013-01-08-fluent-plugin-groonga.textile (+45 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2013-01-08-fluent-plugin-groonga.textile 2013-01-08 14:34:28 +0900 (5b1df08) @@ -0,0 +1,45 @@ +--- +layout: post.ja +title: fluent-plugin-groongaについて +description: groongaデータベースのレプリケーションを行うfluent-plugin-groongaについて説明します。 +--- +去年最後のの肉の日である12/29に、ログ収集ツール "fluentd":http://fluentd.org/ を使って、groongaデータベースのレプリケーションを行うライブラリfluent-plugin-groonga 1.0.1をリリースしました。 +しかし、blogroongaでは今までこのfluent-plugin-groongaについて説明していませんでした。 +そこで、この記事ではfluent-plugin-groongaについて説明します。 + +h2. fluent-plugin-groongaとは + +fluent-plugin-groongaはfluentdのプラグイン集で、Rubyで実装されています。 +通常、fluentdはログの収集に使いますが、fluent-plugin-groongaではgroongaのクエリを複数のgroongaサーバーに転送するために使っています。つまり、fluentdのメッセージルーティング機能だけを使ってレプリケーションに対応したgroongaシステムを構築します。 + +通常、groongaサーバーにアクセスするときは、groongaクライアントもしくはHTTPクライアントとgroongaサーバー同士が1対1で通信します。 +fluent-plugin-groongaは、このクライアントとgroongaサーバーの間に入り、クライアントからのクエリーを複数のgroongaサーバーに送信することができます。groongaサーバーだけでなく、他のfluentdに送信することもできます。この機能を使ってレプリケーションを実装することができます。 + +レプリケーション実装のために、fluent-plugin-groongaは同じgroongaという名前でinputプラグインとoutputプラグインという2つのプラグインを提供しています。次に、それぞれのプラグインについて説明します。 + + +h3. inputプラグイン + +inputプラグインは、本来groongaサーバーに送られるgroongaコマンドを受け取ります。groongaコマンドを受け取ったinputプラグインは、次に、受け取ったgroongaのコマンドを0個以上のfluentdを経由し、後述するoutputプラグインに送ります。0個の場合は直接outputプラグインに送ります。 +inputプラグインは、groongaコマンドを受け取るときのインターフェイスとしてHTTPとgroonga独自プロトコルである "GQTP":/ja/docs/spec/gqtp.html の2つを提供します。つまり、inputプラグインにはgroongaサーバーと互換性のあるインターフェイスを用いてgroongaコマンドを送信することができます。このように、互換性のあるインタフェースを提供することで、inputプラグインをgroongaサーバーと同じように使うことができます。 + +h3. outputプラグイン + +outputプラグインは受け取ったgroongaコマンドをgroongaサーバーに送ります。outputプラグインはHTTP、GQTP、コマンドとすべてのインターフェイスをサポートしています。inputプラグインで受け取ったgroongaコマンドのインタフェースに合わせる必要はありません。また、このとき送信するデータは "copy output plugin":http://docs.fluentd.org/articles/out_copy (英語)で複製することもできます。 + +h2. インストール + +Rubyのgemとしてfluent-plugin-groongaを提供しています。 +そのため、インストールは次のコマンドを実行するだけで完了します。 + +<pre> + % gem install fluent-plugin-groonga +</pre> + +また、fluent-plugin-groongaもgroongaや関連プロダクトと同じく、 "githubにてソースコードが公開":https://github.com/groonga/fluent-plugin-groonga/ されています。 + +h2. ドキュメント + +"fluent-plugin-groongaのドキュメント":http://groonga.org/fluent-plugin-groonga/ja/ には、 "具体的なレプリケーションの構成の仕方":http://groonga.org/fluent-plugin-groonga/ja/file.constitution.html や "設定の仕方":http://groonga.org/fluent-plugin-groonga/ja/file.configuration.html が掲載されています。(なお、すべて日本語で書かれています。) +このドキュメントを参考に実際にレプリケーションを試してみてください! +なお、問題の報告や必要な機能の提案については、groongaのメーリングリスト "groonga-dev":http://lists.sourceforge.jp/mailman/listinfo/groonga-dev やgithubでのpull requestで受け付けています。何かありましたらこちらもご活用ください! -------------- next part -------------- HTML����������������������������...Download