2.9. 로깅 구성
Kafka 구성 요소 및 AMQ Streams Operator의 사용자 정의 리소스에서 로깅 수준을 구성합니다. 사용자 정의 리소스의 spec.logging 속성에 직접 로깅 수준을 지정할 수 있습니다. 또는 configMapKeyRef 속성을 사용하여 사용자 정의 리소스에서 참조되는 ConfigMap에서 로깅 속성을 정의할 수 있습니다.
ConfigMap을 사용할 때의 이점은 로깅 속성이 한 위치에서 유지 관리되고 둘 이상의 리소스에서 액세스할 수 있다는 점입니다. 둘 이상의 리소스에 ConfigMap을 재사용할 수도 있습니다. ConfigMap을 사용하여 AMQ Streams Operator에 로거를 지정하는 경우 로깅 사양을 추가하여 필터를 추가할 수도 있습니다.
로깅 사양에 로깅 유형을 지정합니다.
-
로깅 수준을 직접 지정할 때
인라인 -
ConfigMap을 참조할 때
외부
인라인 로깅 구성 예
spec:
# ...
logging:
type: inline
loggers:
kafka.root.logger.level: INFO
외부 로깅 구성의 예
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: my-config-map
key: my-config-map-key
ConfigMap의 이름과 키 값은 필수입니다. 이름 또는 키가 설정되지 않은 경우 기본 로깅이 사용됩니다.
2.9.1. Kafka 구성 요소 및 Operator의 로깅 옵션 링크 복사링크가 클립보드에 복사되었습니다!
특정 Kafka 구성 요소 또는 Operator에 대한 로깅 구성에 대한 자세한 내용은 다음 섹션을 참조하십시오.
Kafka 구성 요소 로깅
Operator 로깅
2.9.2. 로깅을 위한 ConfigMap 생성 링크 복사링크가 클립보드에 복사되었습니다!
ConfigMap을 사용하여 로깅 속성을 정의하려면 ConfigMap을 생성한 다음 리소스 사양에서 로깅 정의의 일부로 참조합니다.
ConfigMap에는 적절한 로깅 구성이 포함되어야 합니다.
-
Kafka 구성 요소, ZooKeeper 및 Kafka Bridge에 대한
log4j.properties -
Topic Operator 및 User Operator의
log4j2.properties
구성은 이러한 속성에 배치해야 합니다.
이 프로세스에서 ConfigMap은 Kafka 리소스에 대한 루트 로거를 정의합니다.
절차
ConfigMap을 생성합니다.
ConfigMap을 YAML 파일로 또는 속성 파일에서 생성할 수 있습니다.
Kafka에 대한 루트 로거 정의가 있는 ConfigMap 예:
kind: ConfigMap apiVersion: v1 metadata: name: logging-configmap data: log4j.properties: kafka.root.logger.level="INFO"properties 파일을 사용하는 경우 명령줄에 파일을 지정합니다.
oc create configmap logging-configmap --from-file=log4j.properties속성 파일은 로깅 구성을 정의합니다.
# Define the logger kafka.root.logger.level="INFO" # ...리소스
사양에외부 로깅을 정의하고logging.valueFrom.configMapKeyRef.name을 ConfigMap의 이름으로 설정하고logging.valueFrom.configMapKeyRef.key를 이 ConfigMap의 키로 설정합니다.spec: # ... logging: type: external valueFrom: configMapKeyRef: name: logging-configmap key: log4j.properties리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
2.9.3. Operator에 로깅 필터 추가 링크 복사링크가 클립보드에 복사되었습니다!
ConfigMap을 사용하여 AMQ Streams Operator의 (log4j2) 로깅 수준을 구성하는 경우 로깅 필터를 정의하여 로그에 반환된 항목을 제한할 수도 있습니다.
로깅 필터는 많은 로깅 메시지가 있을 때 유용합니다. 로거의 로그 수준을 DEBUG(rootLogger.level="DEBUG")로 설정한다고 가정합니다. 로깅 필터는 해당 수준에서 로거에 대해 반환된 로그 수를 줄이므로 특정 리소스에 집중할 수 있습니다. 필터를 설정하면 필터와 일치하는 로그 메시지만 기록됩니다.
필터는 마커 를 사용하여 로그에 포함할 항목을 지정합니다. 마커의 종류, 네임스페이스 및 이름을 지정합니다. 예를 들어 Kafka 클러스터가 실패하는 경우 kind를 Kafka 로 지정하여 로그를 분리하고 실패한 클러스터의 네임스페이스와 이름을 사용할 수 있습니다.
이 예에서는 my-kafka-cluster 라는 Kafka 클러스터에 대한 마커 필터를 보여줍니다.
기본 로깅 필터 구성
rootLogger.level="INFO"
appender.console.filter.filter1.type=MarkerFilter
appender.console.filter.filter1.onMatch=ACCEPT
appender.console.filter.filter1.onMismatch=DENY
appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)
하나 이상의 필터를 만들 수 있습니다. 여기에서는 두 개의 Kafka 클러스터에 대해 로그가 필터링됩니다.
다중 로깅 필터 구성
appender.console.filter.filter1.type=MarkerFilter
appender.console.filter.filter1.onMatch=ACCEPT
appender.console.filter.filter1.onMismatch=DENY
appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster-1)
appender.console.filter.filter2.type=MarkerFilter
appender.console.filter.filter2.onMatch=ACCEPT
appender.console.filter.filter2.onMismatch=DENY
appender.console.filter.filter2.marker=Kafka(my-namespace/my-kafka-cluster-2)
Cluster Operator에 필터 추가
Cluster Operator에 필터를 추가하려면 로깅 ConfigMap YAML 파일(install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml)을 업데이트합니다.
절차
050-ConfigMap-strimzi-cluster-operator.yaml파일을 업데이트하여 ConfigMap에 필터 속성을 추가합니다.이 예에서 filter 속성은
my-kafka-clusterKafka 클러스터에 대해서만 로그를 반환합니다.kind: ConfigMap apiVersion: v1 metadata: name: strimzi-cluster-operator data: log4j2.properties: #... appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)또는
ConfigMap을 직접 편집합니다.oc edit configmap strimzi-cluster-operatorConfigMap을 직접 편집하지 않고 YAML 파일을 업데이트한 경우
ConfigMap을 배포하여 변경 사항을 적용합니다.oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
Topic Operator 또는 User Operator에 필터 추가
Topic Operator 또는 User Operator에 필터를 추가하려면 로깅 ConfigMap을 생성하거나 편집합니다.
이 절차에서는 Topic Operator에 대한 필터를 사용하여 로깅 ConfigMap을 생성합니다. 동일한 접근 방식이 User Operator에 사용됩니다.
절차
ConfigMap을 생성합니다.
ConfigMap을 YAML 파일로 또는 속성 파일에서 생성할 수 있습니다.
이 예에서 필터 속성은
my-topic항목에 대해서만 로그를 반환합니다.kind: ConfigMap apiVersion: v1 metadata: name: logging-configmap data: log4j2.properties: rootLogger.level="INFO" appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=KafkaTopic(my-namespace/my-topic)properties 파일을 사용하는 경우 명령줄에 파일을 지정합니다.
oc create configmap logging-configmap --from-file=log4j2.properties속성 파일은 로깅 구성을 정의합니다.
# Define the logger rootLogger.level="INFO" # Set the filters appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=KafkaTopic(my-namespace/my-topic) # ...리소스
사양에외부 로깅을 정의하고logging.valueFrom.configMapKeyRef.name을 ConfigMap의 이름으로 설정하고logging.valueFrom.configMapKeyRef.key를 이 ConfigMap의 키로 설정합니다.Topic Operator의 경우
Kafka리소스의topicOperator구성에 로깅이 지정됩니다.spec: # ... entityOperator: topicOperator: logging: type: external valueFrom: configMapKeyRef: name: logging-configmap key: log4j2.properties- Cluster Operator를 배포하여 변경 사항을 적용합니다.
create -f install/cluster-operator -n my-cluster-operator-namespace