Apache-nifi-quick-guide

提供:Dev Guides
移動先:案内検索

Apache NiFi-はじめに

Apache NiFiは、異種システム間でデータを処理および配布するための強力で使いやすい信頼性の高いシステムです。 これは、NSAが開発したNiagara Filesテクノロジーに基づいており、8年後にApache Software Foundationに寄付されました。 2004年1月、Apache License Version 2.0の下で配布されています。 Apache NiFiの最新バージョンは1.7.1です。

Apache NiFiは、さまざまなソースシステムと宛先システム間のデータ転送を転送および管理できるリアルタイムデータ取り込みプラットフォームです。 ログ、地理的位置データ、ソーシャルフィードなど、さまざまなデータ形式をサポートしています。 また、SFTP、HDFS、およびKAFKAなどの多くのプロトコルもサポートしています。 このプラットフォームは、さまざまなデータソースとプロトコルをサポートしているため、多くのIT組織でこのプラットフォームが普及しています。

Apache NiFi-一般機能

Apache NiFiの一般的な機能は次のとおりです-

  • Apache NiFiは、設計、制御、フィードバック、監視の間のシームレスなエクスペリエンスを提供するWebベースのユーザーインターフェイスを提供します。
  • 高度な設定が可能です。 これにより、保証された配信、低遅延、高スループット、動的な優先順位付け、バックプレッシャー、実行時のフローの変更が可能になります。
  • また、フローの最初から最後までデータを追跡および監視するためのデータ来歴モジュールも提供します。
  • 開発者は、ニーズに応じて独自のカスタムプロセッサとレポートタスクを作成できます。
  • NiFiは、SSL、HTTPS、SSH、その他の暗号化などの安全なプロトコルのサポートも提供します。
  • また、ユーザーとロールの管理をサポートし、承認のためにLDAPで構成することもできます。

Apache NiFi-キーコンセプト

Apache NiFiの重要な概念は次のとおりです-

  • プロセスグループ-ユーザーが階層的にフローを管理および維持するのに役立つNiFiフローのグループです。
  • フロー-必要に応じて、1つまたは複数のデータソースから別のデータソースにデータを転送および変更するために、異なるプロセッサを接続して作成されます。
  • プロセッサ-プロセッサは、ソースシステムからデータを取得するか、送信先システムにデータを保存するJavaモジュールです。 他のプロセッサも、フローファイルの属性を追加したり、コンテンツを変更したりするために使用されます。
  • Flowfile -NiFiの基本的な使用法であり、NiFiのソースシステムから選択されたデータの単一オブジェクトを表します。 NiFiprocessorは、ソースプロセッサから宛先に移動する間にフローファイルに変更を加えます。 CREATE、CLONE、RECEIVEなどのさまざまなイベント フロー内の異なるプロセッサによってフローファイルで実行されます。
  • イベント-イベントは、NiFiフローを通過する際のフローファイルの変更を表します。 これらのイベントは、データの出所で追跡されます。
  • データの出所-リポジトリであり、ユーザーがフローファイルに関する情報を確認できるUIを備えており、フローファイルの処理中に問題が発生した場合のトラブルシューティングに役立ちます。

Apache NiFiの利点

  • Apache NiFiは、SFTPを使用してリモートマシンからのデータフェッチを可能にし、データ系統を保証します。
  • Apache NiFiはクラスタリングをサポートしているため、異なるデータを処理する同じフローで複数のノードで動作でき、データ処理のパフォーマンスが向上します。
  • また、ユーザーレベル、プロセスグループレベル、その他のモジュールに関するセキュリティポリシーも提供します。
  • UIはHTTPS上でも実行できるため、ユーザーとNiFiとの対話が安全になります。
  • NiFiは約188個のプロセッサをサポートし、ユーザーはカスタムプラグインを作成してさまざまなデータシステムをサポートすることもできます。

Apache NiFiの欠点

  • ユーザーが変更を行っている間にノードがNiFiクラスターから切断されると、flow.xmlは無効になります。管理者が接続されたノードからflow.xmlを手動でコピーしない限り、ノードはクラスターに接続できません。
  • Apache NiFiには、プライマリノードスイッチの場合に状態の永続性の問題があります。これにより、プロセッサがソースシステムからデータを取得できないことがあります。

Apache NiFi-基本概念

Apache NiFiは、Webサーバー、フローコントローラー、およびプロセッサで構成され、Java仮想マシンで実行されます。 次の図に示すように、3つのリポジトリFlowfile Repository、Content Repository、Provenance Repositoryもあります。

Apache Webサーバー

フローファイルリポジトリ

このリポジトリは、Apache NiFiのデータフローを通過するすべてのフローファイルの現在の状態と属性を保存します。 このリポジトリのデフォルトの場所は、Apache NiFiのルートディレクトリです。 このリポジトリの場所は、「nifi.flowfile.repository.directory」という名前のプロパティを変更することで変更できます。

コンテンツリポジトリ

このリポジトリには、NiFiのすべてのフローファイルに存在するすべてのコンテンツが含まれています。 デフォルトのディレクトリもNiFiのルートディレクトリにあり、「org.apache.nifi.controller.repository.FileSystemRepository」プロパティを使用して変更できます。 このディレクトリはディスクの大きなスペースを使用するため、インストールディスクに十分なスペースを確保することをお勧めします。

出所リポジトリ

リポジトリは、NiFiを流れるすべてのフローファイルのすべてのイベントを追跡して保存します。 2つの出所リポジトリがあります-揮発性出所リポジトリ(このリポジトリでは、再起動後にすべての出所データが失われます)および*永続的な出所リポジトリ*。 デフォルトのディレクトリもNiFiのルートディレクトリにあり、それぞれのリポジトリの「org.apache.nifi.provenance.PersistentProvenanceRepository」および「org.apache.nifi.provenance.VolatileProvenanceRepositor」プロパティを使用して変更できます。

起源リポジトリ

Apache NiFi-環境設定

この章では、Apache NiFiの環境設定について学習します。 Apache NiFiのインストール手順は次のとおりです-

  • ステップ1 *-現在のバージョンのJavaをコンピューターにインストールします。 マシンにJAVA_HOMEを設定してください。 以下に示すようにバージョンを確認できます。

Windowsオペレーティングシステム(OS)の場合(コマンドプロンプトを使用)-

> java -version

UNIX OS(ターミナルを使用):

$ echo $JAVA_HOME
  • Windows OS用のZIPファイル。
  • UNIX OSのダウンロードTARファイル。
  • Dockerイメージについては、次のリンクhttps://hub.docker.com/r/apache/nifi/にアクセスしてください。
  • ステップ3 *-Apache NiFiのインストールプロセスは非常に簡単です。 プロセスはOSによって異なります-
  • Windows OS -zipパッケージを解凍すると、Apache NiFiがインストールされます。
  • UNIX OS -任意の場所にtarファイルを抽出すると、Logstashがインストールされます。
$tar -xvf nifi-1.6.0-bin.tar.gz
  • ステップ4 *-コマンドプロンプトを開き、NiFiのbinディレクトリに移動します。 たとえば、C:\ nifi-1.7.1 \ binで、run-nifi.batファイルを実行します。
C:\nifi-1.7.1\bin>run-nifi.bat

ステップ5 *-NiFi UIを起動するには数分かかります。 ユーザーはnifi-app.logを確認できます。NiFiUIが起動したら、ユーザーは *http://localhost:8080/nifi/ を入力してUIにアクセスできます。 Apache-nifi-user-interface Apache-nifi-processors

Apache NiFi-プロセッサの分類

この章では、Apache NiFiでのプロセスの分類について説明します。

データ取り込みプロセッサ

データ取り込みカテゴリのプロセッサは、データをNiFiデータフローに取り込むために使用されます。 これらは主に、Apache NiFiのデータフローの開始点です。 これらのカテゴリに属する​​プロセッサには、GetFile、GetHTTP、GetFTP、GetKAFKAなどがあります。

ルーティングおよび調停プロセッサ

ルーティングおよびメディエーションプロセッサは、フローファイルの属性またはコンテンツの情報に従って、フローファイルを異なるプロセッサまたはデータフローにルーティングするために使用されます。 これらのプロセッサは、NiFiデータフローを制御する役割も果たします。 このカテゴリに属する​​プロセッサには、RouteOnAttribute、RouteOnContent、ControlRate、RouteTextなどがあります。

データベースアクセスプロセッサ

このデータベースアクセスカテゴリのプロセッサは、データを選択または挿入したり、データベースから他のSQLステートメントを実行および準備したりできます。 これらのプロセッサーは、主にApache NiFiのデータ接続プールコントローラー設定を使用します。 このカテゴリに属する​​プロセッサには、ExecuteSQL、PutSQL、PutDatabaseRecord、ListDatabaseTablesなどがあります。

属性抽出プロセッサ

属性抽出プロセッサは、NiFiデータフローのフローファイル属性処理を抽出、分析、変更します。 このカテゴリに属する​​プロセッサには、UpdateAttribute、EvaluateJSONPath、ExtractText、AttributesToJSONなどがあります。

システムインタラクションプロセッサ

System Interactionプロセッサーは、任意のオペレーティングシステムでプロセスまたはコマンドを実行するために使用されます。 これらのプロセッサは、さまざまなシステムと対話するために、多くの言語でスクリプトを実行します。 このカテゴリに属する​​プロセッサには、ExecuteScript、ExecuteProcess、ExecuteGroovyScript、ExecuteStreamCommandなどがあります。

データ変換プロセッサ

データ変換に属するプロセッサは、フローファイルのコンテンツを変更できます。 これらは、ユーザーがHTTPプロセッサを呼び出すためにHTTPボディとしてフローファイルを送信する必要があるときに通常使用されるフローファイルのデータを完全に置き換えるために使用できます。 このカテゴリに属する​​プロセッサには、ReplaceText、JoltTransformJSONなどがあります。

データプロセッサの送信

通常、送信データプロセッサは、データフローのエンドプロセッサです。 これらのプロセッサは、宛先サーバーにデータを保存または送信します。 データの保存または送信が成功すると、これらのプロセッサは成功した関係でフローファイルを削除します。 このカテゴリに属する​​プロセッサには、PutEmail、PutKafka、PutSFTP、PutFile、PutFTPなどがあります。

分割および集約プロセッサ

これらのプロセッサは、フローファイルに存在するコンテンツを分割およびマージするために使用されます。 このカテゴリに属する​​プロセッサには、SplitText、SplitJson、SplitXml、MergeContent、SplitContentなどがあります。

HTTPプロセッサー

これらのプロセッサーは、HTTPおよびHTTPS呼び出しを処理します。 このカテゴリに属する​​プロセッサには、InvokeHTTP、PostHTTP、ListenHTTPなどがあります。

AWSプロセッサー

AWSプロセッサは、Amazon Webサービスシステムとのやり取りを担当します。 このカテゴリに属する​​プロセッサには、GetSQS、PutSNS、PutS3Object、FetchS3Objectなどがあります。

Apache NiFi-プロセッサの関係

Apache NiFiデータフローでは、フローファイルは、プロセッサ間の関係を使用して検証される接続を通じて、あるプロセッサから別のプロセッサに移動します。 接続が作成されるたびに、開発者はこれらのプロセッサ間の1つ以上の関係を選択します。

プロセッサの構成

上の画像でわかるように、黒い長方形のチェックボックスは関係です。 開発者がこれらのチェックボックスを選択すると、関係が成功か失敗、またはその両方である場合、フローファイルはその特定のプロセッサで終了します。

成功

接続、認証、またはその他のエラーを取得せずに、プロセッサがデータソースからデータを保存または取得するようなフローファイルを正常に処理すると、フローファイルは成功した関係になります。

失敗

プロセッサが認証エラーや接続の問題などのエラーなしでフローファイルを処理できない場合 その後、フローファイルは障害関係になります。

開発者は、接続を使用してフローファイルを他のプロセッサに転送することもできます。 開発者はそれを選択して負荷分散することもできますが、負荷分散はバージョン1.8でリリースされたばかりであり、このチュートリアルでは取り上げません。

失敗

上記の画像でわかるように、赤でマークされた接続には障害関係があります。つまり、エラーのあるすべてのフローファイルは左側のプロセッサーに送られ、エラーのないすべてのフローファイルは緑でマークされた接続に転送されます。

ここで、他の関係を進めましょう。

comms.failure

この関係は、通信障害のためにリモートサーバーからFlowfileを取得できなかった場合に満たされます。

見つかりません

リモートサーバーから「Not Found」メッセージを受信したFlowfileは、 not.found 関係に移動します。

アクセス拒否

権限が不十分なためにNiFiがリモートサーバーからフローファイルを取得できない場合、NiFiはこの関係を移動します。

Apache NiFi-FlowFile

フローファイルは、Apache NiFiの基本的な処理エンティティです。 データの内容と属性が含まれており、NiFiプロセッサがデータを処理するために使用します。 通常、ファイルの内容には、ソースシステムから取得したデータが含まれます。 Apache NiFi FlowFileの最も一般的な属性は次のとおりです-

FlowFile

UUID

これは、NiFiによって生成されたフローファイルの一意のIDである、Universally Unique Identifierの略です。

ファイル名

この属性には、そのフローファイルのファイル名が含まれます。ディレクトリ構造は含まれません。

ファイルサイズ

Apache NiFi FlowFileのサイズが含まれています。

mime.type

このFlowFileのMIMEタイプを指定します。

path

この属性には、フローファイルが属するファイルの相対パスが含まれ、ファイル名は含まれません。

Apache NiFi-キュー

Apache NiFiデータフロー接続には、大量のデータ流入を処理するキューイングシステムがあります。 これらのキューは、非常に大量のFlowFileを処理して、プロセッサが連続してそれらを処理できるようにします。

キューイングシステム

上の画像のキューには、成功の関係を介して転送された1つのフローファイルがあります。 ユーザーは、ドロップダウンリストで List queue オプションを選択して、フローファイルを確認できます。 過負荷またはエラーが発生した場合、ユーザーは empty queue オプションを選択してキューをクリアすることもできます。その後、ユーザーはフローを再開して、データフローでこれらのファイルを再度取得できます。

リストキュー

キュー内のフローファイルのリストは、位置、UUID、ファイル名、ファイルサイズ、キュー期間、および系統期間で構成されます。 ユーザーは、フローファイルリストの最初の列にある情報アイコンをクリックして、フローファイルのすべての属性とコンテンツを表示できます。

フローファイルの詳細

Apache NiFi-プロセスグループ

Apache NiFiでは、ユーザーは異なるプロセスグループで異なるデータフローを維持できます。 これらのグループは、Apache NiFiインスタンスがサポートするさまざまなプロジェクトまたは組織に基づくことができます。

プロセスグループ

NiFi UIの上部にあるメニューの4番目のシンボルは、NiFiキャンバスにプロセスグループを追加するために使用されます。 「finddevguides.com_ProcessGroup」という名前のプロセスグループには、上の図にあるように、現在停止段階にある4つのプロセッサを持つデータフローが含まれています。 プロセスグループを階層的に作成して、データフローをより良い構造で管理することができます。これは理解しやすいものです。

データフロー

NiFi UIのフッターでは、プロセスグループを確認し、ユーザーが現在いるプロセスグループの先頭に戻ることができます。

NiFiに存在するプロセスグループの完全なリストを表示するには、NiFi UIの左上にあるメニューを使用して概要に移動できます。 要約すると、すべてのプロセスグループが、バージョン状態、転送/サイズ、イン/サイズ、読み取り/書き込み、アウト/サイズなどのパラメーターとともに一覧表示されるプロセスグループタブがあります。 次の図に示すように。

NiFi Summary

Apache NiFi-ラベル

Apache NiFiは、開発者がNiFIキャンバスに存在するコンポーネントに関する情報を作成できるようにするラベルを提供します。 NiFi UIのトップメニューの左端のアイコンは、NiFiキャンバスにラベルを追加するために使用されます。

NiFI Canvas

開発者は、ラベルを右クリックしてラベルの色とテキストのサイズを変更し、メニューから適切なオプションを選択できます。

オプションメニュー

Apache NiFi-設定

Apache NiFiは、高度に構成可能なプラットフォームです。 confディレクトリのnifi.propertiesファイル

ほとんどの設定が含まれます。

Apache NiFiの一般的に使用されるプロパティは次のとおりです-

コアプロパティ

このセクションには、NiFiインスタンスを実行するために必須のプロパティが含まれています。

S.No. Property name Default Value description
1 nifi.flow.configuration.file ./conf/flow.xml.gz This property contains the path to flow.xml file. This file contains all the data flows created in NiFi.
2 nifi.flow.configuration.archive.enabled true This property is used to enable or disable archiving in NiFi.
3 nifi.flow.configuration.archive.dir ./conf/archive/ This property is used to specify the archive directory.
4 nifi.flow.configuration.archive.max.time 30 days This is used to specify the retention time for archiving content.
5 nifi.flow.configuration.archive.max.storage 500 MB it contains the maximum size of archiving directory can grow.
6 nifi.authorizer.configuration.file ./conf/authorizers.xml To specify the authorizer configuration file, which is used for user authorization.
7 nifi.login.identity.provider.configuration.file ./conf/login-identity-providers.xml This property contains the configuration of login identity providers,
8 nifi.templates.directory ./conf/templates This property is used to specify the directory, where NiFi templates will be stored.
9 nifi.nar.library.directory ./lib This property contains the path to library, which NiFi will use to load all the components using NAR files present in this lib folder.
10 nifi.nar.working.directory ./work/nar/ This directory will be storing the unpacked nar files, once NiFi processes them.
11 nifi.documentation.working.directory ./work/docs/components This directory contains the documentation of all components.

州管理

これらのプロパティは、処理の開始に役立つコンポーネントの状態を保存するために使用されます。コンポーネントは、再起動後および次のスケジュール実行で残ります。

S.No. Property name Default Value description
1 nifi.state.management.configuration.file ./conf/state-management.xml This property contains the path to state-management.xml file. This file contains all component state present in the data flows of that NiFi instance.
2 nifi.state.management.provider.local local-provider It contains the ID of the local state provider.
3 nifi.state.management.provider.cluster zk-provider This property contains the ID of the cluster-wide state provider. This will be ignored if NiFi is not clustered but must be populated if running in a cluster.
4 nifi.state.management. embedded. zookeeper. start false This property specifies whether or not this instance of NiFi should run an embedded ZooKeeper server.
5 nifi.state.management. embedded. zookeeper.properties ./conf/zookeeper.properties This property contains the path of the properties file that provides the ZooKeeper properties to use if <nifi.state.management. embedded. zookeeper. start> is set to true.

FlowFileリポジトリ

FlowFileリポジトリの重要な詳細を見てみましょう-

S.No. Property name Default Value description
1 nifi.flowfile.repository. implementation org.apache.nifi. controller. repository. WriteAhead FlowFileRepository This property is used to specify either to store the flowfiles in memory or disk. If a user want to stores the flowfiles in memory then change to "org.apache.nifi.controller. repository.VolatileFlowFileRepository".
2 nifi.flowfile.repository.directory ./flowfile_repository To specify the directory for flowfile repository.

Apache NiFi-管理

Apache NiFiは、管理目的でambariやzookeeperなどの複数のツールをサポートしています。 NiFiは、nifi.propertiesファイルで構成を提供し、管理者向けにHTTPSなどをセットアップします。

飼育係

NiFi自体は、クラスター内の投票プロセスを処理しません。 つまり、クラスターが作成されると、すべてのノードがプライマリおよびコーディネーターになります。 そのため、zookeeperは、プライマリノードとコーディネーターの投票を管理するように構成されています。 nifi.propertiesファイルには、zookeeperをセットアップするためのいくつかのプロパティが含まれています。

S.No. Property name Default Value description
1 nifi.state.management.embedded.zookeeper. properties ./conf/zookeeper.properties To specify the path and name of zookeeper property file.
2 nifi.zookeeper.connect.string empty To specify the connection string of zookeeper.
3 nifi.zookeeper.connect.timeout 3 secs To specify the connection timeout of zookeeper with NiFi.
4 nifi.zookeeper.session.timeout 3 secs To specify the session timeout of zookeeper with NiFi.
5 nifi.zookeeper.root.node /nifi To specify root node for zookeeper.
6 nifi.zookeeper.auth.type empty To specify authentication type for zookeeper.

HTTPSを有効にする

HTTPS経由でNiFiを使用するには、管理者はキーストアとトラストストアを生成し、nifi.propertiesファイルにいくつかのプロパティを設定する必要があります。 TLSツールキットを使用して、Apache NiFiでHTTPSを有効にするために必要なすべてのキーを生成できます。

S.No. Property name Default Value description
1 nifi.web.https.port empty To specify https port number.
2 nifi.web.https.network.interface.default empty Default interface for https in NiFi.
3 nifi.security.keystore empty To specify the path and file name of keystore.
4 nifi.security.keystoreType empty To specify the type of keystore type like JKS.
5 nifi.security.keystorePasswd empty To specify keystore password.
6 nifi.security.truststore empty To specify the path and file name of truststore.
7 nifi.security.truststoreType empty To specify the type of truststore type like JKS.
8 nifi.security.truststorePasswd empty To specify truststore password.

管理のための他のプロパティ

管理者がNiFiを管理し、サービスの継続性のために使用するその他のプロパティがいくつかあります。

S.No. Property name Default Value description
1 nifi.flowcontroller.graceful.shutdown.period 10 sec To specify the time to gracefully shutdown the NiFi flowcontroller.
2 nifi.administrative.yield.duration 30 sec To specify the administrative yield duration for NiFi.
3 nifi.authorizer.configuration.file ./conf/authorizers.xml To specify the path and file name of authorizer configuration file.
4 nifi.login.identity.provider.configuration.file ./conf/login-identity-providers.xml To specify the path and file name of login identity provider configuration file.

Apache NiFi-フローの作成

Apache NiFiは、開発者があらゆるタイプのプロトコルまたはデータソースのデータフローを作成するのに役立つ多数のコンポーネントを提供します。 開発者は、フローを作成するために、コンポーネントをメニューバーからキャンバスにドラッグし、マウスをクリックしてコンポーネント間でドラッグして接続します。

一般に、NiFiには、ソースファイルからデータを取得するgetfileなどのフローの開始時にリスナーコンポーネントがあります。 もう一方の端には、putfileのような送信コンポーネントがあり、データを処理するコンポーネントが間にあります。

たとえば、あるディレクトリから空のファイルを取得し、そのファイルにテキストを追加して別のディレクトリに配置するフローを作成します。

フローの作成

  • まず、プロセッサアイコンをNiFiキャンバスにドラッグし、リストからGetFileプロセッサを選択します。
  • * c:\ inputdir。*のような入力ディレクトリを作成します
  • プロセッサを右クリックして[構成]を選択し、[プロパティ]タブで[入力ディレクトリ(c:\ inputdir)]を追加し、[適用]をクリックしてキャンバスに戻ります。
  • プロセッサアイコンをキャンバスにドラッグし、リストからReplaceTextプロセッサを選択します。
  • プロセッサを右クリックして、構成を選択します。 [プロパティ]タブで、 [Hello finddevguides.com] などのテキストを[置換値]のテキストボックスに追加し、[適用]をクリックします。
  • [設定]タブに移動し、右側の[失敗]チェックボックスをオンにしてから、キャンバスに戻ります。
  • 成功の関係でGetFIleプロセッサをReplaceTextに接続します。
  • プロセッサアイコンをキャンバスにドラッグし、リストからPutFileプロセッサを選択します。
  • c:\ outputdir のような出力ディレクトリを作成します。
  • プロセッサを右クリックして、構成を選択します。 [プロパティ]タブで、* Directory(c:\ outputdir)*を追加し、[適用]をクリックしてキャンバスに戻ります。
  • [設定]タブに移動し、右側の[失敗と成功]チェックボックスをオンにしてから、キャンバスに戻ります。
  • 成功の関係でReplaceTextプロセッサをPutFileに接続します。
  • ここでフローを開始し、入力ディレクトリに空のファイルを追加すると、出力ディレクトリに移動し、テキストがファイルに追加されることがわかります。

上記の手順に従うことにより、開発者は任意のプロセッサおよびその他のNiFiコンポーネントを選択して、組織またはクライアントに適したフローを作成できます。

Apache NiFi-テンプレート

Apache NiFiはテンプレートの概念を提供し、NiFiフローの再利用と配布を容易にします。 フローは、他の開発者または他のNiFiクラスターで使用できます。 また、NiFi開発者がGitHubなどのリポジトリで作業を共有するのにも役立ちます。

テンプレートを作成

第15章「Apache NiFi-フローの作成」で作成したフローのテンプレートを作成しましょう。

テンプレートの作成

Shiftキーを使用してフローのすべてのコンポーネントを選択し、NiFiキャンバスの左側にあるテンプレート作成アイコンをクリックします。 上の画像に示すように、ツールボックスも表示できます。 上の写真のように青色でマークされたアイコン create template をクリックします。 テンプレートの名前を入力します。 開発者は説明を追加することもできますが、これはオプションです。

テンプレートをダウンロード

次に、下図に示すように、NiFi UIの右上隅にあるメニューの[NiFiテンプレート]オプションに移動します。

テンプレートのダウンロード

次に、ダウンロードするテンプレートのダウンロードアイコン(リストの右側にある)をクリックします。 テンプレート名のXMLファイルがダウンロードされます。

テンプレートをアップロード

NiFiでテンプレートを使用するには、開発者はUIを使用してXMLファイルをNiFiにアップロードする必要があります。 [テンプレートの作成]アイコンの横にある[テンプレートのアップロード]アイコン(下の画像で青でマーク)をクリックして、xmlを参照します。

テンプレートのアップロード

テンプレートを追加

NiFi UIの上部のツールバーでは、テンプレートアイコンはラベルアイコンの前にあります。 下の図に示すように、アイコンは青色でマークされています。

テンプレートの追加

テンプレートアイコンをドラッグし、ドロップダウンリストからテンプレートを選択して、[追加]をクリックします。 テンプレートがNiFiキャンバスに追加されます。

Apache NiFi-API

NiFiは多数のAPIを提供します。これにより、開発者は、他のツールやカスタム開発アプリケーションからNiFiの情報を変更および取得できます。 このチュートリアルでは、いくつかの例を説明するためにgoogle chromeのpostmanアプリを使用します。

Google Chromeにpostmantoを追加するには、下記のURLにアクセスして[chromeに追加]ボタンをクリックします。 これで、Google Chromeに追加された新しいアプリが表示されます。

chromeウェブストア

NiFiレストAPIの現在のバージョンは1.8.0であり、ドキュメントは下記のURLにあります。

https://nifi.apache.org/docs/nifi-docs/rest-api/indexl

以下は、最も使用されるNiFiレストAPIモジュールです-

  • http://<nifi url>:<nifi port>/nifi-api/<* api-path *>
  • HTTPSが有効になっている場合 [<nifi|https://<nifi ] url>:<nifi port>/nifi-api/<* api-path *>
S.No. API module Name api-path Description
1 Access /access To authenticate user and get access token from NiFi.
2 Controller /controller To manage the cluster and create reporting task.
3 Controller Services /controller-services It is used to manage controller services and update controller service references.
4 Reporting Tasks /reporting-tasks To manage reporting tasks.
5 Flow /flow To get the data flow metadata and  component status and query history
6 Process Groups /process-groups To upload and instantiate a template and create components.
7 Processors /processors To create and schedule a processor and set its properties.
8 Connections /connections To create a connection, set queue priority and update connection destination
9 FlowFile Queues /flowfile-queues To view queue contents, download flowfile content, and empty queue.
10 Remote Process Groups /remote-process-groups To create a remote group and enable transmission.
11 Provenance /provenance To query provenance, and search event lineage.

ここで例を検討し、郵便配達員で実行して、実行中のNiFiインスタンスに関する詳細を取得しましょう。

要求

GET http://localhost:8080/nifi-api/flow/about

応答

{
   "about": {
      "title": "NiFi",
      "version": "1.7.1",
      "uri": "http://localhost:8080/nifi-api/",
      "contentViewerUrl": "../nifi-content-viewer/",
      "timezone": "SGT",
      "buildTag": "nifi-1.7.1-RC1",
      "buildTimestamp": "07/12/2018 12:54:43 SGT"
   }
}

Apache NiFi-データ起源

Apache NiFiは、フロー内の取り込まれたデータで発生したイベントに関するすべての情報をログに記録して保存します。 データ来歴リポジトリはこの情報を保存し、このイベント情報を検索するためのUIを提供します。 データの出所には、完全なNiFiレベルおよびプロセッサレベルでもアクセスできます。

データ起源

次の表は、NiFi Data Provenanceイベントリストのさまざまなフィールドのリストです。次のフィールドがあります-

S.No. Field Name Description
1 Date/Time Date and time of event.
2 Type Type of Event like ‘CREATE’.
3 FlowFileUuid UUID of the flowfile on which the event is performed.
4 Size Size of the flowfile.
5 Component Name Name of the component which  performed the event.
6 Component Type Type of the component.
7 Show lineage Last column has the show lineage icon, which is used to see the flowfile lineage as shown in the below image.

系統アイコン

イベントに関する詳細情報を取得するには、NiFi Data Provenance UIの最初の列にある情報アイコンをクリックします。

nifi.propertiesファイルにはいくつかのプロパティがあり、NiFi Data Provenanceリポジトリを管理するために使用されます。

S.No. Property Name Default Value Description
1 nifi.provenance.repository.directory.default ./provenance_repository To specify the default path of NiFi data provenance .
2 nifi.provenance.repository.max.storage.time 24 hours To specify the maximum retention time of NiFi data provenance.
3 nifi.provenance.repository.max.storage.size 1 GB To specify the maximum storage of NiFi data provenance.
4 nifi.provenance.repository.rollover.time 30 secs To specify the rollover time of NiFi data provenance.
5 nifi.provenance.repository.rollover.size 100 MB To specify the rollover size of NiFi data provenance.
6 nifi.provenance.repository.indexed.fields EventType, FlowFileUUID, Filename, ProcessorID, Relationship To specify the fields used to search and index NiFi data provenance.

Apache NiFi-監視

Apache NiFiには、エラー、メモリ使用量、CPU使用量、データフロー統計など、システムのさまざまな統計を監視する方法が複数あります。 このチュートリアルでは、最も人気のあるものについて説明します。

ビルトイン監視

このセクションでは、Apache NiFiの組み込みモニタリングについて詳しく学習します。

掲示板

掲示板には、NiFiプロセッサによってリアルタイムで生成される最新のエラーと警告が表示されます。 掲示板にアクセスするには、ユーザーは右側のドロップダウンメニューから[掲示板]オプションを選択する必要があります。 これは自動的に更新され、ユーザーは無効にすることもできます。 ユーザーは、エラーをダブルクリックして実際のプロセッサに移動することもできます。 ユーザーはまた、次のようにワークアウトすることにより、速報をフィルタリングすることができます-

  • メッセージで
  • 名前で
  • IDで
  • グループID別

データ来歴UI

特定のプロセッサまたはNiFi全体で発生するイベントを監視するために、ユーザーは掲示板と同じメニューからデータ起源にアクセスできます。 ユーザーはまた、次のフィールドで作業することにより、データ来歴リポジトリ内のイベントをフィルタリングすることができます-

  • コンポーネント名別
  • コンポーネントタイプ別
  • タイプ別

NiFiサマリーUI

Apache NiFiの概要は、掲示板と同じメニューからもアクセスできます。 このUIには、特定のNiFiインスタンスまたはクラスターのすべてのコンポーネントに関する情報が含まれています。 名前、タイプ、またはURIでフィルターできます。 コンポーネントの種類ごとに異なるタブがあります。 以下は、NiFiサマリーUIで監視できるコンポーネントです-

  • プロセッサ
  • 入力ポート
  • 出力ポート
  • リモートプロセスグループ
  • つながり
  • プロセスグループ

このUIでは、右下にシステム診断という名前のリンクがあり、JVM統計を確認できます。

レポートタスク

Apache NiFiは、Ambari、Grafanaなどの外部監視システムをサポートする複数のレポートタスクを提供します。 開発者は、カスタムレポートタスクを作成するか、組み込みのタスクを構成してNiFiのメトリックを外部監視システムに送信できます。 次の表に、NiFi 1.7.1で提供されるレポートタスクを示します。

S.No. Reporting Task Name Description
1 AmbariReportingTask To setup Ambari Metrics Service for NiFi.
2 ControllerStatusReportingTask To report the information from the NiFi summary UI for the last 5 minute.
3 MonitorDiskUsage To report and warn about the disk usage of a specific directory.
4 MonitorMemory To monitor the amount of Java Heap used in a Java Memory pool of JVM.
5 SiteToSiteBulletinReportingTask To report the errors and warning in bulletins using Site to Site protocol.
6 SiteToSiteProvenanceReportingTask To report the NiFi Data Provenance events using Site to Site protocol.

NiFi API

システム診断という名前のAPIがあり、これを使用して、カスタム開発アプリケーションのNiFI統計を監視できます。 postmanでAPIを確認しましょう。

要求

http://localhost:8080/nifi-api/system-diagnostics

応答

{
   "systemDiagnostics": {
      "aggregateSnapshot": {
         "totalNonHeap": "183.89 MB",
         "totalNonHeapBytes": 192819200,
         "usedNonHeap": "173.47 MB",
         "usedNonHeapBytes": 181894560,
         "freeNonHeap": "10.42 MB",
         "freeNonHeapBytes": 10924640,
         "maxNonHeap": "-1 bytes",
         "maxNonHeapBytes": -1,
         "totalHeap": "512 MB",
         "totalHeapBytes": 536870912,
         "usedHeap": "273.37 MB",
         "usedHeapBytes": 286652264,
         "freeHeap": "238.63 MB",
         "freeHeapBytes": 250218648,
         "maxHeap": "512 MB",
         "maxHeapBytes": 536870912,
         "heapUtilization": "53.0%",
         "availableProcessors": 4,
         "processorLoadAverage": -1,
         "totalThreads": 71,
         "daemonThreads": 31,
         "uptime": "17:30:35.277",
         "flowFileRepositoryStorageUsage": {
            "freeSpace": "286.93 GB",
            "totalSpace": "464.78 GB",
            "usedSpace": "177.85 GB",
            "freeSpaceBytes": 308090789888,
            "totalSpaceBytes": 499057160192,
            "usedSpaceBytes": 190966370304,
            "utilization": "38.0%"
         },
         "contentRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "provenanceRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "garbageCollection": [
            {
               "name": "G1 Young Generation",
               "collectionCount": 344,
               "collectionTime": "00:00:06.239",
               "collectionMillis": 6239
            },
            {
               "name": "G1 Old Generation",
               "collectionCount": 0,
               "collectionTime": "00:00:00.000",
               "collectionMillis": 0
            }
         ],
         "statsLastRefreshed": "09:30:20 SGT",
         "versionInfo": {
            "niFiVersion": "1.7.1",
            "javaVendor": "Oracle Corporation",
            "javaVersion": "1.8.0_151",
            "osName": "Windows 7",
            "osVersion": "6.1",
            "osArchitecture": "amd64",
            "buildTag": "nifi-1.7.1-RC1",
            "buildTimestamp": "07/12/2018 12:54:43 SGT"
         }
      }
   }
}

Apache NiFi-アップグレード

Apache NiFiのアップグレードを開始する前に、リリースノートを読んで、変更点と追加点を確認してください。 ユーザーは、現在のNiFiインストールにおけるこれらの追加および変更の影響を評価する必要があります。 以下は、Apache NiFiの新しいリリースのリリースノートを取得するためのリンクです。

https://cwiki.apache.org/confluence/display/NIFI/Release+Notes

クラスターのセットアップでは、ユーザーはクラスター内のすべてのノードのNiFiインストールをアップグレードする必要があります。 以下の手順に従って、Apache NiFiをアップグレードします。

  • 現在のNiFiまたはlibまたはその他のフォルダーにあるすべてのカスタムNARをバックアップします。
  • Apache NiFiの新しいバージョンをダウンロードします。 以下は、最新のNiFiバージョンのソースとバイナリをダウンロードするためのリンクです。 + https://nifi.apache.org/downloadl
  • 現在のNiFiと同じインストールディレクトリに新しいディレクトリを作成し、Apache NiFiの新しいバージョンを抽出します。
  • NiFiを正常に停止します。 最初にすべてのプロセッサを停止し、フローに存在するすべてのフローファイルが処理されるようにします。 フローファイルがなくなったら、NiFiを停止します。
  • 現在のNiFiインストールからauthorizers.xmlの構成を新しいバージョンにコピーします。
  • 現在のバージョンから新しいNiFiバージョンのbootstrap-notification-services.xmlおよびbootstrap.confの値を更新します。
  • logback.xmlから新しいNiFiインストールにカスタムロギングを追加します。
  • 現在のバージョンのlogin-identity-providers.xmlでログインIDプロバイダーを構成します。
  • 現在のバージョンから新しいNiFiインストールのnifi.propertiesのすべてのプロパティを更新します。
  • 許可拒否エラーを回避するために、新しいバージョンのグループとユーザーが現在のバージョンと同じであることを確認してください。
  • 現在のバージョンのstate-management.xmlから新しいバージョンに構成をコピーします。
  • NiFiインストールの現在のバージョンから次のディレクトリの内容を新しいバージョンの同じディレクトリにコピーします。
  • ./conf/flow.xml.gz
  • また、アーカイブディレクトリのflow.xml.gz。
  • 出所およびコンテンツリポジトリについては、nifiの値を変更します。 プロパティファイルを現在のリポジトリに保存します。
  • ./state/localから状態をコピーするか、他の外部ディレクトリが指定されている場合はnifi.propertiesを変更します。
  • 実行されたすべての変更を再確認し、新しいNiFiバージョンに追加された新しい変更に影響があるかどうかを確認します。 影響がある場合は、解決策を確認してください。
  • すべてのNiFiノードを起動し、すべてのフローが正常に機能し、リポジトリがデータを保存しており、Uiがエラーを取得しているかどうかを確認します。
  • しばらくの間掲示を監視して、新しいエラーがないか確認します。
  • 新しいバージョンが正常に機能している場合は、現在のバージョンをアーカイブしてディレクトリから削除できます。

Apache NiFi-リモートプロセスグループ

Apache NiFiリモートプロセスグループまたはRPGにより、フローは、サイト間プロトコルを使用して、フロー内のFlowFilesを異なるNiFiインスタンスに転送できます。 バージョン1.7.1の時点では、NiFiはバランスの取れた関係を提供していないため、NiFiデータフローのロードバランシングにはRPGが使用されます。

リモートプロセス

開発者は、上の図に示すアイコンをキャンバスにドラッグすることで、NiFi UIの上部ツールバーからRPGを追加できます。 RPGを設定するには、開発者は次のフィールドを追加する必要があります-

S.No. Field Name Description
1 URLs To specify comma separated remote target NiFi URLs.
2 Transport Protocol To specify the transport protocol for remote NiFi instances. It’s either RAW or HTTP.
3 Local Network Interface To specify the local network interface to send/receive data.
4 HTTP Proxy Server Hostname To specify the proxy server’s hostname for the purpose of transport in RPG.
5 HTTP Proxy Server Port To specify the proxy server’s port for the purpose of transport in RPG.
6 HTTP Proxy User It is an optional field to specify the username for HTTP proxy.
7 HTTP Proxy Password It is an optional field to specify the password for above username.

開発者は、プロセッサを使用する前に起動するように、使用する前に有効にする必要があります。

NiFi Flow

Apache NiFi-コントローラー設定

Apache NiFiは、プロセッサで共有できる共有サービスを提供し、レポートタスクはコントローラー設定と呼ばれます。 これらは、データベース接続プールに似ており、同じデータベースにアクセスするプロセッサが使用できます。

コントローラの設定にアクセスするには、下図に示すように、NiFi UIの右上隅にあるドロップダウンメニューを使用します。

コントローラー設定

Apache NiFiには多くのコントローラー設定がありますが、一般的に使用される設定とNiFiでの設定方法について説明します。

DBCPConnectionPool

[コントローラー設定]オプションをクリックした後、[Nifi設定]ページにプラス記号を追加します。 次に、コントローラー設定のリストからDBCPConnectionPoolを選択します。 以下の画像に示すように、DBCPConnectionPoolはメインのNiFi設定ページに追加されます。

接続プール

コントローラーに関する次の情報が含まれています setting:Name

  • Type
  • バンドル
  • 状態
  • 範囲
  • アイコンの構成と削除

構成アイコンをクリックして、必要なフィールドに入力します。 フィールドは下の表にリストされています-

S.No. Field Name Default value description
1 Database Connection URL empty To specify the connection URL to database.
2 Database Driver Class Name empty To specify the driver class name for database like com.mysql.jdbc.Driver for mysql.
3 Max Wait Time 500 millis To specify time to wait for the data from a connection to database.
4 Max Total Connections 8 To specify the maximum number of allocated connection in database connection pool.

コントローラー設定を停止または構成するには、まず、接続されているすべてのNiFiコンポーネントを停止する必要があります。 NiFiは、コントローラーの設定にスコープを追加して、その構成を管理します。 したがって、同じ設定を共有したものだけが影響を受けず、同じコントローラー設定を使用します。

Apache NiFi-レポートタスク

Apache NiFiレポートタスクは、バックグラウンドで実行され、NiFiインスタンスの統計を送信または記録するコントローラーサービスに似ています。 NiFiレポートタスクには、コントローラー設定と同じページから、ただし別のタブからアクセスすることもできます。

レポートタスク

レポートタスクを追加するには、開発者はレポートタスクページの右上にあるプラスボタンをクリックする必要があります。 これらのレポートタスクは、主に速報または来歴のいずれかで、NiFiインスタンスのアクティビティを監視するために使用されます。 これらのレポートタスクは主に、サイト間を使用してNiFi統計データを他のノードまたは外部システムに転送します。

理解を深めるために、構成済みのレポートタスクを追加しましょう。

MonitorMemory

このレポートタスクは、メモリプールが指定された割合を超えた場合に通知を生成するために使用されます。 MonitorMemoryレポートタスクを設定するには、次の手順に従います-

  • プラス記号を追加し、リストでMonitorMemoryを検索します。
  • MonitorMemoryを選択し、[追加]をクリックします。
  • レポートタスクのメインページのメインページに追加されたら、構成アイコンをクリックします。
  • [プロパティ]タブで、監視するメモリプールを選択します。
  • 通知をユーザーに通知する割合を選択します。
  • レポートタスクを開始します。

Apache-nifi-custom-processor

Apache NiFi-カスタムコントローラーサービス

Apache NiFiはオープンソースプラットフォームであり、開発者はApache NiFiにカスタムコントローラーサービスを追加するオプションを利用できます。 手順とツールは、カスタムプロセッサの作成に使用したものとほぼ同じです。

  • コマンドプロンプトを開き、Maven Archetypeコマンドを実行します。
> mvn archetype:generate
  • アーキタイププロジェクトでnifiタイプを検索します。
  • org.apache.nifi:nifi-service-bundle-archetype プロジェクトを選択します。
  • 次に、バージョンのリストから、このチュートリアルの最新バージョン1.7.1を選択します。
  • groupId、artifactId、バージョン、パッケージ、およびartifactBaseNameなどを入力します。
  • ディレクトリを持つMavenプロジェクトが作成されます。
  • nifi- <artifactBaseName>
  • nifi- <artifactBaseName> -nar
  • nifi- <artifactBaseName> -api
  • nifi- <artifactBaseName> -api-nar
  • nifi- <artifactBaseName>およびnifi- <artifactBaseName> -apiディレクトリで以下のコマンドを実行して、これら2つのプロジェクトをEclipseに追加します。
  • mvn install eclipse:eclipse
  • Eclipseを開き、ファイルメニューからインポートを選択します。
  • 次に、「既存のプロジェクトをワークスペースに」を選択し、eclipseのnifi- <artifactBaseName>およびnifi- <artifactBaseName> -apiディレクトリからプロジェクトを追加します。
  • ソースファイルにコードを追加します。
  • 次に、以下のコマンドを実行して、コードをNARファイルにパッケージ化します。
  • mvnクリーンインストール
  • 各nifi- <artifactBaseName>/targetおよびnifi- <artifactBaseName> -api/targetディレクトリに2つのNARファイルが作成されます。
  • これらのNARファイルをApache NiFiのlibフォルダーにコピーして、NiFiを再起動します。
  • NiFiが正常に再起動したら、新しいカスタムプロセッサのプロセッサリストを確認します。
  • エラーについては、*。/logs/nifi.log *ファイルを確認してください。

Apache NiFi-ロギング

Apache NiFiは、ログバックライブラリを使用してログを処理します。 NiFiのconfディレクトリにはlogback.xmlファイルがあり、NiFiでのロギングの設定に使用されます。 ログはNiFiのlogsフォルダーに生成され、ログファイルは以下のとおりです。

nifi-app.log

これはnifiのメインログファイルであり、NARファイルのロードから実行時エラーやNiFiコンポーネントで発生した通知まで、Apache NiFiアプリケーションのすべてのアクティビティを記録します。 以下は、 nifi-app.log ファイルの logback.xml ファイルのデフォルトのアペンダーです。

<appender name="APP_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
   <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app.log</file>
   <rollingPolicy
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>
         ${org.apache.nifi.bootstrap.config.log.dir}/
          nifi-app_%d{yyyy-MM-dd_HH}.%i.log
      </fileNamePattern>
      <maxFileSize>100MB</maxFileSize>
      <maxHistory>30</maxHistory>
   </rollingPolicy>
   <immediateFlush>true</immediateFlush>
   <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
   </encoder>
</appender>

アペンダー名はAPP_FILE、クラスはRollingFileAppenderです。つまり、ロガーはロールバックポリシーを使用しています。 デフォルトでは、最大ファイルサイズは100 MBであり、必要なサイズに変更できます。 APP_FILEの最大保存期間は30個のログファイルであり、ユーザーの要件に従って変更できます。

nifi-user.log

このログには、Webセキュリティ、Web API設定、ユーザー認証などのユーザーイベントが含まれます。 以下は、logback.xmlファイルのnifi-user.logのアペンダーです。

<appender name="USER_FILE"
   class="ch.qos.logback.core.rolling.RollingFileAppender">
   <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-user.log</file>
   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>
         ${org.apache.nifi.bootstrap.config.log.dir}/
          nifi-user_%d.log
      </fileNamePattern>
      <maxHistory>30</maxHistory>
   </rollingPolicy>
   <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
   </encoder>
</appender>

アペンダー名はUSER_FILEです。 ロールオーバーポリシーに従います。 USER_FILEの最大保存期間は30ログファイルです。 以下は、nifi-user.logにあるUSER_FILEアペンダーのデフォルトのロガーです。

<logger name="org.apache.nifi.web.security" level="INFO" additivity="false">
   <appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.api.config" level="INFO" additivity="false">
   <appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.authorization" level="INFO" additivity="false">
   <appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.cluster.authorization" level="INFO" additivity="false">
   <appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.filter.RequestLogger" level="INFO" additivity="false">
   <appender-ref ref="USER_FILE"/>
</logger>

nifi-bootstrap.log

このログには、ブートストラップログ、Apache NiFiの標準出力(主にデバッグ用のコードで記述されたすべてのsystem.out)、および標準エラー(コードで記述されたすべてのsystem.err)が含まれます。 以下は、logback.logのnifi-bootstrap.logのデフォルトのアペンダーです。

<appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap.log</file>
   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>
         ${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap_%d.log
      </fileNamePattern>
      <maxHistory>5</maxHistory>
   </rollingPolicy>
   <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
   </encoder>
</appender>

nifi-bootstrap.logファイルのアペンダー名はBOOTSTRAP_FILEであり、これもロールバックポリシーに従います。 BOOTSTRAP_FILEアペンダーの最大保存期間は5ログファイルです。 以下は、nifi-bootstrap.logファイルのデフォルトのロガーです。

<logger name="org.apache.nifi.bootstrap" level="INFO" additivity="false">
   <appender-ref ref="BOOTSTRAP_FILE"/>
</logger>
<logger name="org.apache.nifi.bootstrap.Command" level="INFO" additivity="false">
   <appender-ref ref="CONSOLE"/>
   <appender-ref ref="BOOTSTRAP_FILE"/>
</logger>
<logger name="org.apache.nifi.StdOut" level="INFO" additivity="false">
   <appender-ref ref="BOOTSTRAP_FILE"/>
</logger>
<logger name="org.apache.nifi.StdErr" level="ERROR" additivity="false">
   <appender-ref ref="BOOTSTRAP_FILE"/>
</logger>