はじめに

名前

fluent-plugin-groonga

説明

fluent-plugin-groongaはGroongaユーザー用のFluentdプラグイン集です。Groongaユーザーはfluent-plugin-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つの使い方があります。

これらは他のセクションで説明します。

ログをGroongaに保存

ログをGroongaに保存するにはgroonga outputプラグインを使います。

このoutputプラグインは自動でスキーマを定義する機能があります。そのため、Fluentdを動かす前にGroongaにスキーマを定義する必要はありません。そのままGroongaを起動してください。

1つの必須引数があります。

以下は最初の設定例です。

<match log.**>
  @type groonga
  store_table logs
</match>

この設定はlocalhostで動いているGroongaのlogsテーブルにログを保存する設定です。

省略可能なパラメーターは以下の通りです。

以下は省略可能なパラメーターを明示的に指定した設定です。

<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のレプリケーションシステムを実装する方法は次のドキュメントを参照してください。

作者

ライセンス

LGPL 2.1です。詳細は doc/text/lgpl-2.1.txt を見てください。

(提供してもらったパッチも含め、須藤功平がライセンスを変更できる権利を持つことに同意してもらったこととします。)

メーリングリスト

ソース

fluent-plugin-groongaのリポジトリーはGitHub上にあります。

感謝