14.8. Cruise Control の設定
config/cruisecontrol.properties
ファイルには、Cruise Control の設定が含まれます。ファイルは、以下のいずれかのタイプでプロパティーで構成されます。
- 文字列
- 数値
- ブール値
Cruise Control Wiki の Configurations セクションに記載されているすべてのプロパティーを指定および設定できます。
容量の設定
Cruise Control は 容量制限 を使用して、特定のリソースベースの最適化ゴールが破損しているか判断します。1 つ以上のリソースベースのゴールがハードゴールとして設定され、破損している場合は、試行された最適化に失敗します。これにより、最適化プロポーザルの生成に最適化が使用されなくなります。
Kafka ブローカーリソースの容量制限は、cruise-control/config
の 3 つの .json
ファイルのいずれかで指定します。
-
capacityJBOD.json
: JBOD Kafka デプロイメント(デフォルトファイル)で使用されます。 -
capacity.json
: 各ブローカーに同じ CPU コアを持つ非JBOD Kafka デプロイメントで使用します。 -
capacityCores.json
: 各ブローカーに CPU コアの数が異なる、JBOD 以外の Kafka デプロイメントで使用します。
cruisecontrol.properties
の capacity.config.file
プロパティーにファイルを設定します。選択されたファイルはブローカーの容量解決に使用されます。以下に例を示します。
capacity.config.file=config/capacityJBOD.json
容量制限は、記述された単位で以下のブローカーリソースに設定できます。
-
DISK
: ディスクストレージ(MB 単位) -
CPU
: パーセンテージ(0-100)または多数のコアとしての CPU 使用率 -
NW_IN
: インバウンドネットワークスループット(KB/秒) -
NW_OUT
: アウトバウンドネットワークスループット(KB/秒)
Cruise Control によって監視されるすべてのブローカーに同じ容量制限を適用するには、ブローカー ID -1
の容量制限を設定します。個別のブローカーに異なる容量制限を設定するには、ブローカー ID とその容量設定を指定します。
容量制限の設定例
{ "brokerCapacities":[ { "brokerId": "-1", "capacity": { "DISK": "100000", "CPU": "100", "NW_IN": "10000", "NW_OUT": "10000" }, "doc": "This is the default capacity. Capacity unit used for disk is in MB, cpu is in percentage, network throughput is in KB." }, { "brokerId": "0", "capacity": { "DISK": "500000", "CPU": "100", "NW_IN": "50000", "NW_OUT": "50000" }, "doc": "This overrides the capacity for broker 0." } ] }
詳細は、Cruise Control Wiki の「容量設定ファイルの作成 」を参照してください。
Cruise Control Metrics トピックのログクリーンアップポリシー
自動作成された __CruiseControlMetrics
トピック (自動作成されるトピックを参照)には、COMPACT
ではなく DELETE
のログクリーンアップポリシーが設定されることが重要です。それ以外の場合は、Cruise Control で必要なレコードが削除されることがあります。
「Cruise Control Metrics Reporter のデプロイ」 で説明されているように、Kafka 設定ファイルに以下のオプションを設定すると、COMPACT
ログクリーンアップポリシーが適切に設定されるようにします。
-
cruise.control.metrics.topic.auto.create=true
-
cruise.control.metrics.topic.num.partitions=1
-
cruise.control.metrics.topic.replication.factor=1
Cruise Control Metrics Reporter(cruise.control.metrics.topic.auto.create=false
) でトピックの自動作成が無効になっているが、Kafka クラスターで有効になっている場合、__CruiseControlMetrics
トピックは引き続きブローカーによって自動的に作成されます。このような場合には、kafka-configs.sh
ツールを使用して、__CruiseControlMetrics
トピックのログクリーンアップポリシーを DELETE
に変更する必要があります。
__CruiseControlMetrics
トピックの現在の設定を取得します。bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --describe
トピック設定でログクリーンアップポリシーを変更します。
bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --alter --add-config cleanup.policy=delete
Cruise Control Metrics Reporter と Kafka クラスターの両方でトピックの自動作成が無効になっている場合、__CruiseControlMetrics
トピックを手動で作成してから、kafka-configs.sh
ツールを使用して DELETE
ログクリーンアップポリシーを使用するように設定する必要があります。
詳細は、「トピック設定の変更」 を参照してください。
ロギングの設定
Cruise Control はすべてのサーバーロギングに log4j1
を使用します。デフォルト設定を変更するには、/opt/cruise-control/config/log4j.properties
の log4j.properties
ファイルを編集します。
変更を有効にするには、Cruise Control サーバーを再起動する必要があります。