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에 대한 로깅 구성에 대한 자세한 내용은 다음 섹션을 참조하십시오.

2.9.2. 로깅을 위한 ConfigMap 생성

ConfigMap을 사용하여 로깅 속성을 정의하려면 ConfigMap을 생성한 다음 리소스 사양에서 로깅 정의의 일부로 참조합니다.

ConfigMap에는 적절한 로깅 구성이 포함되어야 합니다.

  • Kafka 구성 요소, ZooKeeper 및 Kafka Bridge에 대한 log4j.properties
  • Topic Operator 및 User Operator의 log4j2.properties

구성은 이러한 속성에 배치해야 합니다.

이 프로세스에서 ConfigMap은 Kafka 리소스에 대한 루트 로거를 정의합니다.

절차

  1. 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"
    # ...
  2. 리소스 사양에 외부 로깅을 정의하고 logging.valueFrom.configMapKeyRef.name 을 ConfigMap의 이름으로 설정하고 logging.valueFrom.configMapKeyRef.key 를 이 ConfigMap의 키로 설정합니다.

    spec:
      # ...
      logging:
        type: external
        valueFrom:
          configMapKeyRef:
            name: logging-configmap
            key: log4j.properties
  3. 리소스를 생성하거나 업데이트합니다.

    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 
1

appender.console.filter.filter1.onMatch=ACCEPT 
2

appender.console.filter.filter1.onMismatch=DENY 
3

appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster) 
4

1
MarkerFilter 유형은 필터링을 위해 지정된 마커를 비교합니다.
2
마커가 일치하는 경우 onMatch 속성은 로그를 허용합니다.
3
마커가 일치하지 않는 경우 onMismatch 속성은 로그를 거부합니다.
4
필터링에 사용되는 마커는 KIND(NAMESPACE/NAME-OF-RESOURCE) 형식으로 되어 있습니다.

하나 이상의 필터를 만들 수 있습니다. 여기에서는 두 개의 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)을 업데이트합니다.

절차

  1. 050-ConfigMap-strimzi-cluster-operator.yaml 파일을 업데이트하여 ConfigMap에 필터 속성을 추가합니다.

    이 예에서 filter 속성은 my-kafka-cluster Kafka 클러스터에 대해서만 로그를 반환합니다.

    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-operator
  2. ConfigMap을 직접 편집하지 않고 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에 사용됩니다.

절차

  1. 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)
    # ...
  2. 리소스 사양에 외부 로깅을 정의하고 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
  3. Cluster Operator를 배포하여 변경 사항을 적용합니다.
create -f install/cluster-operator -n my-cluster-operator-namespace
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동