9.14. 로깅 수준 구성


Kafka 구성 요소 및 AMQ Streams Operator의 사용자 정의 리소스에서 로깅 수준을 구성합니다. 사용자 정의 리소스의 spec.logging 속성에서 직접 로깅 수준을 지정할 수 있습니다. 또는 configMapKeyRef 속성을 사용하여 사용자 정의 리소스에서 참조되는 ConfigMap에서 로깅 속성을 정의할 수 있습니다.

ConfigMap을 사용하면 로깅 속성이 한 곳에서 유지 관리되고 두 개 이상의 리소스에서 액세스할 수 있다는 이점이 있습니다. 둘 이상의 리소스에 ConfigMap을 재사용할 수도 있습니다. ConfigMap을 사용하여 AMQ Streams Operator에 대한 로거를 지정하는 경우 로깅 사양을 추가하여 필터를 추가할 수도 있습니다.

로깅 사양에 로깅 유형을 지정합니다.

  • 로깅 수준을 직접 지정할 때 인라인
  • ConfigMap을 참조할 때 외부

인라인 로깅 구성 예

# ...
logging:
  type: inline
  loggers:
    kafka.root.logger.level: INFO
# ...
Copy to Clipboard Toggle word wrap

외부 로깅 구성 예

# ...
logging:
  type: external
  valueFrom:
    configMapKeyRef:
      name: my-config-map
      key: my-config-map-key
# ...
Copy to Clipboard Toggle word wrap

ConfigMap의 이름 값은 필수입니다. 이름 또는 키가 설정되지 않은 경우 기본 로깅이 사용됩니다.

9.14.1. Kafka 구성 요소 및 Operator의 로깅 옵션

특정 Kafka 구성 요소 또는 Operator의 로깅 구성에 대한 자세한 내용은 다음 섹션을 참조하십시오.

9.14.2. 로깅을 위한 ConfigMap 생성

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

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

  • Kafka 구성 요소, Zoo Cryostat 및 Kafka 브리지의 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"
    Copy to Clipboard Toggle word wrap

    속성 파일을 사용하는 경우 명령줄에서 파일을 지정합니다.

    oc create configmap logging-configmap --from-file=log4j.properties
    Copy to Clipboard Toggle word wrap

    속성 파일은 로깅 구성을 정의합니다.

    # Define the logger
    kafka.root.logger.level="INFO"
    # ...
    Copy to Clipboard Toggle word wrap
  2. 리소스 사양에 외부 로깅을 정의하고 logging.valueFrom.configMapKeyRef.name 을 ConfigMap의 이름으로 설정하고 logging.valueFrom.configMapKeyRef.key 를 이 ConfigMap의 키로 설정합니다.

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

    oc apply -f <kafka_configuration_file>
    Copy to Clipboard Toggle word wrap

9.14.3. Cluster Operator 로깅 구성

클러스터 Operator 로깅은 strimzi-cluster-operator 라는 ConfigMap 을 통해 구성됩니다. Cluster Operator를 설치할 때 로깅 구성이 포함된 ConfigMap 이 생성됩니다. 이 ConfigMapinstall/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml 파일에 설명되어 있습니다. 이 ConfigMapdata.log4j2.properties 값을 변경하여 Cluster Operator 로깅을 구성합니다.

로깅 구성을 업데이트하려면 050-ConfigMap-strimzi-cluster-operator.yaml 파일을 편집한 다음 다음 명령을 실행할 수 있습니다.

oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
Copy to Clipboard Toggle word wrap

또는 ConfigMap 을 직접 편집합니다.

oc edit configmap strimzi-cluster-operator
Copy to Clipboard Toggle word wrap

이 ConfigMap을 사용하면 다양한 구성 요소의 루트 로거 수준, 로그 출력 형식 및 로그 수준을 포함하여 로깅의 다양한 측면을 제어할 수 있습니다. monitorInterval 설정은 로깅 구성이 다시 로드되는 빈도를 결정합니다. Kafka AdminClient, Zoo Cryostat ZKTrustManager, Netty 및 OkHttp 클라이언트의 로깅 수준을 제어할 수도 있습니다. Netty는 네트워크 통신에 AMQ Streams에 사용되는 프레임워크이며 OkHttp는 HTTP 요청을 수행하는 데 사용되는 라이브러리입니다.

Cluster Operator가 배포될 때 ConfigMap 이 없는 경우 기본 로깅 값이 사용됩니다.

Cluster Operator가 배포된 후 ConfigMap 이 실수로 삭제된 경우 가장 최근에 로드된 로깅 구성이 사용됩니다. 새 로깅 구성을 로드할 새 ConfigMap 을 생성합니다.

참고

ConfigMap 에서는 monitorInterval 옵션을 제거하지 마십시오.

9.14.4. AMQ Streams 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
Copy to Clipboard Toggle word wrap

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)
Copy to Clipboard Toggle word wrap

Cluster Operator에 필터 추가

Cluster Operator에 필터를 추가하려면 로깅 ConfigMap YAML 파일 (install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml)을 업데이트합니다.

프로세스

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

    이 예에서 필터 속성은 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)
    Copy to Clipboard Toggle word wrap

    또는 ConfigMap 을 직접 편집합니다.

    oc edit configmap strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  2. ConfigMap을 직접 편집하는 대신 YAML 파일을 업데이트한 경우 ConfigMap 을 배포하여 변경 사항을 적용합니다.

    oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
    Copy to Clipboard Toggle word wrap

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)
    Copy to Clipboard Toggle word wrap

    속성 파일을 사용하는 경우 명령줄에서 파일을 지정합니다.

    oc create configmap logging-configmap --from-file=log4j2.properties
    Copy to Clipboard Toggle word wrap

    속성 파일은 로깅 구성을 정의합니다.

    # 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)
    # ...
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  3. Cluster Operator를 배포하여 변경 사항을 적용합니다.
create -f install/cluster-operator -n my-cluster-operator-namespace
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동