55.6. logging
Cruise Control には独自の設定可能なロガーがあります。
-
rootLogger.level
Cruise Control では Apache log4j2
ロガー実装が使用されます。
logging
プロパティーを使用してロガーおよびロガーレベルを設定します。
ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name
プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties
を使用して記述されます。logging.valueFrom.configMapKeyRef.name
および logging.valueFrom.configMapKeyRef.key
プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。
ここで、inline
および external
ロギングの例を示します。inline
ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。
inline ロギング
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka # ... spec: cruiseControl: # ... logging: type: inline loggers: rootLogger.level: INFO logger.exec.name: com.linkedin.kafka.cruisecontrol.executor.Executor 1 logger.exec.level: TRACE 2 logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer 3 logger.go.level: DEBUG 4 # ...
Cruise Control の問題を調査する場合、通常は rootLogger
を DEBUG
に変更して、より詳細なログを取得するだけで十分です。ただし、ログレベルを DEBUG
に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があることに注意してください。
外部ロギング
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka # ... spec: cruiseControl: # ... logging: type: external valueFrom: configMapKeyRef: name: customConfigMap key: cruise-control-log4j.properties # ...
ガベージコレクター (GC)
ガベッジコレクターのロギングは jvmOptions
プロパティーを使用して 有効 (または無効) にすることもできます。