はじめに
名前
fluent-plugin-groonga
説明
fluent-plugin-groongaはGroongaユーザー用のFluentdプラグイン集です。Groongaユーザーはfluent-plugin-groongaを使ってレプリケーションを実現することができます。
Fluentdで収集したログをGroongaに保存。
Groonga用のレプリケーションシステムの実装。
最初の使い方は普通の使い方です。Groongaにログを保存して、全文検索で目的のログを見つけられます。
ふたつ目の使い方はGroongaユーザー向けの使い方です。Groonga自身はレプリケーションをサポートしていません。しかし、fluent-plugin-groongaを使えばレプリケーションできます。
fluent-plugin-groongaはinputプラグインとoutputプラグインを提供しています。どちらもgroonga
という名前です。
ログをGroongaに保存するためにfluent-plugin-groongaを使う場合は、groonga
outputプラグインだけを使います。
以下は/var/log/messages
のすべてのデータをGroongaに保存する設定です。
<source>
@type tail
format syslog
path /var/log/syslog.1
pos_file /tmp/messages.pos
tag log.messages
read_from_head true
</source>
<match log.**>
@type groonga
store_table logs
protocol http
host 127.0.0.1
buffer_type file
buffer_path /tmp/buffer
flush_interval 1
</match>
Groongaのレプリケーションシステムを実現するためにfluent-plugin-groongaを使う場合は、どちらのプラグインも使う必要があります。
inputプラグインはGroongaと互換性のあるインターフェイスを提供します。つまり、HTTPインターフェイスとGQTPインターフェイスがあるということです。inputプラグインをGroongaサーバーと同じように使うことができます。inputプラグインはGroongaのコマンドを受け取って、受け取ったGroongaのコマンドを0個以上のFluentdを経由してoutputプラグインに送ります。
outputプラグインは受け取ったGroongaコマンドをGroongaに送ります。outputプラグインはHTTP、GQTP、コマンドとすべてのインターフェイスをサポートしています。
データはcopy
outputプラグインで複製することができます。
インストール
% gem install fluent-plugin-groonga
使い方
2つの使い方があります。
Fluentdで収集したログをGroongaに保存。
Groonga用のレプリケーションシステムの実装。
これらは他のセクションで説明します。
ログをGroongaに保存
ログをGroongaに保存するにはgroonga
outputプラグインを使います。
このoutputプラグインは自動でスキーマを定義する機能があります。そのため、Fluentdを動かす前にGroongaにスキーマを定義する必要はありません。そのままGroongaを起動してください。
1つの必須引数があります。
store_table
: ログを保存するテーブル名を指定します。
以下は最初の設定例です。
<match log.**>
@type groonga
store_table logs
</match>
この設定はlocalhost
で動いているGroongaのlogs
テーブルにログを保存する設定です。
省略可能なパラメーターは以下の通りです。
protocol
: Groongaサーバーとの接続で使うプロトコルを指定します。- 利用可能な値:
http
,gqtp
,command
- デフォルト:
http
- 利用可能な値:
host
:Groongaサーバーのホスト名またはIPアドレスを指定します。- デフォルト:
127.0.0.1
- デフォルト:
port
:Groongaサーバーのポート番号を指定します。http
プロトコルのときのデフォルト:10041
gqtp
プロトコルのときのデフォルト:10043
以下は省略可能なパラメーターを明示的に指定した設定です。
<match log.**>
@type groonga
store_table logs
protocol http
host 127.0.0.1
port 10041
</match>
groonga
outputプラグインはバッファーをサポートしています。そのため、バッファー関連のパラメーターを指定できます。詳細はBuffer Plugin Overview | Fluentdを参照してください。
特別なタグ名があることに注意してください。この使い方のとき、groonga.command.XXX
というタグ名を使うことはできません。つまり、次のような設定を使えないということです。
<match groonga.command.*>
@type groonga
# ...
</match>
groonga.command.XXX
はGroongaのレプリケーションシステムを実現するために予約されています。
Groongaのレプリケーションシステムを実装
Groongaのレプリケーションシステムを実装する方法は次のドキュメントを参照してください。
作者
- Kouhei Sutou
<kou@clear-code.com>
ライセンス
LGPL 2.1です。詳細は doc/text/lgpl-2.1.txt を見てください。
(提供してもらったパッチも含め、須藤功平がライセンスを変更できる権利を持つことに同意してもらったこととします。)
メーリングリスト
英語:groonga-talk
日本語:groonga-dev
ソース
fluent-plugin-groongaのリポジトリーはGitHub上にあります。
感謝
- ...