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 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스와 함께 생성된 다음 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. loggers 속성에 추가하여 특정 클래스 또는 로거의 로그 수준을 설정할 수도 있습니다.
인라인 로깅
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
logger.exec.level: TRACE
logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer
logger.go.level: DEBUG
# ...
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 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.