Auto Data Balancer のコマンドと構成オプション¶
次のコマンドフラグと構成オプションはリバランサーツール専用です。例については、「リバランサーの実行」を参照してください。メトリクスレポートに関する構成オプションについては、Confluent Metrics Reporter の構成 を参照してください。
リバランサーの構成ファイルパスは --config-file
オプションで渡されます。管理クライアントを使用した Kafka への接続と通信は、プロパティファイルで --command-config
オプションを使用して指定できます。これらのオプションとその他の構成および接続オプションについて、以下のセクションで説明します。
confluent-rebalancer のコマンドフラグ¶
confluent-rebalancer
コマンドでは以下のオプションを利用できます。$CONFLUENT_HOME
で引数を指定せずに ./bin/confluent-rebalancer
を実行すると、サポートされているコマンドのリストが説明とともに表示されます。このコマンドの実行時の一部のフラグの使用例については、チュートリアル の「リバランサーの実行」を参照してください。
--zookeeper
注: このオプションは Confluent Platform 5.5.0 以降では非推奨です。代わりに
--bootstrap-server
のみを使用してください。例については、「リバランサーの実行」を参照してください。ZooKeeper 接続用の接続文字列です(形式は
host:port
)。複数の URL(コンマ区切り)を指定することで、ZooKeeper ノードが停止した場合にフェイルオーバーできます。- 型: string
- デフォルト: 空の文字列
- 重要度: 高
--bootstrap-server
クラスターのブローカー用の接続文字列です(形式は
host:port
)。複数の URL(コンマ区切り)を指定することで、ブローカーノードが停止した場合にフェイルオーバーできます。これは必須です。- 型: string
- デフォルト: 空の文字列
- 重要度: 高
--exclude-internal-topics
バランス調整時に
_consumer_offsets
などの内部トピックを除外します。- -topics を使用してバランス調整の対象のトピックが直接指定されている場合、このオプションは無視されます。- 型: boolean
- デフォルト: false
- 重要度: 低
--force
true の場合、プロンプトを抑制します。
- 型: boolean
- デフォルト: false
- 重要度: 低
--incremental
パーティションを段階的に移動する必要があることを示します。リバランサーは、
max.concurrent.moves.per.leader
を超えないように、パーティションをバッチ処理で再割り当てします。すべての再割り当てが完了するまで、コマンドは応答を返しません。このオプションは Confluent Platform 5.4( Apache Kafka® 2.4)以降を使用するブローカーのみが対象です。例については、クイックスタートの「順次再割り当て」を参照してください。- 型: boolean
- デフォルト: false
- 重要度: 低
--metrics-bootstrap-server
Metrics Reporter がクラスターレベルのメトリクスをパブリッシュする場合(つまり、メトリクストピックが実行中の場合)の Kafka クラスター用の接続文字列です。このオプションは
host:port
という形式で指定します。「confluent.rebalancer.metrics.topic」と、「リバランサーの実行」の例も参照してください。- 型: string
- デフォルト: 空の文字列
- 重要度: 低
--remove-broker-ids
(コンマ区切りで)指定されたブローカーからパーティションが移動されます。このオプションを使用すると、ブローカーを廃止できます。
- 型: boolean
- デフォルト: false
- 重要度: 低
--replica-placement-only
バランス調整計画を、レプリカの配置制約が変更されており、現在の位置でこの制約を満たしていないトピックに制限します。
- 型: boolean
- デフォルト: false
- 重要度: 中
--throttle
レプリカを移動するために割り当てる最大帯域幅(バイト/秒単位)を指定します。これは必須です。例については、「リバランサーの実行」、特に「データ移行中の使用帯域幅の制限」を参照してください。
- 型: int
- デフォルト: 空の文字列
- 重要度: 高
--topics
バランス調整計画を、指定したトピック(複数の場合はトピックのコンマ区切りのリスト)に制限します。これによって、- -exclude-internal-topics に指定されたすべての設定がオーバーライドされます。
- 型: string
- デフォルト: 空の文字列
- 重要度: 中
--verbose
バランス調整の前と後についてブローカーごとに、ディスク領域の使用量、リーダー数、レプリカ数、トピックパーティションに関する情報も出力されます。
- 型: boolean
- デフォルト: false
- 重要度: 低
--command-config
AdminClient Auto Data Balancer に渡し、Kafka クラスターへの接続と通信を行うために使用する構成を含むプロパティファイルを指定します。プロパティファイルはテキストファイルで、ファイルの命名や特定の拡張子などに関する要件は一切ありません。使用可能なプロパティの詳細は「AdminClient の構成」に記載されています。
このオプションは
--bootstrap-server
オプションのみと併用でき、一部のユースケースで必須です。たとえば、サーバーが SSL で保護されている(security.protocol=SSL
)場合、これを管理クライアントに対する--command-config
と、confluent.rebalancer.metrics.topic
からデータを取得するメトリクスコンシューマーの--config-file
に指定する必要があります。「command-config ファイルを使用した Kafka への通信」も参照してください。
- 型: string
- デフォルト: 空の文字列
- 重要度: 低
--config-file
Auto Data Balancer の構成を含むプロパティファイルを指定します。これは、コマンドラインから直接リバランサーの構成を指定する代わりの手法となります。プロパティファイルはテキストファイルで、ファイルの命名や特定の拡張子などに関する要件は一切ありません。使用可能なプロパティは、セクション「config-file での Auto Data Balancer プロパティの指定」に記載されています。
- 型: string
- デフォルト: 空の文字列
- 重要度: 低
command-config ファイルを使用した Kafka への通信¶
リバランサーによる Kafka クラスターへの接続と通信の方法に関するプロパティを指定するテキストファイルを作成できます。これは --bootstrap-server
コマンドオプションと併用する必要があり、セキュアな接続のコンテキストなどの一部のケースで必須です。
使用可能なプロパティは、セクション「AdminClient の構成」に記載されています。
前述のコマンドフラグリファレンスの「- -command-config」も参照してください。
config-file での Auto Data Balancer プロパティの指定¶
以下の設定は、confluent-rebalancer
コマンドの --config-file
オプションの引数として Auto Data Balancer に渡されるプロパティファイルで指定する必要があります。前述のコマンドフラグリファレンスの「- -config-file」を参照してください。
リバランサーツールをテストするには、--bootstrap-server
を指定して、Kafka クラスターに接続する必要があります。confluent.license
が必要になるのは 30 日後ですが、ライセンスクライアントがクラスターと通信するように構成する必要はあります。次の構成がサポートされます。
confluent.license
Confluent では、各契約者にライセンスキーを発行します。ライセンスキーは、コピーアンドペーストできる短いテキストです。ライセンスキーがない場合、Auto Data Balancer を 30 日間試用できます。既にご契約されていてライセンスキーをお持ちでない場合は、Confluent サポート(support@confluent.io)にお問い合わせください。これは
--config-file
で指定する必要があります。- 型: string
- 指定可能な値 : Confluent Platform ライセンス
- 重要度: 高
リバランサークライアントを構成して、confluent.license.
で始まる構成名で Kafka クラスターのライセンスを登録(有効化)する必要があります。たとえば、SASL_SSL を使用するようにライセンスクライアントを構成するには、次のとおり指定します。
confluent.license.security.protocol=SASL_SSL
confluent.license.ssl.truststore.location=/var/private/ssl/truststore.jks
confluent.license.ssl.truststore.password=<ssl-truststore-password>
confluent.license.ssl.keystore.location=/var/private/ssl/keystore.jks
confluent.license.ssl.keystore.password=<ssl-keystore-password>
confluent.license.ssl.key.password=<ssl-key-password>
confluent.license.sasl.mechanism=GSSAPI
confluent.license.sasl.kerberos.service.name=kafka
confluent.license.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \
useKeyTab=true \
storeKey=true \
keyTab="/path/to/kerberos/kafka.user.keytab" principal="kafka@KAFKA.SECURE";
ちなみに
Confluent Platform のライセンス情報全般については、「Confluent Platform ライセンス」を参照してください。
confluent.rebalancer.metrics.collection.timeout.ms
リバランサーがメトリクスを収集する最大時間です。タイムアウト時間が経過するまでに収集が成功しない場合、バランス調整コマンドは失敗します。
- 型: int
- デフォルト: 60000
- 重要度: 低
confluent.rebalancer.metrics.topic
Metrics Reporter がそのメトリクスをパブリッシュするトピック。
- 型: string
- デフォルト: "_confluent-metrics"
- 重要度: 低
confluent.rebalancer.min.free.volume.space.percentage
log.dir
ボリュームには、少なくとも指定した割合の空き領域が、バランス調整中とバランス調整後に維持されます。たとえば、合計のボリューム領域が 100 GB でこの構成が 20 に定義されている場合、リバランサーはバランス調整中に最大 80 GB の領域を使用します。これは Confluent 3.2 のみ(リバランサーとブローカー両方)で、クラスター内のすべてのブローカーごとに単一の log.dir がある場合に限ってサポートされます。この属性がサポートされているバージョンでは、デフォルトで有効です。それ以外では無効です。- 型: double
- デフォルト: 20.0
- 指定可能な値: [0,...,100]
- 重要度: 低
メトリクスデータを取得するために使用するコンシューマーを構成する場合は、コンシューマー構成名に confluent.rebalancer.metrics.
のプレフィックスを付けることで構成できます。たとえば、SASL_SSL を使用するようにコンシューマーを構成するには、次のとおり指定します。
confluent.rebalancer.metrics.security.protocol=SASL_SSL
confluent.rebalancer.metrics.ssl.truststore.location=/var/private/ssl/truststore.jks
confluent.rebalancer.metrics.ssl.truststore.password=<ssl-truststore-password>
confluent.rebalancer.metrics.ssl.keystore.location=/var/private/ssl/keystore.jks
confluent.rebalancer.metrics.ssl.keystore.password=<ssl-keystore-password>
confluent.rebalancer.metrics.ssl.key.password=<ssl-key-password>
confluent.rebalancer.metrics.sasl.mechanism=GSSAPI
confluent.rebalancer.metrics.sasl.kerberos.service.name=kafka
confluent.rebalancer.metrics.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \
useKeyTab=true \
storeKey=true \
keyTab="/path/to/kerberos/kafka.user.keytab" principal="kafka@KAFKA.SECURE";
例: セキュリティ、メトリクス、およびライセンスの構成を使用したリバランサーの実行¶
このセクションでは、Auto Data Balancer がセキュアな Kafka クラスターに接続するための構成例を示します。Auto Data Balancer は、メトリクスデータの取得にはコンシューマーを、ライセンスの確認にはライセンスクライアントを、クラスターのバランス調整には管理クライアントを使用します。
この例では、SASL_SSL が有効になっている Kafka クラスターに接続する方法を示しています。SASL メカニズムは、GSSAPI です。
adb.properties
という構成ファイルを作成します。この構成ファイルは、リバランサーの実行時に--config-file
フラグと--command-config
フラグを使用して渡されます。adb.properties
ファイルに以下のパラメーターを追加します。# Metrics client configuration confluent.rebalancer.metrics.security.protocol=SASL_SSL confluent.rebalancer.metrics.ssl.truststore.location=/var/private/ssl/truststore.jks confluent.rebalancer.metrics.ssl.truststore.password=xxxxxxx confluent.rebalancer.metrics.sasl.mechanism=GSSAPI confluent.rebalancer.metrics.sasl.kerberos.service.name=kafka confluent.rebalancer.metrics.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \ useKeyTab=true storeKey=true keyTab="/path/to/kerberos/kafka.user.keytab" principal="kafka@KAFKA.SECURE"; # License client configuration confluent.license=<enter-your-license> confluent.license.security.protocol=SASL_SSL confluent.license.ssl.truststore.location=/var/private/ssl/truststore.jks confluent.license.ssl.truststore.password=xxxxxxx confluent.license.sasl.mechanism=GSSAPI confluent.license.sasl.kerberos.service.name=kafka confluent.license.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \ useKeyTab=true storeKey=true keyTab="/path/to/kerberos/kafka.user.keytab" principal="kafka@KAFKA.SECURE"; # Admin client configuration security.protocol=SASL_SSL ssl.truststore.location=/var/private/ssl/truststore.jks ssl.truststore.password=xxxxxxx sasl.mechanism=GSSAPI sasl.kerberos.service.name=kafka sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \ useKeyTab=true storeKey=true keyTab="/path/to/kerberos/kafka.user.keytab" principal="kafka@KAFKA.SECURE";
ちなみに
別の方法として、構成ファイルからすべての
*.sasl.jaas.config
を削除し、代わりに JAAS ファイルで情報を渡すこともできます。JAAS ファイルの作成後、リバランサーを実行する前にこのファイルをエクスポートする必要があります。詳細については、「JAAS の構成」を参照してください。export REBALANCER_OPTS="- Djava.security.auth.login.config=</path/to/jaas.conf>"
作成したプロパティファイルを
--config-file
(メトリクスとライセンス情報を読み取る)と--command-config
(管理クライアントのプロパティを読み取る)の両方の引数として使用して、Auto Data Balancer を実行します。confluent-rebalancer execute \ --metrics-bootstrap-server <broker>:<port> --config-file adb.properties \ --bootstrap-server <broker>:<port> --command-config adb.properties
例: 個別のメトリクスクラスターを使用したリバランサーの実行¶
Auto Data Balancer のバランス調整計画を策定するには、Confluent Metrics Reporter が必要です。例として、専用のメトリクスクラスターを参照する方法を示します。この例では、メトリクスクラスターとリバランサークラスターの両方が双方向 SSL(mTLS)で保護されています。
メトリクスクラスターとライセンスクラスターに関する情報を指定します。
個別のメトリクスクラスター上のメトリクスを計算するには、
--config-file
でメトリクスクラスターの接続情報を指定する必要があります。この構成には、ライセンスクラスターの接続情報(bootstrap-server)も含める必要があります。たとえば、この情報をmetrics-and-license.properties
というファイルに入力できます。confluent.rebalancer.metrics.security.protocol=SSL confluent.rebalancer.metrics.ssl.truststore.location=/etc/kafka/secrets/metrics-truststore.jks confluent.rebalancer.metrics.ssl.truststore.password=metrics-password confluent.rebalancer.metrics.ssl.keystore.location=/etc/kafka/secrets/metrics-keystore.jks confluent.rebalancer.metrics.ssl.keystore.password=metrics-password confluent.license=<your-confluent-license> confluent.license.security.protocol=SSL confluent.license.ssl.truststore.location=/etc/kafka/secrets/truststore.jks confluent.license.ssl.truststore.password=password confluent.license.ssl.keystore.location=etc/kafka/secrets/keystore.jks confluent.license.ssl.keystore.password=password
管理クライアントのセキュリティ設定を指定します。
--command-config
ファイルを使用して、バランス調整のために bootstrap-server クラスターに接続する管理クライアントのセキュリティ設定を指定します。たとえば、これらの設定をadmin.properties
というファイルに入力できます。security.protocol=SSL ssl.truststore.location=/etc/kafka/secrets/truststore.jks ssl.truststore.password=password ssl.keystore.location=/etc/kafka/secrets/keystore.jks ssl.keystore.password=password ssl.enabled.protocols=TLSv1.2 request.timeout.ms=60000
作成したプロパティファイルを使用して Auto Data Balancer を実行します。
confluent-rebalancer execute \ --metrics-bootstrap-server <metrics-broker>:<port> --config-file metrics-and-license.properties \ --bootstrap-server <broker-to-rebalance>:<port> --command-config admin.properties