15.4. Cruise Control の設定および起動

Cruise Control が使用するプロパティーを設定し、cruise-control-start.sh スクリプトを使用して Cruise Control サーバーを起動します。サーバーは、Kafka クラスター全体の単一のマシンでホストされます。

Cruise Control の起動時に 3 つのトピックが自動作成されます。詳細は、「自動作成されたトピック」 を参照してください。

前提条件

  • Red Hat Enterprise Linux に kafka ユーザーとしてログインしている。
  • Cruise Control アーカイブをダウンロードしている。
  • Cruise Control Metrics Reporter をデプロイしている。

手順

  1. Cruise Control プロパティーファイル (/opt/cruise-control/config/cruisecontrol.properties) を編集します。
  2. 以下の設定例のように、プロパティーを設定します。

    # The Kafka cluster to control.
    bootstrap.servers=localhost:9092 1
    
    # The replication factor of Kafka metric sample store topic
    sample.store.topic.replication.factor=2 2
    
    # The configuration for the BrokerCapacityConfigFileResolver (supports JBOD, non-JBOD, and heterogeneous CPU core capacities)
    #capacity.config.file=config/capacity.json
    #capacity.config.file=config/capacityCores.json
    capacity.config.file=config/capacityJBOD.json 3
    
    # The list of goals to optimize the Kafka cluster for with pre-computed proposals
    default.goals={List of default optimization goals} 4
    
    # The list of supported goals
    goals={list of master optimization goals} 5
    
    # The list of supported hard goals
    hard.goals={List of hard goals} 6
    
    # How often should the cached proposal be expired and recalculated if necessary
    proposal.expiration.ms=60000 7
    
    # The zookeeper connect of the Kafka cluster
    zookeeper.connect=localhost:2181 8
    1
    Kafka ブローカーのホストおよびポート番号 (常にポート 9092)。
    2
    Kafka メトリクスサンプルストアトピックのレプリケーション係数。単一ノードの Kafka および ZooKeeper クラスターで Cruise Control を評価する場合は、このプロパティーを 1 に設定します。実稼働環境で使用する場合は、このプロパティーを 2 以上に設定します。
    3
    ブローカーリソースの最大容量制限を設定する設定ファイル。Kafka デプロイメント設定に適用されるファイルを使用します。詳細は、「容量の設定」 を参照してください。
    4
    完全修飾ドメイン名(FQDN)を使用したデフォルトの最適化ゴールのコンマ区切りリスト。マスター最適化ゴール(5 を参照)がデフォルトの最適化ゴールとしてすでに設定されています。必要に応じてゴールを追加または削除できます。詳細は、「「最適化ゴールの概要」」を参照してください。
    5
    FQDN を使用したマスター最適化ゴールのコンマ区切りリスト。最適化プロポーザルの生成にゴールが使用されないように完全に除外するには、それらをリストから削除します。詳細は、「「最適化ゴールの概要」」を参照してください。
    6
    FQDN を使用したハードゴールのコンマ区切りリスト。マスター最適化ゴールの 6 個は、すでにハードゴールとして設定されています。必要に応じてゴールを追加または削除できます。詳細は、「「最適化ゴールの概要」」を参照してください。
    7
    デフォルトの最適化ゴールから生成される、キャッシュされた最適化プロポーザルを更新する間隔 (ミリ秒単位)。詳細は、「最適化プロポーザルの概要」 を参照してください。
    8
    ZooKeeper 接続のホストおよびポート番号 (常にポート 2181)。
  3. Cruise Control サーバーを起動します。デフォルトでは、サーバーはポート 9092 で起動します。オプションで別のポートを指定します。

    cd /opt/cruise-control/
    ./bin/cruise-control-start.sh config/cruisecontrol.properties PORT
  4. Cruise Control が実行されていることを確認するには、Cruise Control サーバーの /state エンドポイントに GET リクエストを送信します。

    curl 'http://HOST:PORT/kafkacruisecontrol/state'

自動作成されたトピック

以下の表は、Cruise Control の起動時に自動的に作成される 3 つのトピックを表しています。これらのトピックは、Cruise Control が適切に動作するために必要であるため、削除または変更しないでください。

表15.1 自動作成されたトピック

自動作成されたトピック作成元機能

__CruiseControlMetrics

Cruise Control Metrics Reporter

Metrics Reporter からの raw メトリクスを各 Kafka ブローカーに格納します。

__KafkaCruiseControlPartitionMetricSamples

Cruise Control

各パーティションの派生されたメトリクスを格納します。これらは Metric Sample Aggregator によって作成されます。

__KafkaCruiseControlModelTrainingSamples

Cruise Control

クラスターワークロードモデル の作成に使用されるメトリクスサンプルを格納します。

自動作成されたトピックでログコンパクションが 無効 になっていることを確認するには、「Cruise Control Metrics Reporter のデプロイ」 の説明に従って Cruise Control Metrics Reporter を設定するようにしてください。ログコンパクションは、Cruise Control が必要とするレコードを削除し、適切に動作しないようにすることができます。