注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundryからの着信ネットワークトラフィックを受け入れられないネットワーク内のシステムに接続するために、中間のエージェントをエージェントワーカーまたはエージェントプロキシとして使用できます。このページでは、エージェントワーカーランタイムの設定オプションについて説明し、データ接続エージェントに既に精通していることを前提としています。
ターゲットシステムがFoundryからの着信ネットワークトラフィックを受け入れられず、コネクタがエージェントプロキシランタイムをサポートしていない場合にのみ、エージェントワーカーランタイムを使用する必要があります。
エージェントワーカーランタイムを使用するには、エージェントをセットアップする必要があります。ソースを設定する際に、エージェントワーカーオプションを選択し、少なくとも1つの利用可能なエージェントを選択できます。そのソース接続を介して実行される機能は、エージェントワーカーホストでジョブとして実行されます。
エージェントワーカーランタイムを使用する場合、機能はエージェントホストで直接Javaコードを実行することによって実行されます。これらのJavaプロセスは、あなたのシステムからデータを引き出し、Foundryにデータをプッシュすることも(バッチ同期のように)、Foundryからデータを引き出してあなたのシステムにプッシュすることも(エクスポートのように)できます。
この実行モデルにはいくつかの欠点があります。例えば:
エージェントメモリは、エージェントワーカーランタイムを使用して実行される機能のパフォーマンスを決定する主要な要因の1つです。
エージェントメモリに利用可能な主要な設定は次のとおりです:
ホスト上で観察される実際のメモリ使用量は、エージェントワーカーによって現在実行されているワークロード、ならびに同じホストで実行されている他のプロセスに基づいて変動します。
エージェントをエージェントワーカーとして使用する際のメモリ使用量を観察および監視する際の主な指標は次の2つです:
エージェントのメモリ使用量の監視情報については、エージェントメトリクスと健康監視を参照してください。
エージェントワーカーランタイムを使用する場合、複数のエージェントを単一のソース接続に割り当てることができます。エージェントは、割り当てられたソース接続で設定された特定の機能を実行するジョブを割り当てられます。ジョブは、ジョブの開始時に利用可能なエージェントの1つで実行されます。
ジョブは、利用可能な帯域幅が最も大きいエージェントに割り当てられます。帯域幅は次のように計算されます:
(最大同時同期数) - (現在実行中のバッチ同期数) = 帯域幅
最大同時同期数はデフォルトで16
であり、エージェント設定で設定可能です。最大同時同期数のクォータは、すべての機能とすべての割り当てられたソースに対して強制されます。つまり、任意のソースで任意の機能を実行すると、利用可能な同時同期クォータの1ユニットが使用されます。これは、レガシーデータ接続タスクも含まれます。すべての利用可能なエージェントで帯域幅がゼロの場合、または割り当てられたエージェントが正の帯域幅を持っているが、現在実行中の最大同時同期数を超えている場合、ジョブはキューに入れられます。
帯域幅を計算する際には、バッチ同期のみが考慮されます。つまり、エージェントで実行されている他の機能は、追加のジョブを割り当てる目的では無視されます。主要なエージェントワークロードがストリーミング同期、変更データキャプチャ同期、エクスポートまたは他の機能である場合、マルチエージェントセットアップでジョブを割り当てる際に予期しない動作が発生する可能性があります。
同じ帯域幅値を持つ複数の利用可能なエージェント間でジョブが均等に分散される保証はありません。
一般的に、単一のエージェントで正常に実行できるよりも大きなワークロードを負荷分散するために複数のエージェントを使用することは推奨されません。複数のエージェントの主な意図された使用法は、メンテナンスのためにオフラインにされるエージェントを許可することです。最適なパフォーマンスと信頼性を得るために、マルチエージェントセットアップの各エージェントは、割り当てられたソース接続に設定された機能の完全なセットを処理できるようにすることをお勧めします。
エージェントワーカーランタイムは、バッチ同期からのデータをPalantirプラットフォームにアップロードする方法を指定するための2つのオプションをサポートしています:
データプロキシモードでは、データはデータプロキシサービスを使用して公開Foundry APIを使用してアップロードされます。これはFoundry APIを呼び出してデータセットを読み書きする際に使用される同じAPIゲートウェイを使用します。
データプロキシモードを使用するように設定されたエージェントは、エージェント構成YAMLに次のように含まれます:
Copied!1 2 3 4
destinations: foundry: uploadStrategy: type: data-proxy
直接モードは、2024年6月以降に設定された新しいエージェントまたは登録では利用できません。データプロキシモードは、新しいエージェントにサポートされるデフォルトかつ唯一のオプションです。以前に直接モードを使用するように設定されたエージェントは、エージェントがインストールされているホストの公開IPが変更されない限り、引き続きサポートされます。
直接モードでは、データはFoundryデータカタログの基礎となるストレージバケットに直接アップロードされます。パフォーマンスの向上を提供しますが、Palantirサポートによるカスタムネットワーク構成が必要であり、最新のクラウドインフラストラクチャでは利用できません。
直接モードを使用するように設定されたエージェントは、エージェント構成YAMLに次のように含まれます:
Copied!1 2 3 4
destinations: foundry: uploadStrategy: type: direct
エージェントにカスタムJDBCドライバを追加する方法についての情報は、JDBC(カスタム)コネクタのドキュメントにあります。ドライバはPalantirによって署名され、エージェントに直接追加されてエージェントワーカーランタイムで動作します。
エージェントプロキシおよび直接接続ランタイムの場合、カスタムドライバはドキュメントに説明されているようにJDBC(カスタム)コネクタユーザーインターフェイスに直接追加されます。これらのドライバはPalantirによって署名される必要はありません。
エージェントワーカーランタイムのユニークな側面の1つは、資格情報がFoundryに保存されないことです。代わりに、データ接続ユーザーインターフェイスで資格情報が入力されるときに、それらはソースに割り当てられた各エージェントの公開鍵で暗号化されます。暗号化された資格情報は、それぞれのエージェントに保存されます。
これにより、エージェントワーカーランタイムを使用する際の資格情報設定に次のような制約と制限が適用されます:
ディレクトリやホスト間でのエージェントの移動に関する詳細情報は、エージェント構成リファレンスドキュメントに記載されており、既存のエージェントディレクトリを移動する際に暗号化された資格情報を保持するための指示が含まれています。
エージェントは、Foundryと内部ネットワークの両方と通信します。これにより、エージェントがこれらの接続を確立するために、信頼ストアに正しい証明書を持つ必要があります。
エージェントに追加の証明書を設定する必要がある場合は、次の2つの状況があります:
エージェントがFoundryと通信するための証明書の要件は、エージェント構成ドキュメントで説明されており、エージェントがエージェントプロキシまたはエージェントワーカーとして使用されるかどうかにかかわらず必要です。
エージェントがエージェントワーカーとして使用される場合、エージェントで実行されるJavaプロセスがシステムと正常に通信するために追加の証明書が必要になる場合があります。新しいソース接続ごとに新しい証明書を追加する必要があり、これらの証明書は有効期限が切れたり、回転した場合に更新されるべきです。
必要な証明書が欠けている場合、探索などのソース機能を使用しようとすると、次のようなエラーが表示されます:
Wrapped by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
特定のソースシステムに接続するための追加の証明書を追加するには、これらの指示に従ってください。
エージェントベースのソースがインターネット経由でアクセス可能なシステムに接続する場合、それを直接接続ランタイムに移行する必要があります。この移行を実行するには、以下の手順に従ってください。
新しい出口ポリシーを作成するには、情報セキュリティオフィサー
ロールに付与されたコントロールパネルのネットワーク出口構成を管理
というタイトルのワークフローにアクセスする必要があります。
このセクションでは、移行中に発生する可能性のある状況と、提案される解決手順について説明します。移行は元に戻せます。
Could not resolve type id as a subtype of 'com.palantir.magritte.api.Source'
提案される解決策:
これは、ソースに必要な依存関係が見つからない場合に発生します。特定のソースに必要なすべての証明書、プロキシ、およびドライバが構成されていることを確認し、移行を再試行してください。
UnknownHostException
提案される解決策:
Driver class not found
提案される解決策:正しいドライバがJDBCソースにアップロードされていることを確認してください。
PKIX path building failed
提案される解決策:正しい証明書がソースに追加されていることを確認してください。
接続するシステムが相互TLS(mTLS)を必要とする場合、プライベートキーをエージェントに手動で追加する必要があります。
デフォルトのブートストラップキーストアとトラストストアは、エージェントが再起動されるたびに再生成され、デフォルトのキーストアに加えられた変更は再起動時に上書きされます。以下の手順は、エージェントホスト上の異なる場所にあるカスタムキーストアを指すようにデフォルトのキーストアを上書きする方法と、このカスタムキーストアを変更してプライベートキーを追加する方法を説明します。
デフォルトのブートストラップキーストアをコピーし、エージェントホストの別の場所に保存します。以下のコマンドを、ホスト上でエージェントを実行しているのと同じユーザー名で実行してください。フォルダ名をsecurity
とするか、お好みに応じて名前を付けてください。
Copied!1 2
$ mkdir /home/<username>/security $ cp <bootvisor_root>/var/data/processes/<bootstrapper_dir>/var/conf/keyStore.jks /home/<username>/security/
Javaのkeytool
コマンドラインツールを使用して、顧客提供のキーストアからコピーしたエージェントキーストアにキーをインポートします。このツールがまだインストールされていない場合は、エージェントにバンドルされたJDKのbin
ディレクトリにあります。
Copied!1 2 3 4
$ keytool -importkeystore -srckeystore <CUSTOM_KEYSTORE.jks> -destkeystore /home/<username>/security/keyStore.jks キーストアCUSTOM_KEYSTORE.jksをkeyStore.jksにインポートしています... 送信先キーストアのパスワードを入力してください: keystore ソースキーストアのパスワードを入力してください:
keytool -list
コマンドを使用して、コピーしたキーストアにキーが追加されたことを確認できます:
Copied!1 2 3 4 5 6 7 8 9 10 11
$ keytool -list -keystore /home/<username>/security/keyStore.jks キーストアのパスワードを入力してください: キーストアの種類: jks キーストアプロバイダ: SUN キーストアには2つのエントリがあります <CUSTOM_KEY>>, 15-Dec-2022, PrivateKeyEntry, 証明書フィンガープリント (SHA-256): A5:B5:2F:1B:39:D3:DA:47:8B:6E:6A:DA:72:4B:0B:43:C7:2C:89:CD:0D:9D:03:B2:3F:35:7A:D4:7C:D3:3D:51 server, 15-Dec-2022, PrivateKeyEntry, 証明書フィンガープリント (SHA-256): DB:82:66:E8:09:43:30:9D:EF:0A:41:63:72:0C:2A:8D:F0:8A:C1:25:F7:89:B1:A3:6E:6F:C6:C5:2C:17:CB:B2
keytool -keypasswd
コマンドを使用して、インポートされたキーのパスワードを更新します。エージェントキーストアでは、キーとキーストアのパスワードが一致している必要があります。
Copied!1 2
$ keytool -keypasswd -alias <CUSTOM_KEY> -new keystore -keystore /home/<username>/security/keyStore.jks キーストアのパスワードを入力してください:
データ接続で、エージェントに移動し、エージェント設定タブを開きます。設定の管理セクションで、詳細を選択し、エージェントタブを選択し、新しくコピーしたキーストアを指すようにkeyStore
を更新します。その後、keyStorePassword
を追加し、適切な値(デフォルトではkeystore
)に設定します。
Copied!1 2 3 4 5
security: keyStore: /home/<username>/security/keyStore.jks keyStorePassword: keystore trustStore: var/conf/trustStore.jks ...
最後に、エクスプローラータブを選択し、keyStorePath
とkeyStorePassword
の両方を更新します。新しい設定を保存します。
Copied!1 2 3 4 5
security: keyStorePath: /home/<username>/security/keyStore.jks keyStorePassword: keystore trustStorePath: var/conf/trustStore.jks ...
エージェントを再起動します。
エージェントタブで設定する際のフィールド名はkeyStore
であり、エクスプローラータブではkeyStorePath
であることに注意してください。ブートストラッパーの設定には変更は必要ありません。