REST Proxy の構成オプション

ここで指定した設定に加えて、Confluent REST Proxy は Java 管理者、コンシューマー、およびプロデューサーの設定を受け入れます。これらの設定を使用することで、REST Proxy のプロデューサーおよびコンシューマーのデフォルト設定をオーバーライドできます。Confluent REST Proxy の管理者、コンシューマー、プロデューサーのデフォルト設定をオーバーライドするには、client. プレフィックスを使用します。構成を管理者のみ、コンシューマーのみ、またはプロデューサーのみに適用する場合は、それぞれプレフィックスを admin.consumer.producer. に置き換えてください。構成オプションが Confluent REST Proxy API で公開されると、ユーザーリクエストの設定が優先され、次に構成オプションとして提供されるオーバーライドが優先され、最後に Java Kafka クライアントが提供するデフォルト値が使用されます。

全般

id

この Confluent REST Proxy サーバーインスタンスの一意の ID。これは、ID を指定しないコンシューマーの一意の ID を生成する際に使用されます。ID はデフォルトでは空です。これにより、単一のサーバーを容易にセットアップして実行させることができますが、自動生成のコンシューマー ID が使用されるマルチサーバーのデプロイにおいては安全ではありません。

  • 型: string
  • デフォルト: ""
  • 重要度: 高
bootstrap.servers
接続先となる Kafka ブローカーのリストたとえば、PLAINTEXT://hostname:9092,SSL://hostname2:9092 のように設定します。この構成は、Kafka のセキュリティが有効な場合に特に重要です。Kafka は複数のエンドポイントを公開する可能性があり、それらすべては ZooKeeper に格納されますが、REST Proxy はこれらのエンドポイントのいずれか 1 つのみで構成される必要があるためです。ここでブートストラップ用にどのサーバーが指定されているかにかかわらず、クライアントはすべてのサーバーを使用します。このリストは、すべてのサーバーを検出するために使用する最初のホストにのみ影響します。これらのサーバーは、初期接続ですべてのクラスターメンバーシップを検出するためにのみ使用されます。これは動的に変わる可能性があるので、このリストにすべてのサーバーセットを含める必要はありません(ただし、サーバーの障害に備えて、複数指定しておくこともできます)。
listeners

HTTP または HTTPS で API リクエストをリッスンするリスナーのコンマ区切りリスト。リスナーが HTTPS を使用する場合は、適切な SSL 構成パラメーターも設定する必要があります。

  • 型: list
  • デフォルト : http://0.0.0.0:8082
  • 重要度: 高
schema.registry.url

シリアライザーで使われる Schema Registry のベース URL。

  • 型: string
  • デフォルト : http://localhost:8081
  • 重要度: 高
consumer.request.max.bytes

1 つのリクエストによって返されるエンコードされていないメッセージキーおよび値の最大バイト数。管理者は、この値を使用して、1 つのコンシューマーが使用するメモリーを制限し、ストリーミングのデコードを実行できないクライアントの応答をデコードするのに必要なメモリー使用量をコントロールできます。応答データの base64 エンコーディングと応答全体の JSON エンコーディングによるオーバーヘッドのため、実際のペイロードは大きくなることに注意してください。

  • 型: long
  • デフォルト: 67108864
  • 重要度: 中
consumer.threads

コンシューマーリクエストを実行するスレッドの最大数。1 つのコンシューマーグループ内のコンシューマーの最大数よりも大きい必要があることに注意してください。センチネル値 -1 を使用すると、アクティブなコンシューマーリクエストの処理を完了するために必要に応じてスレッド数を増やすことができます。非アクティブなスレッドは最終的に停止され、クリーンアップされます。

  • 型: int
  • デフォルト: 50
  • 重要度: 中
consumer.request.timeout.ms

最大メッセージ数にまだ達していない場合に、リクエストのメッセージを待機する最大合計時間。

  • 型: int
  • デフォルト: 1000
  • 重要度: 中
host.name

応答で絶対 URL を生成するために使用されるホスト名。空の場合、デフォルトの正規ホスト名が使用されます。

  • 型: string
  • デフォルト: ""
  • 重要度: 中
access.control.allow.methods

Jetty の Access-Control-Allow-Origin ヘッダーに、特定のメソッドの値を設定します。

  • 型: string
  • デフォルト: ""
  • 重要度: 低
access.control.allow.origin

Jetty の Access-Control-Allow-Origin ヘッダーの値を設定します。

  • 型: string
  • デフォルト: ""
  • 重要度: 低
response.http.headers.config

Confluent Platform コンポーネントの HTTP 応答で返す HTTP ヘッダーを選択する目的で使用します。複数の値は、[action][header name]:[header value] 形式のコンマ区切り文字列で指定します。ここで [action] は、setaddsetDateaddDate のいずれかになります。ヘッダーの値にコンマが含まれている場合は、その値を引用符で囲む必要があります。以下に例を示します。

response.http.headers.config="add Cache-Control: no-cache, no-store, must-revalidate", add X-XSS-Protection: 1; mode=block, add Strict-Transport-Security: max-age=31536000; includeSubDomains, add X-Content-Type-Options: nosniff
  • 型: string
  • デフォルト: ""
  • 重要度: 低
consumer.instance.timeout.ms

コンシューマーインスタンスが自動的に破棄されるまでのアイドル時間。

  • 型: int
  • デフォルト: 300000
  • 重要度: 低
consumer.iterator.backoff.ms

反復子がデータを使い果たしたときにバックオフする時間。コンシューマーに専用のワーカースレッドがある場合、これは事実上、リクエスト全体のタイムアウトにおける最大エラー値となります。厳密にタイムアウトを定める程度には小さく、ビジーの待機を避ける程度には大きくする必要があります。

  • 型: int
  • デフォルト: 50
  • 重要度: 低
fetch.min.bytes

consumer.request.timeout.ms のタイムアウトが経過するまでに、1 つのリクエストによって返されるメッセージキーおよび値の最小バイト数。特別なセンチネル値 -1 を指定すると、この機能は無効になります。

  • 型: int
  • デフォルト値: -1
  • 重要度: 中
consumer.iterator.timeout.ms

コンシューマー反復子操作のブロックのタイムアウト。これは、反復子で効果的に peek() を実行できるように十分小さい値に設定する必要があります。

  • 型: int
  • デフォルト: 1
  • 重要度: 低
debug

一部のエラー応答エンティティで、追加のデバッグ情報を生成するかどうかを示すブール値。

  • 型: boolean
  • デフォルト: false
  • 重要度: 低
metric.reporters

Metrics Reporter として使用するクラスのリスト。MetricReporter インターフェイスを実装することで、新しいメトリック作成の通知を受けるクラスをプラグインすることができます。JMX 統計情報を登録するための JmxReporter が必ず含まれます。

  • 型: list
  • デフォルト: []
  • 重要度: 低
metrics.jmx.prefix

デフォルトの JMX レポーターのメトリック名に適用するプレフィックス。

  • 型: string
  • デフォルト kafka.rest
  • 重要度: 低
metrics.num.samples

メトリクスの計算用に維持されるサンプルの数。

  • 型: int
  • デフォルト: 2
  • 重要度: 低
metrics.sample.window.ms

メトリクスシステムは、サンプル数(構成可能)を一定のウィンドウサイズにわたって維持します。そのウィンドウのサイズを制御するのが、この構成です。たとえば、2 つのサンプルを 30 秒間維持してそれぞれ計測することができます。ウィンドウの期限が切れると、最も古いウィンドウが消去されて上書きされます。

  • 型: long
  • デフォルト: 30000
  • 重要度: 低
port

非推奨: 新しい接続をリッスンするポート。代わりに listeners を使用してください。

  • 型: int
  • デフォルト: 8082
  • 重要度: 低
producer.threads

プロデューサーリクエストを実行するスレッドの数。

  • 型: int
  • デフォルト: 5
  • 重要度: 低
request.logger.name

NCSA 共通ログフォーマットのリクエストログを書き込む SLF4J ロガーの名前。

  • 型: string
  • デフォルト : io.confluent.rest-utils.request
  • 重要度: 低
response.mediatype.default

Accept ヘッダーで特定のタイプがリクエストされなかった場合に使用されるデフォルトの応答メディアタイプ。

  • 型: string
  • デフォルト application/json
  • 重要度: 低
response.mediatype.preferred

サーバーが応答に使用する優先メディアタイプの順序指定済みリスト。優先度の高いものから順に列挙されます。

  • 型: list
  • デフォルト: [application/json, application/vnd.kafka.v2+json]
  • 重要度: 低
shutdown.graceful.ms

シャットダウンのリクエスト後、未処理のリクエストの完了を待機する時間。

  • 型: int
  • デフォルト: 1000
  • 重要度: 低
kafka.rest.resource.extension.class

RestResourceExtension として使用するクラスのリスト。インターフェイス RestResourceExtension を実装すると、フィルターなどのユーザー定義リソースを REST Proxy に挿入できます。通常は、ログ記録やセキュリティなど、カスタム機能を追加する際に使用されます。

  • 型: list
  • デフォルト: ""
  • 重要度: 低
advertised.listeners

アドバタイズされるリスナーのリスト。この構成は、V3 応答で絶対 URL を生成するために使用されます。HTTP プロトコルおよび HTTPS プロトコルがサポートされます。各リスナーは、プロトコル、ホスト名、およびポートを含んでいる必要があります。たとえば、http://myhost:8080https://0.0.0.0:8081 のように設定します。

  • 型: list
  • デフォルト: ""
  • 重要度: 低
confluent.resource.name.authority

名前空間の管理が委任される権限。この値は、CRN の残りの部分によって定義されます。Confluent リソース名を生成するときに使用されます。たとえば、confluent.cloudmds-01.example.com のように設定します。

  • 型: string
  • デフォルト: ""
  • 重要度: 低

HTTPS の構成オプション

ssl.keystore.location

HTTPS に使用されます。SSL に使用するキーストアファイルの場所です。

重要

Jetty では、キーストアに格納されているキーの CN が FQDN と一致している必要があります。

  • 型: string
  • デフォルト: ""
  • 重要度: 高
ssl.keystore.password

HTTPS に使用されます。キーストアファイルのストアパスワード。

  • 型: password
  • デフォルト: ""
  • 重要度: 高
ssl.key.password

HTTPS に使用されます。キーストアファイル内のプライベートキーのパスワード。

  • 型: password
  • デフォルト: ""
  • 重要度: 高
ssl.keystore.type

HTTPS に使用されます。キーストアのファイルの種類です。

  • 型: string
  • デフォルト: JKS
  • 重要度: 中
ssl.protocol

HTTPS に使用されます。SslContextFactory の生成に使用する SSL プロトコルです。

  • 型: string
  • デフォルト: TLS
  • 重要度: 中
ssl.provider

HTTPS に使用されます。SSL セキュリティプロバイダーの名前です。Jetty のデフォルトを使用する場合は空白にします。

  • 型: string
  • デフォルト: ""(Jetty のデフォルト)
  • 重要度: 中
ssl.enabled.protocols

HTTPS に使用されます。SSL 接続で有効なプロトコルのコンマ区切りリストです。Jetty のデフォルトを使用する場合は空白にします。

  • 型: list
  • デフォルト: ""(Jetty のデフォルト)
  • 重要度: 中
ssl.keymanager.algorithm

HTTPS に使用されます。SSL 接続のキーマネージャーファクトリで使用されるアルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。

  • 型: string
  • デフォルト: ""(Jetty のデフォルト)
  • 重要度: 低
ssl.trustmanager.algorithm

HTTPS に使用されます。SSL 接続のトラストマネージャーファクトリで使用されるアルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。

  • 型: string
  • デフォルト: ""(Jetty のデフォルト)
  • 重要度: 低
ssl.cipher.suites

HTTPS に使用されます。SSL 暗号スイートのコンマ区切りリストです。Jetty のデフォルトを使用する場合は空白にします。

  • 型: list
  • デフォルト: ""(Jetty のデフォルト)
  • 重要度: 低
ssl.endpoint.identification.algorithm

HTTPS に使用されます。サーバー証明書を使用してサーバーホスト名を検証するエンドポイント識別アルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。

  • 型: string
  • デフォルト: https
  • 重要度: 低

REST Proxy と Apache Kafka ブローカー間の SSL 暗号化の構成オプション

すべての SSL 構成(REST Proxy からブローカーへの通信用)には client. というプレフィックスが付いていることに注意してください。管理者のみ、コンシューマーのみ、またはプロデューサーのみに構成を適用する場合は、それぞれプレフィックスを admin.consumer.producer. に置き換えることができます。

これらの構成に加えて、bootstrap.servers 構成が SSL://host:port エンドポイントで設定されていることを確認してください。このように設定されていない場合、誤って非 SSL のポートへの SSL 接続を開いてしまいます。

Kafka ブローカーへの認証済みかつ暗号化された接続は、Kafka が適切なセキュリティ構成で実行されている場合にのみ機能することに注意してください。詳細については、 Kafka のセキュリティ を参照してください。

client.security.protocol

ブローカーとの通信に使用されるプロトコル。指定可能な値は、PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL です。

  • 型: string
  • デフォルト: PLAINTEXT
  • 重要度: 高
client.ssl.key.password

キーストアファイル内のプライベートキーのパスワード。クライアントでは省略可能です。

  • 型: password
  • デフォルト: null
  • 重要度: 高
client.ssl.keystore.location

キーストアファイルの場所。クライアントでは省略可能です。クライアントの相互認証に使用できます。

  • 型: string
  • デフォルト: null
  • 重要度: 高
client.ssl.keystore.password

キーストアファイルのストアパスワード。クライアントでは省略可能です。ssl.keystore.location を構成した場合にのみ必要となります。

  • 型: password
  • デフォルト: null
  • 重要度: 高
client.ssl.truststore.location

トラストストアファイルの場所。

  • 型: string
  • デフォルト: null
  • 重要度: 高
client.ssl.truststore.password

トラストストアファイルのパスワード。

  • 型: string
  • デフォルト: null
  • 重要度: 高
client.ssl.enabled.protocols

SSL 接続で有効なプロトコルのリスト。

  • 型: list
  • デフォルト: TLSv1.2,TLSv1.1,TLSv1
  • 重要度: 中
client.ssl.keystore.type

キーストアファイルのファイルフォーマット。クライアントでは省略可能です。

  • 型: string
  • デフォルト: JKS
  • 重要度: 中
client.ssl.protocol

SSLContext の生成に使用する SSL プロトコルです。デフォルト設定は TLS であり、ほとんどのケースに適しています。最新の Java 仮想マシンで使用できる値は、TLS、TLSv1.1、TLSv1.2 です。古い JVM では SSL、SSLv2、および SSLv3 がサポートされている場合もありますが、セキュリティに関する既知の脆弱性があるため、使用しないことをお勧めします。

  • 型: string
  • デフォルト: TLS
  • 重要度: 中
client.ssl.provider

SSL 接続に使用するセキュリティプロバイダーの名前。デフォルト値は、JVM のデフォルトのセキュリティプロバイダーです。

  • 型: string
  • デフォルト: null
  • 重要度: 中
client.ssl.truststore.type

トラストストアファイルのファイルフォーマット。

  • 型: string
  • デフォルト: JKS
  • 重要度: 中
client.ssl.cipher.suites

暗号スイートのリストです。これは、認証、暗号化、MAC、およびキー交換アルゴリズムの名前付き組み合わせで、TLS または SSL ネットワークプロトコルを使用したネットワーク接続のセキュリティ設定をネゴシエートするために使用されます。デフォルトでは、使用可能なすべての暗号スイートがサポートされます。

  • 型: list
  • デフォルト: null
  • 重要度: 低
client.ssl.endpoint.identification.algorithm

サーバー証明書を使用してサーバーホスト名を検証するエンドポイント識別アルゴリズム。

  • 型: string
  • デフォルト: null
  • 重要度: 低
client.ssl.keymanager.algorithm

SSL 接続のキーマネージャーファクトリで使用されるアルゴリズム。デフォルト値は、Java 仮想マシンに構成されているキーマネージャーファクトリアルゴリズムです。

  • 型: string
  • デフォルト: SunX509
  • 重要度: 低
client.ssl.secure.random.implementation

SSL 暗号化操作に使用する SecureRandom PRNG 実装。

  • 型: string
  • デフォルト: null
  • 重要度: 低
client.ssl.trustmanager.algorithm

SSL 接続のトラストマネージャーファクトリで使用されるアルゴリズム。デフォルト値は、Java 仮想マシン用に構成されているトラストマネージャーファクトリアルゴリズムです。

  • 型: string
  • デフォルト: PKIX
  • 重要度: 低

REST Proxy と Schema Registry 間の SSL 暗号化の構成オプション

Schema Registry への認証済みかつ暗号化された接続は、Schema Registry が適切なセキュリティ構成で実行されている場合にのみ機能することに注意してください。詳細については、 Schema Registry を参照してください。

schema.registry.ssl.key.password

キーストアファイル内のプライベートキーのパスワード。これは省略可能です。

  • 型: password
  • デフォルト: null
  • 重要度: 高
schema.registry.ssl.keystore.location

キーストアファイルの場所。省略可能で、相互 SSL 認証に使用できます。

  • 型: string
  • デフォルト: null
  • 重要度: 高
schema.registry.ssl.keystore.password

キーストアファイルのストアパスワード。省略可能で、ssl.keystore.location を構成する場合にのみ必要となります。

  • 型: password
  • デフォルト: null
  • 重要度: 高
schema.registry.ssl.truststore.location

トラストストアファイルの場所。

  • 型: string
  • デフォルト: null
  • 重要度: 高
schema.registry.ssl.truststore.password

トラストストアファイルのパスワード。

  • 型: string
  • デフォルト: null
  • 重要度: 高

インターセプター構成オプション

REST Proxy では、Java の新規プロデューサーおよびコンシューマーの設定の一環としてインターセプター構成をサポートしています。

producer.interceptor.classes

プロデューサーインターセプタークラス。

  • 型: string
  • デフォルト: ""
  • 重要度: 低
consumer.interceptor.classes

コンシューマーインターセプタークラス。

  • 型: string
  • デフォルト: ""
  • 重要度: 低

たとえば、Confluent Control Center インターセプターのモニタリングを有効にするには、以下のように設定します。

consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor

インターセプターのモニタリングの詳細については、「Confluent Monitoring Interceptor」を参照してください。

ライセンスの構成オプション

重要

ライセンス構成は、プリンシパル伝播を使用する場合にのみ必要です。詳細については、「REST Proxy の認証」を参照してください。

confluent.license

Confluent では、各契約者にライセンスキーを発行します。ライセンスキーは、コピーアンドペーストできる短いテキストです。ライセンスキーがなくても、Confluent セキュリティプラグインを 30 日間試用できます。既にご契約済みであってもライセンスキーをお持ちでない場合は、Confluent サポート(support@confluent.io)にお問い合わせください。

  • 型: string
  • デフォルト: ""
  • 重要度: 高