15.8. Cruise Control の設定
config/cruisecontrol.properties
ファイルには、Cruise Control の設定が含まれます。ファイルは、以下のいずれかのタイプのプロパティーで構成されます。
- 文字列
- 数値
- ブール値
Cruise Control Wiki の Configurations セクションに記載されているすべてのプロパティーを指定および設定できます。
容量の設定
Cruise Control は 容量制限 を使用して、特定のリソースベースの最適化ゴールが破損しているか判断します。これらのリソースベースのゴールがハードゴールとして設定され、破損すると、最適化に失敗します。これにより、最適化プロポーザルの生成に最適化が使用されないようにします。
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
: 1 秒あたり KB でのインバウンドネットワークスループット -
NW_OUT
: 1 秒あたり 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
トピックの現在の設定を取得します。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 サーバーを再起動する必要があります。