# ライブラリとエージェントのスプーラー設定

> ライブラリとエージェントのスプーラー設定 - ライブラリがスプーラーを介してエージェントと通信できるよう、MLOpsライブラリと監視エージェントスプーラーを設定する方法。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-15T05:55:44.929536+00:00` (UTC).

## Primary page

- [ライブラリとエージェントのスプーラー設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [MLOpsエージェントの設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#mlops-agent-configuration): In-page section heading.
- [MLOpsライブラリ設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#mlops-library-configuration): In-page section heading.
- [一般的な設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#general-configuration): In-page section heading.
- [スプーラー固有設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#spooler-specific-configurations): In-page section heading.
- [Filesystem](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#filesystem): In-page section heading.
- [Amazon SQS](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#amazon-sqs): In-page section heading.
- [RabbitMQ](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#rabbitmq): In-page section heading.
- [Google Cloud Pub/Sub](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#google-cloud-pubsub): In-page section heading.
- [Apache Kafka](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#apache-kafka): In-page section heading.
- [DataRobot API](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#datarobot-api): In-page section heading.
- [Azure Event Hubs](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#azure-event-hubs): In-page section heading.
- [Event HubsのSASベースの認証](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#sas-based-authentication-for-event-hubs): In-page section heading.
- [Event Hubs向けのAzure Active Directory OAuth 2.0](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#azure-active-directory-oauth-20-for-event-hubs): In-page section heading.
- [Javaアプリケーションでの必要なスプーラーの動的ロード](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#dynamically-load-required-spoolers-in-a-java-application): In-page section heading.
- [プロジェクトオブジェクトモデルにスプーラーの依存関係を含める](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#include-spooler-dependencies-in-the-project-object-model): In-page section heading.
- [スプーラーに実行可能なJARファイルの提供](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#provide-an-executable-jar-file-for-the-spooler): In-page section heading.

## Documentation content

MLOpsライブラリはスプーラーを介してエージェントと通信します。そのため、 [エージェント](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#mlops-agent-configuration) と [ライブラリ](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#mlops-library-configuration) スプーラーの設定が一致していることが重要です。 MLOpsエージェントとライブラリのスプーラー設定を構成する場合、一部の設定は必須であり、一部はオプションです（ オプションの設定 は、以下の各表に示されています）。 必要な設定は、プログラムで設定することも、 [一般設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#general-configuration) および [スプーラー固有の設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#spooler-specific-configurations) セクションに記載されている環境変数を使用して設定することもできます。 環境変数による設定とプログラムによる設定の 両方 が混在する場合は、環境変数による設定が優先されます。

> [!NOTE] Javaの要件
> MLOps監視ライブラリにはJava 11以降が必要です。 監視しない場合、モデルのスコアリングコードJARファイルにはJava 8以降が必要です。ただし、MLOpsライブラリを使用して監視を行う場合、モデルのスコアリングコードJARファイルにはJava 11以降が必要です。 セルフマネージドAIプラットフォームがインストールされている場合 、Java 11の要件がDataRobot v11.0以降に適用されます。

MLOpsエージェントとライブラリの通信は、次のスプーラーのいずれかを使用するように設定できます。

- Filesystem
- Amazon SQS
- RabbitMQ
- Google Cloud Pub/Sub
- Apache Kafka
- Azure Event Hubs
- DataRobot API

## MLOpsエージェントの設定

`mlops.agent.conf.yaml` で別のサービスとしてエージェントを実行する場合は、 `channelConfigs` セクションのコメントを解除し、必須の設定を入力して、スプーラー設定を指定します。 `channelConfigs` の設定の詳細については、 [MLOpsエージェントの設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/agent.html.md#configure-the-monitoring-agent) を参照してください。

## MLOpsライブラリ設定

MLOpsライブラリは、プログラムで設定するか、環境変数を使用して設定できます。 プログラムでスプーラーを設定するには、MLOps `init` 呼び出し中にスプーラーを指定します。たとえば、Pythonライブラリを使用してファイルシステムスプーラーを設定するには、次のようにします。

```
mlops = MLOps().set_filesystem_spooler("your_spooler_directory").init() 
```

> [!NOTE] 備考
> 上記のコードで指定されたディレクトリを作成する必要があります。プログラムはそれを作成しません。

他のスプーラータイプに対して同等のインターフェイスが存在します。

環境変数を使用してMLOpsライブラリとエージェントを設定するには、 [一般設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#general-configuration) および [スプーラー固有設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#spooler-specific-configurations) のセクションを参照してください。

## 一般的な設定

次の環境変数を使用して、MLOpsエージェントとライブラリを設定し、スプーラータイプを選択します。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_DEPLOYMENT_ID | MLOpsライブラリからメトリックを受け取る必要があるDataRobotデプロイのデプロイID。 |
| MLOPS_MODEL_ID | MLOpsライブラリによって報告される必要があるDataRobotモデルのモデルID。 |
| MLOPS_SPOOLER_TYPE | MLOpsライブラリが監視エージェントとの通信に使用するスプーラーのタイプ。 有効なスプーラータイプは次のとおりです。FILESYSTEM：ローカルのfilesystemスプーラーを有効にします。SQS：AmazonSQSスプーラーを有効にします。RABBITMQ：RabbitMQスプーラーを有効にします。KAFKA：ApacheKafkaまたはAzureEventHubsスプーラーを有効にします。PUBSUB：Google Cloud Pub/Subスプーラーを有効にします。NONE：MLOpsライブラリのレポートを無効にします。STDOUT：レポートされたメトリックをエージェントに転送するのではなく、stdoutに出力します。API：DataRobot APIスプーラを有効にする。 |
| オプション設定 |  |
| MLOPS_SPOOLER_DEQUEUE_ACK_RECORDS | 処理が完了するまで、監視エージェントがレコードをデキューしないことを確認します。 このオプションをtrueに設定して、接続エラーによってレコードが削除されないようにします。 このオプションを有効化することをお勧めします。 スプーラーチャネルの場合、デキュー操作は次のように動作します。SQS：メッセージを削除します。RABBITMQおよびPUBSUB：メッセージを完了として認識します。KAFKAおよびFILESYSTEM：オフセットを移動します。 |
| MLOPS_ASYNC_REPORTING | MLOpsライブラリに、指標を非同期でスプーラーにレポートさせます。 |
| MLOPS_FEATURE_DATA_ROWS_IN_ONE_MESSAGE | スプーラーへの単一のメッセージに含める必要のある特徴量の行数。 |
| MLOPS_SPOOLER_CONFIG_RECORD_DELIMITER | スプーラー設定文字列内のキーと値のペア間のデフォルト値;を置き換える区切り文字（たとえば、key1=value1;key2=value2をkey1=value1:key2=value2に）。 |
| MLOPS_SPOOLER_CONFIG_KEY_VALUE_SEPARATOR | スプーラー設定文字列内のキーと値のペア間のデフォルト値=を置き換える区切り文字（たとえば、key1=value1をkey1:value1に）。 |

> [!NOTE] 備考
> ここでは、設定ファイルまたはプログラムで設定された変数定義よりも環境変数の設定が優先されます。

スプーラータイプを設定した後、スプーラー固有の環境変数を設定できます。

## スプーラー固有設定

設定した `MLOPS_SPOOLER_TYPE` に応じて、サポートされているスプーラーに固有の環境変数として設定情報を提供できます。

### Filesystem

次の環境変数を使用して、 `FILESYSTEM` スプーラーを設定します。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_FILESYSTEM_DIRECTORY | DataRobotにレポートするメトリックを保存するディレクトリ。 ディレクトリを作成する必要があります。プログラムはそれを作成しません。 |
| オプション設定 |  |
| MLOPS_FILESYSTEM_MAX_FILE_SIZE | デフォルトの最大ファイルサイズ（バイト単位）を上書きします。 デフォルト：1GB |
| MLOPS_FILESYSTEM_MAX_NUM_FILE | デフォルトの最大ファイル数を上書きします。 デフォルト：10ファイル |

> [!NOTE] プログラムによるfilesystemスプーラーの設定
> [MLOpsライブラリ用のファイルシステムスプーラーをプログラムに従って設定](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#mlops-library-configuration) することもできます。

**ポータブル予測サーバーのfilesystemディレクトリ**

`FILESYSTEM` スプーラーで [ポータブル予測サーバー](https://docs.datarobot.com/ja/docs/classic-ui/predictions/port-pred/pps/portable-pps.html.md) （PPS）を使う場合、PPSの起動時にこのディレクトリをバインドマウントする必要があります。 例：

| 1 2 3 4 5 6 | docker run \ -p 8080:8080 \ -v <local path to model package folder>/:/tmp/ \ -e MLOPS_SPOOLER_TYPE="FILESYSTEM" \ -e MLOPS_FILESYSTEM_DIRECTORY="/tmp/" \ datarobot-portable-prediction-api |

PPSの起動について詳しくは、 [コードスニペットでのPPSの起動](https://docs.datarobot.com/ja/docs/classic-ui/predictions/port-pred/pps/portable-pps.html.md#launch-the-pps-with-the-code-snippet) のドキュメントを参照してください。

### Amazon SQS

Amazon `SQS` をスプーラーとして使用する場合、次の2つの方法のいずれかで資格情報セットを提供できます。

- AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGIONまたはAWS_DEFAULT_REGION環境変数にクレデンシャルを設定します。 AWSソフトウェアパッケージのみがこれらのクレデンシャルを使用します。DataRobotはそれらにアクセスしません。
- AWS環境を使用している場合は、資格情報認証用のAWS IAM（IDおよびアクセス管理）ロールを作成します。

次の環境変数の いずれか を使用して、 `SQS` スプーラーを設定します。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_SQS_QUEUE_URL | スプーラーに使用されるSQSキューのURL。 |
| MLOPS_SQS_QUEUE_NAME | スプーラーに使用されるSQSキューのキュー名。 |

> [!NOTE] 備考
> `SQS` スプーラータイプを使用する場合は、スプーラー名 または URLのみを指定してください。

### RabbitMQ

`RABBITMQ` スプーラー設定に使用する環境変数は以下の通りです。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_RABBITMQ_QUEUE_URL | スプーラーに使用されるRabbitMQキューのURL。 |
| MLOPS_RABBITMQ_QUEUE_NAME | スプーラーに使用されるRabbitMQキューのキュー名。 |
| オプション設定 |  |
| MLOPS_RABBITMQ_SSL_CA_CERTIFICATE_PATH | CA証明書ファイル（.pemファイル）へのパス。 |
| MLOPS_RABBITMQ_SSL_CERTIFICATE_PATH | クライアント証明書（.pemファイル）へのパス。 |
| MLOPS_RABBITMQ_SSL_KEYFILE_PATH | クライアントキー（.pemファイル）へのパス。 |
| MLOPS_RABBITMQ_SSL_TLS_VERSION | クライアントに使用するTLSバージョン。 TLSバージョンはサーバーバージョンと一致する必要があります。 |

> [!NOTE] 備考
> RabbitMQ設定では、パスワードなしでRSA形式のキーが必要です。 以下の通り、PKCS8からRSAにキーを変換することができます。
> 
> `openssl rsa -in mykey_pkcs8_format.pem -text > mykey_rsa_format.pem`
> 
> キーを生成するには、 [RabbitMQ TLSサポートを](https://www.rabbitmq.com/ssl.html#automated-certificate-generation) 参照してください。

### Google Cloud Pub/Sub

Google Cloud `PUBSUB` をスプーラーとして使用する場合は、 `GOOGLE_APPLICATION_CREDENTIALS` 環境変数に適切な資格情報を指定する必要があります。 Google Cloudソフトウェアパッケージのみがこれらのクレデンシャルを使用します。DataRobotはそれらにアクセスしません。

`PUBSUB` スプーラー設定に使用する環境変数は以下の通りです。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_PUBSUB_PROJECT_ID | スプーラーによって使用されるプロジェクトのPub/SubプロジェクトIDは、プロジェクトIDのフルパスである必要があります。 |
| MLOPS_PUBSUB_TOPIC_NAME | スプーラーによって使用されるトピックのPub/Subトピック名。これは、プロジェクトIDを含む完全修飾トピック名パスではなく、プロジェクト内のトピック名である必要があります。 |
| MLOPS_PUBSUB_SUBSCRIPTION_NAME | スプーラーが使用するサブスクリプションのPub/Subサブスクリプション名。 |

> [!NOTE] Pub/Subサービスのアカウント権限
> Google Cloud Pub/Subを監視エージェントのスプーラーとして使用するには、以下のサービスアカウント権限が必要です。
> 
> レベル
> ユーザー権限
> プロジェクト
> プロジェクトビューアー
> トピック
> Pub/Subパブリッシャー
> サブスクリプション
> Pub/Subビューアー、Pub/Subサブスクライバー
> 
> DataRobotの外部で監視エージェントと通信するために必要な基本権限は、_Pub/Subパブリッシャー_と_Pub/Subサブスクライバー_です。 _Pub/Subビューアー_と_プロジェクトビューアー_は [DataRobotの予測環境](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/prediction-env/pred-env.html.md#add-a-new-external-prediction-environment) で必要です。

### Apache Kafka

次の環境変数を使用してApache `KAFKA` スプーラーを設定します。

| 特徴量 | 説明 |
| --- | --- |
| MLOPS_KAFKA_TOPIC_NAME | 生成または使用する特定のKafkaトピックの名称。 ApacheKafkaリファレンス：主な概念と用語 |
| MLOPS_KAFKA_BOOTSTRAP_SERVERS | エージェントが接続するサーバーのリスト。 アップストリームで使用されるbootstrap.servers設定と同じ構文を使用します。 ApacheKafkaリファレンス：bootstrap.servers |
| オプション設定 |  |
| MLOPS_KAFKA_CONSUMER_POLL_TIMEOUT_MS | メッセージを処理してDataRobotに送信する前にメッセージを消費するまで待機する時間 デフォルト値：3000ミリ秒。 |
| MLOPS_KAFKA_CONSUMER_GROUP_ID | このコンシューマーが属するコンシューマーグループを識別する一意の文字列。 デフォルト値：tracking-agent。 ApacheKafkaリファレンス： group.id |
| MLOPS_KAFKA_CONSUMER_MAX_NUM_MESSAGES | メッセージを処理し、結果をDataRobot MLOpsに送信する前に、一度で使用するメッセージの最大数。 デフォルト値：500 ApacheKafkaリファレンス：max.poll.records |
| MLOPS_KAFKA_SESSION_TIMEOUT_MS | コンシューマーグループのクライアント障害を検出するために使用されるタイムアウト。 ApacheKafkaリファレンス：session-timeout.ms |
| MLOPS_KAFKA_MESSAGE_BYTE_SIZE_LIMIT | チャネルにイベントを生成するときの最大のチャンクサイズ。 デフォルト値：1000000バイト |
| MLOPS_KAFKA_DELIVERY_TIMEOUT_MS | メッセージを永続的に失敗したと見なす前にメッセージを送信するための絶対上限時間。 ApacheKafkaリファレンス：delivery.timeout.ms |
| MLOPS_KAFKA_REQUEST_TIMEOUT_MS | クライアントが再試行する前に要求への応答を待機する最大時間。 ApacheKafkaリファレンス：request.timeout.ms |
| MLOPS_KAFKA_METADATA_MAX_AGE_MS | クライアントがクラスターメタデータを更新する前に待機する最大時間（ミリ秒単位）。 ApacheKafkaリファレンス：metadata.max.age.ms |
| MLOPS_KAFKA_SECURITY_PROTOCOL | ブローカーへの接続に使用されるプロトコル。 ApacheKafkaリファレンス： security.protocol有効な値。 |
| MLOPS_KAFKA_SASL_MECHANISM | クライアントがブローカーでの認証に使用するメカニズム。 ApacheKafkaリファレンス：sasl.mechanism |
| MLOPS_KAFKA_SASL_JAAS_CONFIG （Javaのみ） | JAAS設定ファイルで使用される形式の接続設定。 ApacheKafkaリファレンス：sasl.jaas.config |
| MLOPS_KAFKA_SASL_LOGIN_CALLBACK_CLASS （Javaのみ） | カスタムログインハンドラークラス。 ApacheKafkaリファレンス：sasl.login.callback.handler.class |
| MLOPS_KAFKA_CONNECTIONS_MAX_IDLE_MS （Javaのみ） | クライアントが非アクティブな接続を閉じるまでの最大時間（ミリ秒単位）。 この値は、ネットワークインフラストラクチャが課す可能性のあるタイムアウトよりも低く設定する必要があります。 ApacheKafkaリファレンス：connections.max.idle.ms |
| MLOPS_KAFKA_SASL_USERNAME （Pythonのみ） | PLAINおよびSASL-SCRAM-*メカニズムで使用するSASLユーザー名。 リファレンス：librdkafkaでsasl.usernameの設定を参照してください。 |
| MLOPS_KAFKA_SASL_PASSWORD （Pythonのみ） | PLAINおよびSASL-SCRAM-*メカニズムで使用するSASLパスワード。 リファレンス：librdkafkaでsasl.passwordの設定を参照してください。 |
| MLOPS_KAFKA_SASL_OAUTHBEARER_CONFIG （Pythonのみ） | OAuthログインコールバックを渡すためのカスタム設定。 リファレンス：librdkafkaでsasl.oauthbearer.configの設定を参照してください。 |
| MLOPS_KAFKA_SOCKET_KEEPALIVE （Pythonのみ） | ネットワーク接続でTCPキープアライブを有効にし、これらの接続を介してパケットを定期的に送信して、非アクティブが原因で必要な接続が閉じられないようにします。 リファレンス：librdkafkaでsocket.keepalive.enableの設定を参照してください。 |

### DataRobot API

DataRobot APIスプーラーを設定するプロセスは、一般的なスプーラー設定とは異なります。 通常、監視エージェントはスプーラーに接続して情報を収集し、その情報をDataRobot MLOpsに送信します。 DataRobot APIを使用すると、実際にスプーラーに接続することはなく、MLOpsライブラリの呼び出しに変更はありません。 呼び出しはスプーラーや監視エージェントには行われず、HTTPS経由でDataRobot MLOpsに直接行われます。 この場合、複雑なスプーラーや監視エージェントを設定する必要はありません。

次のパラメーターを使用して、DataRobot Python APIスプーラーを設定します。

| パラメーター | 説明 |
| --- | --- |
| MLOPS_SERVICE_URL | MLOpsにアクセスするためのサービスURLを、YAML設定ファイルで指定する代わりに、この環境変数で指定します。 |
| MLOPS_API_TOKEN | DataRobot APIキー |
| VERIFY SSL（ブーリアン） | （オプション）クライアントがSSL接続を検証する必要があるかどうかを決定します。 デフォルト値：True |
| オプション設定 |  |
| MLOPS_HTTP_RETRY | 呼び出しに成功するまでに再試行する回数。 デフォルト値：3 |
| API_POST_TIMEOUT_SECONDS | タイムアウト値を設定します。 デフォルト値：30 |
| API_HTTP_RETRY_WAIT_SECONDS | タイムアウトしてから再試行するまでの待機時間を決定します。 デフォルト値：1 |

### Azure Event Hubs

DataRobotでは、既存の [Kafkaスプーラータイプ](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#kafka) を活用することによって、Microsoft Azure Event Hubsを監視エージェントスプーラーとして使用できます。 この設定については、 [Apache KafkaアプリケーションのAzure Event Hubsの使用](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview) を参照してください{ target=_blank }。

> [!NOTE] 備考
> Azureは、Event HubsのKafkaプロトコルをスタンダードおよびプレミアム価格帯でのみサポートします。 ベーシック価格帯は、Kafka APIサポートがないので、監視エージェント向けのスプーラーとしてサポートされていません。 詳細については、 [Azure Event Hubsのクォータと制限](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-quotas) を参照してください。

スプーラーとしてAzure Event Hubsを使用するには、以下の方法で監視エージェントとライブラリーの認証を設定する必要があります。

- SASベースの認証
- Azure Active Directory OAuth 2.0

#### Event HubsのSASベースの認証

監視エージェントとライブラリにEvent HubsのSASベースの認証を使用するには、以下のシェルフラグメントの例を使用して、次の環境変数を設定します。

```
# Sample environment variables script for SAS-based authentication
# Azure recommends setting the following values; see:
# https://docs.microsoft.com/en-us/azure/event-hubs/apache-kafka-configurations
export MLOPS_KAFKA_REQUEST_TIMEOUT_MS='60000'
export MLOPS_KAFKA_SESSION_TIMEOUT_MS='30000'
export MLOPS_KAFKA_METADATA_MAX_AGE_MS='180000'

# Common configuration variables for both Java- and Python-based libraries.
export MLOPS_KAFKA_BOOTSTRAP_SERVERS='XXXX.servicebus.windows.net:9093'
export MLOPS_KAFKA_SECURITY_PROTOCOL='SASL_SSL'
export MLOPS_KAFKA_SASL_MECHANISM='PLAIN'

# The following setting is specific to the Java SDK (and the monitoring agent daemon)
export MLOPS_KAFKA_SASL_JAAS_CONFIG='org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://XXXX.servicebus.windows.net/;SharedAccessKeyName=XXXX;SharedAccessKey=XXXX";'

# For the Python API client, you will need the following settings (in addition to the common ones above)
export MLOPS_KAFKA_SASL_USERNAME='$ConnectionString'
export MLOPS_KAFKA_SASL_PASSWORD='Endpoint=sb://XXXX.servicebus.windows.net/;SharedAccessKeyName=XXX;SharedAccessKey=XXXX' 
```

> [!NOTE] 備考
> 上記の環境変数の値では、環境変数を設定するときに特殊文字 `$` と `"` がシェルによって解釈されないように、一重引用符（ `'` ）を使用してください。 DataBricksを介して環境変数を設定している場合は、使用しているプラットフォームのバージョンの特殊文字をにエスケープする方法に関する [ガイドライン](https://docs.microsoft.com/en-us/azure/databricks/kb/clusters/validate-environment-variable-behavior) に従う必要があります。

#### Event Hubs向けのAzure Active Directory OAuth 2.0

DataRobotは、Event Hubsの認証用にAzure Active Directory OAuth 2.0もサポートしています。 この認証方法を使用するには、新しいアプリケーション登録を作成して、それにEvent Hubs Namespace（すなわち、Azure Event Hubsのデータオーナー）の必要な権限を持たせる必要があります。 詳細については、 [Event Hubsのリソースにアクセスするには、Azure ADでアプリケーションの認証をする](https://docs.microsoft.com/en-us/azure/event-hubs/authenticate-application) を参照してください。

Event Hubs Azure Active Directory OAuth 2.0認証を使用するには、以下のサンプルシェルのフラグメントを使用して、次の環境変数を設定します。

```
# Sample environment variables script for Azure AD OAuth 2.0 authentication
# Azure recommends setting the following values; see:
# https://docs.microsoft.com/en-us/azure/event-hubs/apache-kafka-configurations
export MLOPS_KAFKA_REQUEST_TIMEOUT_MS='60000'
export MLOPS_KAFKA_SESSION_TIMEOUT_MS='30000'
export MLOPS_KAFKA_METADATA_MAX_AGE_MS='180000'

# Common configuration variables for both Java- and Python-based libraries.
export MLOPS_KAFKA_BOOTSTRAP_SERVERS='XXXX.servicebus.windows.net:9093'
export MLOPS_KAFKA_SECURITY_PROTOCOL='SASL_SSL'
export MLOPS_KAFKA_SASL_MECHANISM='OAUTHBEARER'

# The following setting is specific to the Java SDK (and the tracking-agent daemon)
export MLOPS_KAFKA_SASL_JAAS_CONFIG='org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required aad.tenant.id="XXXX" aad.client.id="XXXX" aad.client.secret="XXXX";'
export MLOPS_KAFKA_SASL_LOGIN_CALLBACK_CLASS='com.datarobot.mlops.spooler.kafka.ActiveDirectoryAuthenticateCallbackHandler'

# For the Python API client, you will need the following settings (in addition to the common ones above)
export MLOPS_KAFKA_SASL_OAUTHBEARER_CONFIG='aad.tenant.id=XXXX-XXXX-XXXX-XXXX-XXXX, aad.client.id=XXXX-XXXX-XXXX-XXXX-XXXX, aad.client.secret=XXXX' 
```

> [!NOTE] 備考
> 環境変数の値の一部に二重引用符（ `"` ）が含まれています。 この特殊文字（または他の文字）を含む環境変数を設定するときは注意してください。

## Javaアプリケーションでの必要なスプーラーの動的ロード

サードパーティのコードを使用して監視エージェントスプーラーを設定するには、必要なスプーラー用に別のJARファイルを動的にロードできます。 この設定は、 [Amazon SQS](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#amazon-sqs) 、 [RabbitMQ](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#rabbitmq) 、 [Google Cloud Pub/Sub](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#google-cloud-pubsub) 、および [Apache Kafka](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/spooler.html.md#apache-kafka) スプーラーに必須です。 ネイティブでサポートされているファイルシステムスプーラーは、JARファイルをロードせずに設定できます。

> [!NOTE] 備考
> 以前は、 `datarobot-mlops` と `mlops-agent` のパッケージには、デフォルトですべてのスプーラータイプが含まれていました。ただし、その設定が未使用であってもコードが常に存在していました。

### プロジェクトオブジェクトモデルにスプーラーの依存関係を含める

MLOps Javaアプリケーションでサードパーティのスプーラーを使用するには、 `datarobot-mlops` と一緒に、必要なスプーラーをPOM（Project Object Model）ファイルに依存関係として含める必要があります。

```
# Dependencies in a POM file
<properties>
    <mlops.version>8.3.0</mlops.version>
</properties>

    <dependency>
        <groupId>com.datarobot</groupId>
        <artifactId>datarobot-mlops</artifactId>
        <version>${mlops.version}</version>
    </dependency>
    <dependency>
        <groupId>com.datarobot</groupId>
        <artifactId>spooler-sqs</artifactId>
        <version>${mlops.version}</version>
    </dependency>
    <dependency>
        <groupId>com.datarobot</groupId>
        <artifactId>spooler-rabbitmq</artifactId>
        <version>${mlops.version}</version>
    </dependency>
    <dependency>
        <groupId>com.datarobot</groupId>
        <artifactId>spooler-pubsub</artifactId>
        <version>${mlops.version}</version>
    </dependency>
    <dependency>
        <groupId>com.datarobot</groupId>
        <artifactId>spooler-kafka</artifactId>
        <version>${mlops.version}</version>
    </dependency> 
```

### スプーラーに実行可能なJARファイルの提供

スプーラーJARファイルは、 [MLOpsエージェントのtarball](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/monitoring-agent/index.html.md#mlops-agent-tarball) に含まれています。 これらは [DataRobot MLOpsエージェント](https://mvnrepository.com/artifact/com.datarobot/mlops-agent) のMaven公開リポジトリで、ダウンロード可能なJARファイルとして個別に入手することもできます。

実行可能なエージェントJARファイルでサードパーティのスプーラーを使用するには、スプーラーへのパスをクラスパスに追加します。

```
# Classpath without spooler
java ... -cp path/to/mlops-agent-8.2.0.jar com.datarobot.mlops.agent.Agent 
```

```
# Classpath with Kafka spooler
java ... -cp path/to/mlops-agent-8.3.0.jar:path/to/spooler-kafka-8.3.0.jar com.datarobot.mlops.agent.Agent 
```

例として提供されている `start-agent.sh` スクリプトは、このタスクを自動実行し、 `lib` ディレクトリにあるスプーラーJARファイルをクラスパスに追加します。 スプーラーJARファイルが別のディレクトリにある場合は、 `MLOPS_SPOOLER_JAR_PATH` 環境変数を設定してください。

**MLOpsアプリケーションのトラブルシューティング:**
動的スプーラーが正常にロードされると、監視エージェントは次の
INFO
メッセージ（
Creating spooler type <type>: success.
）をログに記録します。
動的スプーラーのロードに失敗すると、監視エージェントは
ERROR
メッセージ（
Creating spooler type <type>: failed
）をログに記録し、その後に理由（依存関係がないことを示す
class not found
エラー）または詳細（問題の診断に役立つシステムの例外メッセージ）を記録します。 クラスが見つからない場合は、スプーラーの依存関係がアプリケーションのPOMに含まれていることを確認してください。 欠損している依存関係は実行時まで検出されません。

**監視エージェントのトラブルシューティング:**
動的スプーラーが正常にロードされると、監視エージェントは次の
INFO
メッセージ（
Creating spooler type <type>: success.
）をログに記録します。
動的スプーラーのロードに失敗すると、監視エージェントは
ERROR
メッセージ（
Creating spooler type <type>: failed
）をログに記録し、その後に理由（JARファイルがないことを示す
class not found
エラー）または詳細（問題の診断に役立つシステムの例外メッセージ）を記録します。 クラスが見つからない場合は、そのスプーラーに一致するJARファイルが、エージェントを起動する
java
コマンドのクラスパスに含まれていることを確認してください。


> [!TIP] ヒント
> `predictionEnvironmentId` で設定されたエージェントがDataRobotに接続できる場合は、エージェントはログメッセージからの情報とともに、 `MLOps Spooler Channel Failed` イベントをDataRobot MLOpsに送信します。 これらのイベントは、その予測環境に関連付けられている [デプロイの サービスの正常性ページのイベントログ](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/mlops-agent/agent-event-log.html.md) に表示されます。 これらのエラーを（メール、Slack、Webhookで）通知する通知チャネルとポリシーを作成することもできます。
