TailFile 2025.5.31.15

バンドル

org.apache.nifi | nifi-standard-nar

説明

ファイルまたはファイルのリストを "テール "し、ファイルに書き込まれたデータをファイルから取り込みます。ファイルはテキストであることが期待されます。データが取り込まれるのは、改行(キャリッジ・リターン、改行文字、またはその組み合わせ)があった場合のみです。一般的なログファイルのように、テールするファイルが定期的に「ロールオーバー」される場合、オプションのRolling Filename Patternを使用することで、 NiFi の実行中にロールオーバーされなかったとしても、ロールオーバーされたファイルからデータを取得することができます (NiFi の再起動時にデータがまだ存在する場合に限ります)。このプロセッサーは、非常に積極的にスケジュールされた場合、多くのリソースを消費するため、デフォルト値の0秒で実行するのではなく、一般的に、実行スケジュールを数秒に設定することをお勧めします。現時点では、このプロセッサーは、「ロールオーバー」時に圧縮されたファイルの取り込みをサポートしていません。

タグ

ファイル、ログ、ソース、テール、テキスト

入力要件

FORBIDDEN

機密動的プロパティをサポート

false

プロパティ

プロパティ

説明

ファイルの場所

NiFi の再起動時にデータが重複することなくすべて消費されるように、状態を適切に保存できるように、ローカルまたはクラスタリングのいずれかに状態を保存する場所を指定します。

ファイルからテールへ

シングルファイルモードの場合、テールするファイルのパス。複数ファイルモードを使用する場合は、ベース・ディレクトリの末尾のファイルを検索する正規表現。再帰性が true にセットされている場合、正規表現はベースディレクトリから始まるパスに一致するために使用されます (例については、追加の詳細を参照してください)。

最初のスタート位置

プロセッサーが最初にデータのテーリングを開始するとき、このプロパティは、プロセッサーがデータの読み取りを開始する場所を指定します。データがファイルから取り込まれると、プロセッサーはデータを受信した最後のポイントから処理を続けます。

行開始パターン

ログ行の先頭に一致する正規表現。指定された場合、式に一致した行とそれに続く行は、他の行が式に一致するまでバッファリングされます。こうすることで、ファイル内の複数行のメッセージを分割せずに済みます。これはデータが UTF-8形式であることを前提としています。

最大バッファサイズ

行頭パターンを使用する場合、テールされるファイルのデータが正規表現に一致しない場合があります。この場合、プロセッサーはテーリングされたファイルからすべてのデータをバッファリングすることになり、ヒープをすぐに使い果たしてしまいます。これを避けるために、プロセッサーはバッファをフラッシュする前に、たとえファイルから部分的なデータを取り込むことになったとしても、このデータ量までしかバッファリングしません。

ロールオーバー後のテール期間

ファイルがロールオーバーされると、プロセッサーは、そのファイルがこの時間変更されなくなるまで、ロールオーバーされたファイルをテーリングし続けます。これにより、別のプロセスがファイルをロールオーバーし、バッファリングされたデータをフラッシュアウトすることができます。この値がセットされ、テールオーバーされたファイルがロールオーバーされた場合、古いファイルが構成された時間変更されない限り、新しいファイルはテールオーバーされないことに注意してください。さらに、この機能を使用する場合は、データの重複を避けるために、この期間をプロセッサーの実行スケジュールよりも長く設定し、尾行されるファイルがロールオーバーされた後、データが完全に消費される前にプロセッサーを停止してはなりません。そうしないと、ファイル全体が1つの FlowFile の内容として書き出されるため、データが重複する可能性があります。

ローリングファイル名パターン

ログファイルの場合のように、テールするファイルが「ロールオーバー」する場合、このファイル名パターンはロールオーバーしたファイルを識別するために使われます。これにより、 NiFi を再起動したときに、ファイルがロールオーバーしていた場合、そのファイルを再開することができます。このパターンは、ワイルドカード文字 * と ? をサポートしています。また、ファイル名 (拡張子なし) に基づいてパターンを指定する ${filename} という記法もサポートしており、ロールオーバーされたファイルは、テールオーバーされたファイルと同じディレクトリにあると仮定します。すべてのファイルで同じグロブ・パターンが使用されます。

pre-allocated-buffer-size

テーリングされたファイルごとに事前に確保されるメモリ量をセットします。

reread-on-nul

このオプションを'true'にセットすると、 NUL の文字が読み込まれたとき、プロセッサーはイールドし、同じ部分を後でもう一度読み込もうとします。(注意: Yieldingは、 NUL 文字を持つファイルだけでなく、このプロセッサーが尾行する他のファイルの処理を遅らせる可能性があります)。このフラグの目的は、ファイルを読むと仮に NUL の値が返されるようなケースをユーザーが扱えるようにすることです。NFS 例えば、ファイルの内容を順番通りに送信できない場合があります。この場合は、一時的に NUL の値で置き換えられます。CAUTION!ファイルに正当な NUL 値が含まれている場合、このフラグをセットすると、このプロセッサは無期限にスタックします。このため、ユーザーはできる限りこの機能を使用せず、読み取りが不安定なファイルシステム上にターゲットファイルを置かないようにしてください。

tail-base-directory

テールするファイルを探すためのベースディレクトリ。このプロパティは、複数ファイルモードを使用する場合に必要です。

tail-mode

使用するモード:単一ファイルは1つのファイルだけを尾行し、複数ファイルはファイルのリストを探します。複数モードではBaseディレクトリが必要です。

tailfile-lookup-frequency

複数ファイルモードでのみ使用されます。これは、テールするファイルを再度リストアップする前に、プロセッサーが待機する最小の時間を指定します。

tailfile-maximum-age

複数ファイルモードでのみ使用されます。これは、ファイルの最終更新日以降に新しいメッセージが追加されないことを考慮するために必要な最小期間を指定します。新しいメッセージがより低い頻度で追加される場合にデータの重複を避けるため、これはあまり低くセットすべきではありません。

tailfile-recursive-lookup

複数ファイルモードを使用する場合、このプロパティは、ベースディレクトリでファイルを再帰的にリストする必要があるかどうかを定義します。

状態管理

スコープ

説明

CLUSTER

再起動時にデータを複製する必要がないように、Tailed Fileのどこで中断したかをデータファイルとして保存します。状態は、<File Location> プロパティによって、ローカルまたはクラスタ化されて保存されます。

LOCAL

再起動時にデータを複製する必要がないように、Tailed Fileのどこで中断したかをデータファイルとして保存します。状態は、<File Location> プロパティによって、ローカルまたはクラスタ化されて保存されます。

制限事項

必要な許可

説明

ファイルシステムの読み込み

演算子に、 NiFi がアクセスできるあらゆるファイルからの読み取り機能を提供します。

リレーションシップ

名前

説明

success

すべての FlowFiles はこの リレーションシップ にルーティングされます。

属性の書き込み

名前

説明

tailfile.original.path

フローファイルの元ファイルのパス。