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 です。

  1. 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>"
    
  2. 作成したプロパティファイルを --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)で保護されています。

  1. メトリクスクラスターとライセンスクラスターに関する情報を指定します。

    個別のメトリクスクラスター上のメトリクスを計算するには、--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
    
  2. 管理クライアントのセキュリティ設定を指定します。

    --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
    
  3. 作成したプロパティファイルを使用して 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