13.8. Cruise Control の設定
Cruise Control の設定は、config/cruisecontrol.properties
ファイルに含まれています。ファイルは、次の型のプロパティーで構成されています。
- 文字列
- 数値
- ブール値
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 の Populating the Capacity Configuration File を参照してください。
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
トピックの現在の設定を取得します。opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --entity-type topics --entity-name __CruiseControlMetrics --describe
トピック設定でログクリーンアップポリシーを変更します。
/opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --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 サーバーを再起動する必要があります。