TIE- kafka, exporter settings

kyoungyeon·2025년 1월 27일
0

TIE

목록 보기
51/53

DevOps 및 모니터링 관련 이슈 정정 및 보완

(커피챗 내용 반영 및 기존 정보 수정)


1. Kafka Exporter와 JMX Exporter 사용 목적

  • 기존 오해: "카프카 Exporter는 성능 모니터링 전용" → 수정
    • 실제 용도:
      • Kafka Exporter: Prometheus와 연동해 토픽/파티션/컨슈머 랙 같은 카프카 운영 지표 수집.
      • JMX Exporter: JVM 기반 애플리케이션(카프카 브로커)의 메모리/스레드/GC 상태 모니터링.
    • 둘을 함께 사용해야 하는 이유:
      • 카프카 자체 상태(JMX) + 클러스터 운영 현황(Kafka Exporter)을 종합적으로 분석하기 위함.

2. Docker 환경에서 JMX Exporter 실행 문제

  • 기존 인식: "도커로 JMX를 올리면 무조건 죽는다" → 정정
    • 원인:
      • JMX 원격 접속을 위한 포트 미개방 또는 JVM 옵션 미설정.
      • 도커 네트워크 구성 오류 (호스트-컨테이너 간 통신 실패).
    • 해결 방안:
      • 도커 실행 시 JVM 옵션 추가 (예: JMX 포트 9091 개방):
        docker run -p 9091:9091 \  
        -e KAFKA_OPTS="-Dcom.sun.management.jmxremote \  
        -Dcom.sun.management.jmxremote.port=9091 \  
        -Dcom.sun.management.jmxremote.rmi.port=9091 \  
        -Dcom.sun.management.jmxremote.authenticate=false \  
        -Dcom.sun.management.jmxremote.ssl=false" \  
        confluentinc/cp-kafka:latest  
      • JMX Exporter 설정 파일을 컨테이너 내부에 마운트하여 사용.

3. 포트 및 방화벽 설정 핵심

  • 문제 재현 시나리오:
    • Exporter가 메트릭을 제공하는 포트(기본 9308)가 방화벽에 차단 → Prometheus 스크랩 실패.
    • JMX 포트(기본 7091)가 컨테이너 외부로 노출되지 않음.
  • 점검 포인트:
    1. 포트 개방 여부: netstat -tnlp | grep 9308
    2. 방화벽 규칙: AWS 보안 그룹, GCP 방화벽 규칙 확인.
    3. Prometheus 설정:
      scrape_configs:  
        - job_name: 'kafka-exporter'  
          static_configs:  
            - targets: ['kafka-exporter:9308']  

4. DevOps 지속적인 학습 필요성

  • 변화하는 시나리오 대응:
    • 3개월 주기 점검: AWS re:Invent, KubeCon 발표 자료 확인.
    • 공식 문서 우선: 블로그보다 Kafka 공식 가이드 또는 Prometheus 문서 참조.
  • 실패 사례 학습:
    • "예전에 되던 설정이 갑자기 안 되는 경우" → 의존성 버전 충돌 (예: JDK 11 → 17 업그레이드 시 JMX 동작 변경).

요약 및 추가 권장 사항

  1. Exporter 사용 시:
    • JMX Exporter: JVM 모니터링 필수 → 도커 실행 시 포트 + JVM 옵션 필수.
    • Kafka Exporter: 운영 지표 수집 → Prometheus와 연동.
  2. 문제 해결 순서:
    • (1) 포트 개방 → (2) JVM/Docker 옵션 확인 → (3) 방화벽 체크.
  3. 학습 리소스:
profile
🏠TECH & GOSSIP

0개의 댓글

관련 채용 정보