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]
は、set
、add
、setDate
、addDate
のいずれかになります。ヘッダーの値にコンマが含まれている場合は、その値を引用符で囲む必要があります。以下に例を示します。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:8080
やhttps://0.0.0.0:8081
のように設定します。- 型: list
- デフォルト: ""
- 重要度: 低
confluent.resource.name.authority
名前空間の管理が委任される権限。この値は、CRN の残りの部分によって定義されます。Confluent リソース名を生成するときに使用されます。たとえば、
confluent.cloud
やmds-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 モニタリングインターセプター」を参照してください。
ライセンスの構成オプション¶
重要
ライセンス構成は、プリンシパル伝播を使用する場合にのみ必要です。詳細については、「REST Proxy の認証」を参照してください。
confluent.license
Confluent では、各契約者にライセンスキーを発行します。ライセンスキーは、コピーアンドペーストできる短いテキストです。ライセンスキーがなくても、Confluent セキュリティプラグインを 30 日間試用できます。既にご契約済みであってもライセンスキーをお持ちでない場合は、Confluent サポート(support@confluent.io)にお問い合わせください。
- 型: string
- デフォルト: ""
- 重要度: 高