【Fluentd翻訳】 Configuration File
Fluentdのドキュメントをザックリ訳してみる。
※個人的に、Fluentdへの興味や、理解を深めるために行っています。公式サイトとは無関係です。正確な内容は公式サイトを参照ください。
Configuration File
構成ファイル
概要
構成ファイルにより、(1)選んでいる入出力プラグイン及び、(2)プラグインのパラメータを指定する ことで、Fluentdの入出力をコントロールできます。ファイルは、Fluentdが正しく動くことを要求します。
構成ファイルの場所
RPM or Deb
構成ファイルは以下の場所を指定されます。
$ sudo vi /etc/td-agent/td-agent.conf
Gem
以下のコマンドで、構成ファイルを作成することができます。SIGHUPシグナルを送り、構成ファイルをリロードします。
$ sudo fluentd --setup /etc/fluent $ sudo vi /etc/fluent/fluent.conf
ディレクティブのリスト
構成ファイルは、これらのディレクティブから成ります。
- sourceディレクティブは入力ソースを決定します。
- matchディレクティブは出力先を決定します。
- includeディレクティブは他のファイルを含めます。
sourceディレクティブ
sourceディレクティブを用いた望ましい入力プラグインを選び、設定することにより、Fluentdの入力ソースが作動します。Fluentd標準の入力プラグインは、httpとfowardを含みます。
例
## 4224/tcp からイベントを受信 ## これはログ・フォワーディングとFluentdのcatコマンドにより用いられます <source> type forward port 24224 </source> ## http://this.host:9880/myapp.access?json={"event":"data"} <source> type http port 9880 </source>
各々のsourceディレクティブはtypeパラメータを含まなければいけません。typeパラメータは選択された入力プラグインを指定します。
ルーティング
sourceはFluentdのルーティングエンジンにイベントを送ります。イベントは、tag・time・recordの3つのエンティティから成ります。タグは'.'で区切られた文字列(例:myapp.access)で、Fluentdの内部ルーティングエンジンに使われます。
Timeはイベントが起こるUNIX時間です。RecordはJSONオブジェクトです。上記の例において、HTTP入力プラグインは下記のイベントをサブミットします。
## http://this.host:9880/myapp.access?json={"event":"data"} で発生します tag: myapp.access time: (現在時刻) record: {"event":"data"}
プラグイン
プラグインを記述することによって、最初に提供されているものに加え、Fluentdの入力ソースを拡大する ことができます。Fluentdの入力プラグインに関する詳細は、入力プラグイン概要を参照してください。
matchディレクティブ
matchディレクティブを用いた望ましい出力プラグインを選び、設定することにより、Fluentdの出力先が作動します。Fluentd標準の出力プラグインは、fileとfowardを含みます。
例
## "myapp.access" イベントタグにマッチし、 ## /var/log/fluent/access.%Y-%m-%d に保存します <match myapp.access> type file path /var/log/fluent/access </match> <match myapp.log.**> type file format /var/log/fluent/myapp_hourly time_slice_format %Y%m%d%H </match>
各々のmatchディレクティブは、マッチパターンとtypeパラメータを含まなければいけません。 マッチパターンはイベントにフィルタをかけるのに用いられます。タグがパターンにマッチするだけで、イベントは出力に送らます。typeパラメータは出力のプラグインを指定します。
例えば、 myapp.accesslog.** と file で、マッチしたすべてのパターンを、指定されたディレクトリのファイルに送ることができます。
プラグインを記述することによって、最初に提供されているものに加え、Fluentdの出力ソースを拡大する ことができます。Fluentdの出力先に関する詳細は、出力プラグイン概要を参照してください。
マッチパターン
以下のマッチパターンを利用できます。
* は1つの要素にマッチします
- 例えば、a.* はa.bにマッチします。しかし、a や a.b.c にはマッチしません
** は0以上の要素のにマッチします
- 例えば、 a.** は a、a.b、a.b.c にマッチします
{X,Y,Z} は X、Y、Zにマッチします。X、Y、Zがマッチパターンです。
- 例えば、{a,b} は a と b にマッチします。しかし、 c にはマッチしません
- これは、* や ** と 一緒に使うことができます。例としては、a.{b,c}.* と a.{b,c.**}です。
includeディレクティブ
includeディレクティブを用いることで、別々の構成ファイルをインポートできます。
## ./config.d ディレクトリの構成ファイルを含めます include config.d/*.conf
includeディレクティブは、通常のファイルパス・globパターン・http URLをサポートします。
## 絶対パス include /path/to/config.conf ## もし相対パスを含んでいる場合、ディレクティブは ## このファイルのディレクトリ名を拡張します include extra.conf ## globマッチパターン include config.d/*.conf ## http include http://example.com/fluent.conf