Kafka Broker

Supported OS Linux Windows Mac OS

통합 버전4.0.0

Kafka 대시보드

개요

Kafka 브로커 메트릭을 확인하여 Kafka 클러스터 상태와 성능을 실시간으로 전방위 모니터링하세요. 이 통합을 통해, Kafka 배포에서 메트릭과 로그를 수집하여 텔레메트리를 시각화하고 Kafka 스택 성능에 대한 알림을 받을 수 있습니다.

참고:

  • 이 점검은 인스턴트당 350개 메트릭으로 제한됩니다. 반환되는 메트릭의 수는 에이전트 상태 출력에 나와 있습니다. 아래 설정을 편집하여 관심 있는 메트릭을 지정할 수 있습니다. 수집하려는 메트릭을 커스터마이즈하는 방법에 대한 자세한 지침은 JMX 점검 설명서를 참조하세요.
  • 이 통합이 첨부된 샘플 설정은 Kafka >= 0.8.2에서만 작동합니다. 그 이전 버전을 실행 중인 경우 에이전트 v5.2.x 릴리스 샘플 파일을 참조하세요.
  • Kafka 소비자 메트릭을 수집하려면 kafka_consumer 점검을 참조하세요.

Kafka 통합을 강화하려면 Data Streams Monitoring을 고려해 보세요. 이 솔루션은 파이프라인 시각화 및 지연 추적 기능을 제공하여 병목 현상을 파악하고 해결하는 데 도움을 줍니다.

설정

설치

에이전트의 Kafka 점검에는 Datadog 에이전트 패키지가 포함되어 있으므로 Kafka 노드 외 다른 것을 설치할 필요가 없습니다.

점검은 JMXFetch를 사용해 JMX에서 메트릭 을 수집합니다. 에이전트에서 JMXFetch를 실행하려면 각 kafka 노드에 JVM이 필요합니다. 이를 위해 Kafka가 사용하는 것과 동일한 JVM을 사용할 수 있습니다.

참고: Kafka 점검은 Apache Kafka(Amazon MSK) 관리형 스트리밍과 함께 사용할 수 없습니다. 대신 Amazon MSK 통합을 사용하세요.

설정

호스트

호스트에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집
  1. 에이전트 설정 디렉터리 루트에 있는 conf.d/ 폴더에서 kafka.d/conf.yaml 파일을 편집합니다. Kafka 빈 이름은 실행 중인 실제 Kafka 버전에 따라 달라집니다. 에이전트와 함께 제공되는 예시 설정 파일이 가장 최신 설정이므로 이 파일을 기본으로 사용합니다. 참고: 예시의 에이전트 버전은 설치한 것보다 더 최신 에이전트 버전일 수 있습니다.

  2. 에이전트를 다시 시작합니다.

로그 수집

에이전트 버전 > 6.0에서 사용 가능

  1. Kafka는 기본적으로 log4j 로거를 사용합니다. 파일에 로깅을 활성화하고 형식을 커스터마이즈하려면 log4j.properties 파일을 편집하세요.

      # Set root logger level to INFO and its only appender to R
      log4j.rootLogger=INFO, R
      log4j.appender.R.File=/var/log/kafka/server.log
      log4j.appender.R.layout=org.apache.log4j.PatternLayout
      log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
  2. 기본적으로 Datadog 통합 파이프라인은 다음과 같은 변환 패턴을 지원합니다.

      %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
      %d [%t] %-5p %c - %m%n
      %r [%t] %p %c %x - %m%n
      [%d] %p %m (%c)%n
    

    다른 형식을 사용하는 경우 통합 파이프라인을 복제하여 편집합니다.

  3. 로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. datadog.yaml 파일에서 활성화합니다.

    logs_enabled: true
    
  4. kafka.d/conf.yaml 파일에 다음 설정 블록을 추가합니다. 환경에 따라 pathservice 파라미터 값을 변경합니다. 사용 가능한 모든 설정 옵션은 kafka.d/conf.yaml 샘플을 참조하세요.

    logs:
      - type: file
        path: /var/log/kafka/server.log
        source: kafka
        service: myapp
        #To handle multi line that starts with yyyy-mm-dd use the following pattern
        #log_processing_rules:
        #  - type: multi_line
        #    name: log_start_with_date
        #    pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
    
  5. 에이전트를 다시 시작합니다.

컨테이너화된 환경

메트릭 수집

컨테이너화된 환경의 경우 JMX를 사용한 자동탐지 가이드를 참조하세요.

로그 수집

에이전트 버전 > 6.0에서 사용 가능

Datadog 에이전트에서 로그 수집은 기본값으로 비활성화되어 있습니다. 이를 활성화하려면 쿠버네티스(Kubernetes) 로그 수집을 참조하세요.

파라미터
<LOG_CONFIG>{"source": "kafka", "service": "<SERVICE_NAME>"}

검증

에이전트 상태 하위 명령어를 실행하고 JMXFetch 섹션에서 kafka를 찾습니다.

========
JMXFetch
========
  Initialized checks
  ==================
    kafka
      instance_name : kafka-localhost-9999
      message :
      metric_count : 46
      service_check_count : 0
      status : OK

수집한 데이터

메트릭

이벤트

Kafka 점검은 이벤트를 포함하지 않습니다.

서비스 점검

트러블슈팅

참고 자료

Kafka Consumer 통합

Kafka 대시보드

개요

이 Agent 통합은 Kafka 컨슈머로부터 메시지 오프셋 메트릭을 수집합니다. 이 점검은 Kafka 브로커에서 하이워터 오프셋, Kafka(또는 기존 컨슈머의 경우 Zookeeper)에 저장된 컨슈머 오프셋을 가져온 다음, 컨슈머 지연(브로커 오프셋과 컨슈머 오프셋의 차이)을 계산합니다.

참고:

  • 이 통합은 브로커 오프셋보다 컨슈머 오프셋을 먼저 확인하도록 하기 때문에, 최악의 경우 컨슈머 지연이 실제보다 더 커보일 수 있습니다. 이 오프셋을 역순으로 확인하면, 컨슈머 지연이 과소평가되어 음수 값이 나타날 수 있으며, 이는 메시지를 건너뛰고 있음을 나타내는 심각한 상황입니다.
  • Kafka 브로커 또는 Java 기반 컨슈머/프로듀서로부터 JMX 메트릭을 수집하려면 Kafka Broker 통합을 참조하세요.

설정

설치

Agent의 Kafka 컨슈머 점검은 Datadog Agent 패키지에 포함되어 있습니다. 따라서, Kafka 노드에 추가로 설치할 필요가 없습니다.

구성

호스트

Kafka 소비자를 실행하는 호스트에서 실행되는 에이전트 점검을 설정하려면

메트릭 수집
  1. 에이전트 설정 디렉토리 루트의 conf.d/ 폴더에 있는 kafka_consumer.d/conf.yaml 파일을 편집합니다. 사용 가능한 모든 설정 옵션은 kafka_consumer.d/conf.yaml 샘플을 참조하세요.

  2. 에이전트를 다시 시작합니다.

로그 수집

이 점검은 추가 로그를 수집하지 않습니다. Kafka 브로커에서 로그를 수집하려면 Kafka 로그 수집 지침을 참조하세요.

컨테이너화된 환경

컨테이너화된 환경의 경우 자동탐지 통합 템플릿 아래 파라미터 적용에 대한 지침을 참조하세요.

메트릭 수집
파라미터
<INTEGRATION_NAME>kafka_consumer
<INIT_CONFIG>비어 있음 또는 {}
<INSTANCE_CONFIG>{"kafka_connect_str": <KAFKA_CONNECT_STR>}
예: {"kafka_connect_str": "server:9092"}
로그 수집

이 점검은 추가 로그를 수집하지 않습니다. Kafka 브로커에서 로그를 수집하려면 Kafka 로그 수집 지침을 참조하세요.

검증

에이전트 상태 하위 명령을 실행하고 점검 섹션에서 kafka_consumer를 찾습니다.

수집한 데이터

메트릭

이벤트

소비자_지연:
Datadog 에이전트는 consumer_lag 메트릭 값이 0 이하로 내려가면 topic, partitionconsumer_group과 함께 태깅하여 이벤트를 내보냅니다.

서비스 점검

Kafka 소비자 점검에는 서비스 점검이 포함되어 있지 않습니다.

트러블슈팅

Kerberos GSSAPI 인증

Kafka 클러스터 의 케베로스(Kerberos) 설정에 따라 다음을 설정해야 할 수도 있습니다.

  • Datadog 에이전트가 Kafka 브로커에 연결하도록 설정된 Kafka 클라이언트입니다. Kafka 클라이언트는 케베로스 주체로 추가하고 케베로스 키탭으로 추가해야 합니다. Kafka 클리이언트는 또한 유효한 케베로스 티켓을 보유해야 합니다.
  • Kafka 브로커에 대한 보안 연결을 인증하는 TLS 인증서입니다.
    • JKS 키 저장소를 사용하는 경우, 키 저장소에서 인증서를 내보내야 하며 파일 경로는 해당 tls_cert 및/또는 tls_ca_cert 옵션으로 설정해야 합니다.
    • 인증서를 인증하는 데 개인 키가 필요한 경우, tls_private_key 옵션으로 설정해야 합니다. 해당되는 경우, 개인 키 비밀번호는 tls_private_key_password로 설정해야 합니다.
  • KRB5_CLIENT_KTNAME 환경 변수가 기본 경로(예: KRB5_CLIENT_KTNAME=/etc/krb5.keytab)와 다른 경우 클라이언트의 케베로스 키 탭 위치를 가리키는 환경 변수를 의미합니다.
  • KRB5CCNAME 환경 변수가 기본 경로(예: KRB5CCNAME=/tmp/krb5cc_xxx)와 다른 경우 Kafka 클라이언트 의 Kerberos 자격 증명 티켓 캐시를 가리키는 환경 변수를 의미합니다.
  • Datadog 에이전트가 해당 환경 변수에 액세스할 수 없는 경우 운영 체제의 Datadog 에이전트 서비스 설정 재정의 파일에 있는 환경 변수를 설정합니다. Datadog 에이전트 서비스 유닛 파일 수정 절차는 리눅스(Linux) 운영 체제에 따라 달라질 수 있습니다. 예를 들어 리눅스 systemd 환경을 생각해 볼 수 있습니다.

리눅스 시스템 예시

  1. 환경 파일에서 환경 변수를 수정합니다. 예: /path/to/environment/file
KRB5_CLIENT_KTNAME=/etc/krb5.keytab
KRB5CCNAME=/tmp/krb5cc_xxx
  1. Datadog 에이전트 서비스 설정 재정의 파일을 생성합니다. sudo systemctl edit datadog-agent.service

  2. 재정의 파일에 다음을 설정합니다.

[Service]
EnvironmentFile=/path/to/environment/file
  1. 다음 명령을 실행하여 systemd 데몬, Datadog-에이전트 서비스, Datadog 에이전트를 다시 로드합니다.
sudo systemctl daemon-reload
sudo systemctl restart datadog-agent.service
sudo service datadog-agent restart

참고 자료

PREVIEWING: may/embedded-workflows