fluentdを利用したデータ連携のセットアップ手順を説明します。
以下の手順でセットアップを行います。
手順 | 作業項目 | 参照先 | |
---|---|---|---|
データ連携サーバ | データ連携エージェント | ||
1 | fluentd動作定義ファイルの編集 | ||
2 | fluentd動作定義ファイルの編集 | ||
3 | データ蓄積環境の作成 |
ポイント
データ連携サーバでは、データ連携サーバ(fluentd)ユーザーで操作してください。
データ連携エージェントでは、データ連携エージェントユーザーで操作してください。
fluentd動作定義ファイルには、データの収集方法や処理方法を設定します。fluentdを利用したデータ連携は、本定義ファイルの設定にしたがって実行されます。
fluentd動作定義ファイルは、データ連携サーバおよびデータ連携エージェントのそれぞれで設定します。
fluentd動作定義ファイルは以下に格納されています。
/etc/opt/FJSVsymas/fluentd/symas-fluentd.conf
/etc/opt/FJSVsymasfda/fluentd/symas-fluentd.conf
fluentd動作定義ファイルはテキストファイルです。記述形式は以下のとおりです。
# コメント <source> type forward ... </source> <match fj.agent1.fluentdlogcategory> type symas ... </match>
種類 | 内容 |
文字コード | UTF-8 |
改行文字 | LF |
“#”で始まる行 | コメントとして扱います。 |
sourceタグで囲まれた部分 | 1つの入力プラグインを表します。データ連携サーバでは、複数の入力プラグインを指定できます。 |
matchタグで囲まれた部分 (<match fj.agent1.fluentdlogcategory>から</match>までを指します。) | 1つの出力プラグインを表します。データ連携エージェントでは、複数の出力プラグインを指定できます。 matchタグの開始タグの属性には、ワイルドカードが指定できます。 以下を1要素とみなし、1要素を指定したいときは*を1つ、複数要素を指定したいときは*を2つ指定してください。
例) <match fj.*.fluentdlogcategory> <match fj.**> |
参考
fluentd動作定義ファイルのサンプル
fluentd動作定義ファイルのサンプルを以下に配置しています。本ファイルをもとに運用に合わせて修正して使用できます。
データ連携サーバ
/etc/opt/FJSVsymas/fluentd/symas-fluentd.conf.sample
データ連携エージェント
/etc/opt/FJSVsymasfda/fluentd/symas-fluentd.conf.sample
fluentdを利用したデータ連携では、データ連携エージェントで収集したデータをデータ連携サーバに転送します。そのあと、データ連携サーバではデータ連携エージェントから受け取ったデータをODSに格納します。
fluentd動作定義ファイルに入力プラグインと出力プラグインの情報を設定することで、これらの動作を設定します。
fluentd動作定義ファイルには、あらかじめSymfoware Analytics Serverで使用するパラメーターを設定しています。コメントの箇所のパラメーターをカスタマイズしたあと、“#”を削除することで設定を完了できます。
プラグインの種類 | 内容 |
入力プラグイン | データの収集元を示します。 |
出力プラグイン | データの出力先を示します。 |
注意
fluentd動作定義ファイルは、データ連携サーバおよびデータ連携エージェントの起動時に有効になります。データ連携サーバおよびデータ連携エージェントの起動中に設定を変更した場合は、データ転送サーバおよびデータ連携エージェントを再起動してください。
データ転送サーバおよびデータ連携エージェントの起動や停止方法については、“J.1.9 symas-fluentd”を参照してください。
データ連携サーバ
データ連携サーバのfluentd動作定義ファイルの初期内容は以下のとおりです。
<source> type forward port 24224 </source> #<source> # type secure_forward # self_hostname server_ip_or_hostname # shared_key secret_string # secure yes # cert_path /path/to/certificate/cert.pem # private_key_path /path/to/certificate/key.pem # private_key_passphrase passphrase # port 24284 #</source> <source> type http port 9880 </source> <match fj.*.fluentdlogcategory> type symas buffer_path /var/opt/FJSVsymas/fluentd/out_symas_buffer/ tmpdir /var/opt/FJSVsymas/fluentd/tmpdir category fluentdlogcategory database postgres port 26500 include_time_key true time_key fluentd_time include_tag_key true tag_key fluentd_tag </match>
データ連携サーバが受け取ったデータをODSに格納する場合は、以下を設定します。
fluentd動作定義ファイルの初期内容では、以下の入力プラグインの情報を設定しています。
運用に合わせてカスタマイズしてください。
in_forward
データ連携エージェントとデータ連携サーバ間のデータ転送を実現するための、データ転送待ち受けプラグインです。
in_secure_forward
データ連携エージェントとデータ連携サーバ間のデータ転送をSSL通信で実現するための、データ転送待ち受けプラグインです。
カスタマイズしたあと、“#”を削除してコメントを解除してください。
in_http
httpプロトコルでデータの転送を待ち受けるプラグインです。以下の形式で送信されたJSON形式データを収集することができます。
形式)
json=[JSON形式データ]
データ転送時のURLには、どこから送信されたログファイルかを識別するためのタグ名を指定します。タグには、収集するデータごとに一意となる値を付加してください。
データ連携サーバでは、本指定値をmatchタグに組み合わせて指定することで識別します。
例)
http://192.0.2.0:9880/fj.agent1.fluentdlogcategory
プラグインの種類 | 設定するパラメーター | 指定値の説明 |
---|---|---|
in_forward | type | “forward”を指定します。 |
port | ポート番号を24224から変更する場合、待ち受けるポート番号を指定します。 | |
in_secure_forward | type | “secure_forward”を指定します。 |
self_hostname | DWHサーバのIPアドレスまたはホスト名を指定します。 | |
shared_key | データ連携エージェントとデータ連携サーバ間の共通キーワードを指定します。 | |
secure | “yes”を指定します。通常、編集する必要はありません。 | |
cert_path | サーバ証明書ファイルのパスを絶対パスで指定します。 | |
private_key_path | 秘密鍵ファイルのパスを絶対パスで指定します。 | |
private_key_passphrase | 秘密鍵のパスフレーズを指定します。 | |
port | ポート番号を24284から変更する場合、待ち受けるポート番号を指定します。 | |
in_http | type | “http”を指定します。 |
port | ポート番号を9880から変更する場合、待ち受けるポート番号を指定します。 |
fluentd動作定義ファイルの初期内容では、以下の出力プラグインの情報を設定しています。
運用に合わせてカスタマイズしてください。
out_symas
Symfoware Analytics Serverのデータ蓄積のODSにCSV形式でデータを格納する出力プラグインです。
ODSに格納されたCSV形式のデータは、pgxa_ods_categories_columnsシステムカタログにカテゴリ名とカラム名のペアとして記録されます。詳細は、“J.2.4 pgxa_ods_categories_columns”を参照してください。
カスタマイズしたあと、“#”を削除してコメントを解除してください。
プラグインの種類 | 設定するパラメーター | 指定値の説明 |
---|---|---|
out_symas | type | “symas”を指定します。 |
buffer_path | バッファのディレクトリを絶対パスで指定します。 | |
tmpdir | テンポラリディレクトリを絶対パスで指定します。 | |
category | 出力先となるデータ蓄積サーバ機能のODSのカテゴリ名を指定します。本パラメーターは必要に応じて指定してください。 | |
database | pgxa_ods_categories_columnsの情報追加先データベース名を指定します。存在するデータベース名を指定してください。 | |
port | ポート番号を26500から変更する場合、接続するデータベースのポート番号を指定します。本パラメーターは必要に応じて指定してください。 | |
include_time_key | 本パラメーターの指定値は、変更しないでください。 | |
time_key | 本パラメーターの指定値は、変更しないでください。 | |
include_tag_key | 本パラメーターの指定値は、変更しないでください。 | |
tag_key | 本パラメーターの指定値は、変更しないでください。 |
また、必要に応じて以下のパラメーターを追加で設定します。
これらのパラメーターの詳細は、“3.9.2.2.3 fluentdの転送に関する注意事項”および“G.2.3 fluentdを利用したデータ連携機能”を参照してください。
設定するパラメーター | 指定値の説明 |
---|---|
retry_limit | ODSへの再格納処理の最大回数を指定します。 |
disable_retry_limit | ODSへの再格納処理の最大回数の上限を設定しない場合、trueを指定します。 |
max_retry_wait | ODSへの再格納処理の間隔の上限値の秒数を指定します。 |
buffer_chunk_limit | buffer_pathパラメーターで指定したパスで作成されるバッファの1ファイルのサイズの上限を指定します。 |
buffer_queue_limit | buffer_pathパラメーターで指定したパスで作成されるバッファのファイル数の上限を指定します。 |
ポイント
データ連携サーバでは、データ連携エージェントの入力プラグインのtagパラメーターに指定された値をmatchタグに組み合わせて指定することで、データ連携エージェントのどの入力プラグインによるログファイルかを識別できます。
注意
データ連携サーバのfluentd動作定義ファイルのtypeパラメーターには、以下の指定値以外を指定しないでください。
入力プラグイン
forward
secure_forward
http
出力プラグイン
symas
参照
fluentdを利用したデータ連携で使用できるプラグインについては、“5.2.2 fluentdを利用したデータ連携で使用できるプラグイン”を参照してください。
各プラグインの詳細および設定内容は、以下を参照してください。
“out_symas”プラグイン:“5.2.2.1 out_symas”
“out_symas”以外のプラグイン:“2.5 Symfoware Analytics Serverで利用するオープンソース・ソフトウェアマニュアル”の“fluentd”
データ連携エージェント
データ連携エージェントのfluentd動作定義ファイルの初期内容は以下のとおりです。
<source> type tail # format csv # keys col1,col2,col3 # path /home/user1/test.csv # pos_file /home/user1/test.pos read_from_head true tag fj.agent1.fluentdlogcategory </source> <match fj.**> type forward buffer_type file buffer_path /var/opt/FJSVsymasfda/fluentd/out_forward_buffer/ port 24224 <server> # name agent1 # host symfoas_hostname </server> require_ack_response </match> #<match fj.**> # type secure_forward # buffer_type file # buffer_path /var/opt/FJSVsymasfda/fluentd/out_secure_forward_buffer/ # shared_key secret_string # self_hostname self_hostname # secure yes # enable_strict_verification yes # <server> # host symfoas_hostname # hostlabel symfoas.fqdn # port 24284 # </server> #</match>
データを収集してデータ連携サーバに転送する場合は、以下を設定します。
fluentd動作定義ファイルの初期内容では、以下の入力プラグインの情報を設定しています。
運用に合わせてカスタマイズしてください。
in_tail
ファイルを監視して、追加されたレコードを取得するプラグインです。
カスタマイズしたあと、“#”を削除してコメントを解除してください。
プラグインの種類 | 設定するパラメーター | 指定値の説明 |
---|---|---|
in_tail | type | “tail”を指定します。 |
format | 対象ファイルのフォーマットを指定します。以下が指定可能です。
どのフォーマットにも属さないデータを取得する場合、以下を指定してください。
| |
keys | formatに“csv”または“tsv”を指定した場合、カラム名をカンマ区切りで指定します。 | |
path | 対象ファイルのパスを指定します。絶対パスで指定してください。 | |
pos_file | 対象ファイルを最後に読み込んだファイル位置などの対象ファイルの情報を保存するためのファイルパスを指定します。絶対パスで指定してください。
| |
read_from_head | ログファイルの先頭から読み込むかどうかを指定します。
デフォルトでは“true”です。本パラメーターは必要に応じて指定してください。 | |
tag | データ連携エージェントのどの入力プラグインによるログファイルかを識別するためのタグ名を指定します。タグには、収集するデータごとに一意となる値を付加してください。 データ連携サーバでは、本指定値をmatchタグに組み合わせて指定することで識別します。 |
fluentd動作定義ファイルの初期内容では、以下の出力プラグインの情報を設定しています。
運用に合わせてカスタマイズしてください。
out_forward
データ連携エージェントとデータ連携サーバ間のデータ転送を実現するための、データ転送プラグインです。
カスタマイズしたあと、“#”を削除してコメントを解除してください。
out_secure_forward
データ連携エージェントとデータ連携サーバ間のデータ転送をSSL通信で実現するための、データ転送プラグインです。
カスタマイズしたあと、“#”を削除してコメントを解除してください。また、out_secure_forwardを使用する場合にはout_forward出力プラグインの設定をコメントアウト(行頭に“#”を記載)してください。
プラグインの種類 | 設定するパラメーター | 指定値の説明 |
---|---|---|
out_forward | type | “forward”を指定します。通常、編集する必要はありません。 |
buffer_type | 本パラメーターの指定値は、変更しないでください。 | |
buffer_path | バッファのディレクトリを絶対パスで指定します。 | |
port | ポート番号を24224から変更する場合、待ち受けるポート番号を指定します。 | |
name | エラーメッセージに使用する一意の名前をserverタグ内に指定します。 | |
host | Symfoware Analytics ServerのIPアドレスまたはホスト名をserverタグ内に指定します。 | |
out_secure_forward | type | “secure_forward”を指定します。通常、編集する必要はありません。 |
buffer_type | 本パラメーターの指定値は、変更しないでください。 | |
buffer_path | バッファのディレクトリを絶対パスで指定します。 | |
shared_key | データ連携エージェントとデータ連携サーバ間の共通キーワードを指定します。 | |
self_hostname | データ連携エージェントのIPアドレスまたはホスト名を指定します。 | |
secure | “yes”を指定します。通常、編集する必要はありません。 | |
enable_strict_verification | 本パラメーターの指定値は、変更しないでください。 | |
host | DWHサーバのIPまたはホスト名をserverタグ内に指定します。 | |
hostlabel | DWHサーバのFQDN名を指定してください。 | |
port | ポート番号を24284から変更する場合、待ち受けるポート番号をserverタグ内に指定します。 |
また、必要に応じて以下のパラメーターを追加で設定します。
これらのパラメーターの詳細は、“3.9.2.2.3 fluentdの転送に関する注意事項”および“G.2.3 fluentdを利用したデータ連携機能”を参照してください。
設定するパラメーター | 指定値の説明 | |
---|---|---|
retry_limit | データ連携サーバへの再送処理の最大回数を指定します。 | |
disable_retry_limit | データ連携サーバへの再送処理の最大回数の上限を設定しない場合、trueを指定します。 | |
max_retry_wait | データ連携サーバへの再送処理の間隔の上限値の秒数を指定します。 | |
buffer_chunk_limit | buffer_pathパラメーターで指定したパスで作成されるバッファの1ファイルのサイズの上限を指定します。 | |
buffer_queue_limit | buffer_pathパラメーターで指定したパスで作成されるバッファのファイル数の上限を指定します。 | |
secondaryタグ | <secondary>から</secondary>の間に、以下を指定します。 | |
type | fileを指定します。 | |
path | データ連携サーバへの再送処理が最大回数を超えた場合の、ログの退避先ディレクトリを絶対パスで指定します。ディレクトリの末尾にはパスセパレータ―を指定してください。 | |
format | jsonを指定します。 | |
include_time_key | trueを指定します。 | |
append | trueを指定します。 |
参照
データ連携エージェントの入力/出力プラグインには、表に記載したもの以外も設定できます。使用できるプラグインについては、“5.2.2 fluentdを利用したデータ連携で使用できるプラグイン”を参照してください。
各プラグインの詳細および設定内容は、“2.5 Symfoware Analytics Serverで利用するオープンソース・ソフトウェアマニュアル”の“fluentd”を参照してください。
参考
ODSの複数のカテゴリにデータを蓄積する場合
ODSの複数のカテゴリにデータを蓄積する場合、以下の手順で各fluentd動作定義ファイルを編集します。
データ連携サーバ
out_symas出力プラグイン定義の<match fj.*.fluentdlogcategory>から</match>までをコピーして、fluentd動作定義ファイルに追加します。
新しく追加した出力プラグイン定義のうち、<match fj.*.fluentdlogcategory>の“fluentdlogcategory”の部分を任意のカテゴリ名に変更します。
新しく追加した出力プラグイン定義の以下のパラメーターを運用に合わせて修正します。
buffer_path
tmpdir
category
database
複数のカテゴリにデータを蓄積するデータ連携サーバの出力プラグインの設定例は、以下のとおりです。
設定値を修正した部分には、下線で示しています。
例)
<match fj.*.fluentdlogcategory> type symas buffer_path /var/opt/FJSVsymas/fluentd/out_symas_buffer/ tmpdir /var/opt/FJSVsymas/fluentd/tmpdir category fluentdlogcategory database postgres port 26500 include_time_key true time_key fluentd_time include_tag_key true tag_key fluentd_tag </match> <match fj.*.newcategory> type symas buffer_path /var/opt/FJSVsymas/fluentd/out_symas_buffer2/ tmpdir /var/opt/FJSVsymas/fluentd/tmpdir2 category newcategory database database01 port 26500 include_time_key true time_key fluentd_time include_tag_key true tag_key fluentd_tag </match>
データ連携エージェント
tail入力プラグインのtagパラメーターを“fj.[エージェント名].[格納したいカテゴリ名]”に変更します。
カテゴリ名を変更したデータ連携エージェントの入力プラグインの設定例は、以下のとおりです。
設定値を修正した部分には、下線で示しています。
例)
<source>
type tail
format csv
keys col1,col2,col3
path /home/user1/test.csv
pos_file /home/user1/test.pos
tag fj.agent2.newcategory
</source>
fluentdの転送に関する注意事項について説明します。
fluentdを利用したデータ連携では、以下の処理に失敗した場合、最大17回の再送処理/再格納処理を行います。
データ連携エージェント
データ連携サーバへの転送処理
データ連携サーバ
ODSへの格納処理
再送処理/再格納処理の設定
再送処理/再格納処理の間隔は、1回目は処理失敗の1秒後、2回目は約2秒後、3回目は約4秒後、というように一回前に実行した再送処理/再格納処理の約2倍の間隔を空けて行います。
再送処理/再格納処理の失敗回数が上限に達すると、そのデータを破棄します。
この設定を変更したい場合、以下を実施してください。
再送処理/再格納処理の回数を変更したい場合
出力プラグインのパラメーターとして、以下のパラメーターを指定してください。
retry_limit
disable_retry_limit
再送処理/再格納処理の間隔の上限を設定したい場合
出力プラグインのパラメーターとして、以下のパラメーターを指定してください。
max_retry_wait
データを一度退避し、あとで再度転送したい場合
データ連携エージェントのみで以下の手順で行います。
出力プラグインのパラメーターとして、以下のパラメーターを追加してください。
secondaryタグ
例) secondaryタグに設定する内容は、以下の例の下線部です。
<match fj.**> type forward buffer_type file buffer_path /var/opt/FJSVsymasfda/fluentd/out_forward_buffer/ port 24224 <server> name agent1 host symfoas_hostname </server> require_ack_response <secondary> type file path /var/opt/FJSVsymasfda/fluentd/secondary/agent1/ format json
include_time_key true
append true </secondary>
</match>
退避先のファイルに対して、in_tail入力プラグインを使用してログとして収集します。
例)
<source> type tail format json path /var/opt/FJSVsymasfda/fluentd/secondary/agent1/*.log pos_file /var/opt/FJSVsymasfda/fluentd/secondary/agent1/secondary.pos read_from_head true tag fj.agent1.fluentdlogcategory </source>
なお、退避したあとのログを収集するときに再度タグを設定するため、複数の入力プラグインを利用している場合、入力プラグインごとに出力プラグインを設定してください。
例)
<source> type tail ... tag fj.agent1.fluentdlogcategory </source> <source> type tail ... tag fj.agent2.fluentdlogcategory </source> <match fj.agent1.fluentdlogcategory> type forward ... <secondary> ... </secondary> </match> <match fj.agent2.fluentdlogcategory> type forward ... <secondary> ... </secondary> </match>
参照
これらのパラメーターに指定する値は、“3.9.2.2.2 fluentd動作定義ファイルの設定内容”の“データ連携サーバで必要に応じて設定するパラメーター”の表および“データ連携エージェントで必要に応じて設定するパラメーター”を参照してください。
fluentdを利用したデータ連携で使用するODSのカテゴリを作成します。
fluentdを利用したデータ連携で収集したデータは、タグで指定したカテゴリに格納されます。カテゴリとは、ODS内のデータの管理単位のことです。Symfoware Analytics Serverではfluentdを利用したデータ連携用にfluentdlogcategoryというカテゴリを用意しており、新たにカテゴリを作成することなく複数の収集元から収集したデータを1つのカテゴリに格納できます。これにより、複数のシステムに散在するデータを1箇所に集約できます。
また、カテゴリを作成して管理単位をわけることで、検索・抽出性能を向上させることも可能です。
参照
出力プラグイン“out_symas”について
データ連携サーバ(fluentd)の出力プラグイン“out_symas”にcategoryパラメーターを設定することで、categoryパラメーターで指定したカテゴリに格納することができます。出力プラグイン“out_symas”の詳細は、“5.2.2.1 out_symas”を参照してください。
カテゴリの作成方法について
カテゴリの作成方法の詳細は、“Interstage Information Storage 運用ガイド”の“カテゴリを定義する”を参照してください。
fluentdlogcategoryカテゴリについて
fluentdlogcategoryカテゴリの各項目の設定内容の詳細は、“表3.11 fluentdlogcategoryカテゴリの設定内容”を参照してください。
fluentdを利用したデータ連携において、ODSのカテゴリに格納された収集データは、後述する蓄積テーブルを作成することで、SQL文によって参照できます。1つのカテゴリは、1つの蓄積テーブルに対応します。
カテゴリを新規作成する場合
カテゴリを新規作成する場合は以下を指定してください。これら以外の項目の指定内容は任意です。
種類 | 内容 |
データ形式 | CSV形式 |
CPMキー | fluentdlogcategoryで設定している以下のパラメーターについては、同様に設定してください。
|
参照
CPMキーについては、“Interstage Information Storage 解説書”の“CPMキー”を参照してください。
また、CPMキーに指定する各パラメーターの詳細は、“5.2.2.1 out_symas”を参照してください。
初期値となるfluentdlogcategoryカテゴリの各項目の設定内容を以下に示します。
カテゴリ情報 | カテゴリ名 | fluentdlogcategory | |
データ形式 | CSV形式 | ||
ロード時の指定 | ロード時に指定しない | ||
保存期限 | 無期限 | ||
参照可能期限 | 無期限 | ||
バックアップ要否 | バックアップ要 | ||
バックアップ同時削除 | 削除しない | ||
使用開始日時 | 2015/06/18 00:00 | ||
ファイル名の構成要素 | プレフィックス | 蓄積データファイル | dcl |
バックアップ蓄積データファイル | bkupdcl | ||
付与条件情報 | 登録日時範囲 | 年~秒 | |
枝番桁数 | 5 | ||
ファイル名構成要素 | プレフィックス 登録日時 枝番 | ||
格納先情報 | 蓄積データファイル | パス名 | /var/opt/FJSVsymas/ods/fluentdlogcategory/data |
バックアップ蓄積データファイル | パス名 | /var/opt/FJSVsymas/ods/fluentdlogcategory/bkupdata | |
CPMキー情報 | 項目名 | fluentd_id_time | |
要素種類 | 文字 | ||
バイト数 | 40 | ||
文字データの種類 | 英数記号混在 | ||
文字幅 | 半角 | ||
大文字フラグ | 大小文字混在 | ||
項目名 | fluentd_time | ||
要素種類 | 文字 | ||
バイト数 | 40 | ||
文字データの種類 | 英数記号混在 | ||
文字幅 | 半角 | ||
大文字フラグ | 大小文字混在 | ||
項目名 | fluentd_tag | ||
要素種類 | 文字 | ||
バイト数 | 40 | ||
文字データの種類 | 英数記号混在 | ||
文字幅 | 半角 | ||
大文字フラグ | 大小文字混在 |