13.4. Cruise Control の設定および起動
Cruise Control が使用するプロパティーを設定し、kafka-cruise-control-start.sh
スクリプトを使用して Cruise Control サーバーを起動します。サーバーは、Kafka クラスター全体の単一のマシンでホストされます。
Cruise Control の起動時に 3 つのトピックが自動作成されます。詳細は、自動作成されたトピック を参照してください。
前提条件
-
Red Hat Enterprise Linux に
kafka
ユーザーとしてログインしている。 - Cruise Control をダウンロード している。
- Cruise Control Metrics Reporter をデプロイ した。
手順
-
Cruise Control プロパティーファイル (
/opt/cruise-control/config/cruisecontrol.properties
) を編集します。 以下の設定例のように、プロパティーを設定します。
# 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 main 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 #Set failure detection to true kafka.broker.failure.detection.enable=true 8
- 1
- Kafka ブローカーのホストおよびポート番号 (常にポート 9092)。
- 2
- Kafka メトリックサンプルストアトピックのレプリケーション係数。シングルノードの Kafka クラスターで Cruise Control を評価する場合は、このプロパティーを 1 に設定します。実稼働環境で使用する場合は、このプロパティーを 2 以上に設定します。
- 3
- ブローカーリソースの最大容量制限を設定する設定ファイル。Kafka デプロイメント設定に適用されるファイルを使用します。詳細は、容量の設定 を参照してください。
- 4
- 完全修飾ドメイン名 (FQDN) を使用したデフォルトの最適化ゴールのコンマ区切りリスト。多くの主要な最適化ゴール (5 を参照) は、デフォルトの最適化ゴールとしてすでに設定されています。必要に応じて、目標を追加または削除できます。詳細は、「最適化ゴールの概要」 を参照してください。
- 5
- FQDN を使用した、主な最適化ゴールのコンマ区切りリスト。最適化プロポーザルの生成にゴールが使用されないように完全に除外するには、それらをリストから削除します。詳細は、「最適化ゴールの概要」 を参照してください。
- 6
- FQDN を使用したハードゴールのコンマ区切りリスト。主な最適化ゴールのうち 7 つは、すでに厳しい目標として設定されています。必要に応じて、目標を追加または削除できます。詳細は、「最適化ゴールの概要」 を参照してください。
- 7
- デフォルトの最適化ゴールから生成される、キャッシュされた最適化プロポーザルを更新する間隔 (ミリ秒単位)。詳細は、「最適化プロポーザルの概要」 を参照してください。
- 8
- Cruise Control が Kafka API を使用してブローカーの障害を検出できるようにします。
Cruise Control サーバーを起動します。デフォルトでは、サーバーはポート 9092 で起動します。オプションで別のポートを指定します。
cd /opt/cruise-control/ ./kafka-cruise-control-start.sh config/cruisecontrol.properties <port_number>
Cruise Control が実行していることを確認するには、Cruise Control サーバーの
/state
エンドポイントに GET リクエストを送信します。curl -X GET 'http://<cc_host>:<cc_port>/kafkacruisecontrol/state'
自動作成されたトピック
以下の表は、Cruise Control の起動時に自動的に作成される 3 つのトピックを表しています。このトピックは、Cruise Control が適切に動作するために必要であるため、削除または変更しないでください。
自動作成されたトピック | 作成元 | 機能 |
---|---|---|
| Cruise Control Metrics Reporter | Metrics Reporter からの raw メトリクスを各 Kafka ブローカーに格納します。 |
| Cruise Control | 各パーティションの派生されたメトリックを格納します。これは Metric Sample Aggregator によって作成されます。 |
| Cruise Control | クラスターワークロードモデル の作成に使用されるメトリクスサンプルを格納します。 |
自動作成されたトピックでログコンパクションが 無効 になっていることを確認するには、「Cruise Control Metrics Reporter のデプロイ」 の説明に従って Cruise Control Metrics Reporter を設定するようにしてください。ログコンパクションは、Cruise Control が必要とするレコードを削除し、適切に動作しないようにすることができます。