kafka monitoring tools

sssbb·2022년 7월 8일
0

kafka

목록 보기
1/2

kafka의 대표적인 모니터링은 애플리케이션 로그 분석과 JMX를 이용해 브로커들의 메트릭 정보를 확인하는 방법이다.

  1. 애플리케이션 로그 분석
    카프카는 카프카 애플리케이션에서 발생하는 모든 로그를 브로커의 로컬 디스크에 기록한다. 이 로그를 활용해 카프카의 현재 상태나 이상 징후 등을 발견하거나 이상 증상 발생 시 원인을 찾는다.
    카프카는 애플리케이션 로그 관리를 위해 자바 기반의 로깅 유틸리티인 log4j를 이용한다.
    로그 레벨을 조정할 수 있으나, 모든 로그는 로컬 디스크에 기록되기 때문에 여유 디스크 공간을 확보하고 로그 보관 주기를 설정해야 한다.

  2. JMX(Java Management eXtensions)
    JMX는 자바로 만든 애플리케이션의 모니터링을 위한 도구를 제공하는 자바 API로서, MBean(Managed Bean)이라는 객체로 표현된다.
    JMX를 이용해 카프카의 주요 메트릭들을 그래프와 같은 형태로 한눈에 확인이 가능하다.
    JMX를 사용하기 위해 먼저 브로커에 JMX 포트를 오픈한 다음, JMX에서 제공하는 메트릭 정보를 관리자가 GUI형태로 볼 수 있도록 구성해야 한다.


CMAK

CMAK (Cluster Manager for Apache Kafka)은 카프카 클러스터 관리툴이다. (이전 카프카 매니저)
https://github.com/yahoo/CMAK

<CMAK 제공>

  • 클러스터 관리
  • 클러스터 상태 확인 (topic, consumer, offset, broker, replica distribution, partition distribution)
  • 브로커 선택 옵션을 통한 파티션 할당
  • 토픽 설정을 통한 토픽 생성 (0.8.1.1과 0.8.2+와 다름)
  • 토픽 목록에 삭제된 토픽 표시
  • 여러 토픽에 대한 파티션 할당 일괄 생성/재할당
  • 기존 토픽에 파티션 추가/업데이트
  • 컨슈머 lag 관리
  • 파티션 재할당
  • 토픽 관리 (리스트 조회, 생성/삭제)
  • JMX 폴링 사용
  • 주키퍼에 ids, owners, offsets 디렉터리가 없는 컨슈머 필터링
  • 실시간 모니터링 불가
  • 토픽 메시지 검색 불가
  • 토픽 메시지 발행 불가

<요구사항>

  • 카프카 0.8, 0.9, 0.10, 0.11
  • 자바 11+

<마이그레이션>
기존 카프카 매니저에서 CMAK로 프로젝트명이 변경되었으며, 카프카 매니저에서 CMAK로 마이그레이션 방법은 다음과 같다.
1. 구버전에서 신버전으로 config 파일 복사 (application.conf, consumer.properties)
2. bin/kafka-manager 대신 bin/cmak을 사용하여 스크립트 실행

AKHQ

AKHQ(Apache Kafka HQ)는 micronaut 프레임워크를 기반으로 구성된 자바 웹 애플리케이션이다.
카프카 1.0 버전 이상을 지원하며 멀티 클러스터에 대한 모니터링이 가능하다.
https://akhq.io/docs/

<AKHQ 제공>

  • 브로커 데이터 리소스 모니터링 및 운영
    브로커 노드 별 토픽 파티션 현황 조회
    토픽 리스트 조회
    토픽 생성/삭제
    토픽 파티션 리더 현황 및 디스크 사이즈 조회
    토픽 설정 조회/변경
    실시간 토픽 메시지 조회/검색
    웹 UI를 통한 토픽 메시지 발생
    토픽 별 ACL 조회
    컨슈머 그룹 목록 조회
    컨슈머 그룹 별 lag 조회
  • 카프카 플랫폼 연동
    스키마 레지스트리 연동
    스키마 조회/생성/삭제/수정
    커넥트 클러스터 연동
    커넥터 목록 조회
    커넥터 생성/수정/삭제
    커넥터 중지/재시작
  • 웹 UI 보안
    read only mode
    사용자 그룹 정의
    정규식을 이용한 사용자 그룹 별 토픽 필터링
    ldap 연동
  • 파티션 재할당 불가

helm repo가 제공되어 helm install로 적용하여 사용 가능 (https://akhq.io/)

Kadeck

KaDeck은 아파치 카프카 개발&모니터링 솔루션으로, 데스크탑 및 UI에서 카프카 애플리케이션, 클러스터 및 스트림을 모두 개발/탐색 및 모니터링할 수 있다.
https://www.xeotek.com/

<KaDeck 제공>

  • 카프카 모니터링
    카프카의 모든 데이터에 대한 데이터 크런칭, 테스팅 또는 애플리케이션 및 데이터 흐름 모니터링
    광범위한 필터 및 데이터 변환 액세스
    쉽게 테스트 또는 수정 목적의 새 데이터 생성 가능
  • 컨슈머&프로듀서 오류 감지
    컨슈머 성능 확인 (데이터 전송 실패 또는 데이터 스트림의 격차 감지, 오프셋 지연 등)
  • 애플리케이션 테스트
    기존 레코드 기반 토픽에 레코드를 생성하여 컨슈머가 레코드를 컨슘하는 위치(오프셋) 제어 및 테스트 완료 후 토픽 삭제
  • 카프카 에코시스템 제어
  • 데이터 탐색
    데이터 분석 기능이 포함됨
    데이터 개체 속성을 사용한 필터링
    자바스크립트를 사용한 복합 쿼리
    시간/시간 창 별 검색, 키/값 검색
  • 데이터 라우팅 & 내보내기
    특정 레코드를 스트림으로 전달하거나 테이블로 내보내기 가능
    잘못된 데이터 세트 수정
    스트림에 데이터 세트 전송
    데이터 세트 내보내기
  • 데이터 변환
    자바스크립트를 사용하여 데이터 필터링 및 변환
    상태 저장 계산 지원
    실시간 실행
  • 데이터 보고서 생성 & 공유
    필터링 기준 및 변환에 따라 보고서 생성 및 내보내기(CSV) 가능
  • 코덱 & 자동 감지
    키/값에 대한 레코드의 헤더가 여러 개 포함되어 NAT의 자동감지 메커니즘을 통해 토픽 확인 가능
  • 연결 및 보안
    아파치 카프카 및 아마존 키네시스 지원
  • 데이터 수집
    여러 개의 레코드를 빠르게 수집 가능
    레코드 헤더 지원
    직관적인 UI 및 JSON 보기 전환
  • 카프카 커넥트 클러스터 관리
    새 커넥터 추가 및 상태 관리, 구성 편집
  • 기타 특징
    스키마 레지스트리 관리
    ACL 관리
    컨슈머 오프셋 관리
    데이터 흐름 모니터링 (FlowView)
    토픽 생성/삭제
    단일/다중 레코드 내보내기
    자바 애플리케이션 테스트
    파티션 간/타임스탬프 별 오프셋 검색
  • 권한 관리(Web UI만 해당)
  • 특정 데이터 유형에 대한 자체 코덱(데이터 컨슘 및 데이터 생성) 개발 가능 (https://support.xeotek.com/hc/en-us/categories/360002602440-Custom-Codecs?_ga=2.141815986.1493979557.1650872237-37098905.1650519294)

Desktop은 컴퓨터에서 클러스터에 액세스할 수 있고 개별 사용자에게 적합함
Desktop free는 www.getkadeck.com에서 다운로드할 수 있으며 Desktop Professional 7일 평가판을 자동으로 받을 수 있음(평가판 기간 만료 시 자동 Free버전으로 전환)
Web은 인프라 또는 클라우드에서 웹 서비스로 실행됨. LDAP지원과 개별 사용자 또는 팀에 대한 규칙을 정의하고 네임스페이스를 정의할 수 있는 역할 및 권한 시스템 제공

InteliJ - big data tools

big data tools plugin 다운로드 : https://plugins.jetbrains.com/plugin/12494-big-data-tools
설치 방법 : https://www.jetbrains.com/help/idea/big-data-tools-kafka.html

  1. plugin 설치 후 IDE 재실행
  2. View > Tool windows > Big data tools > kafka

간단하게 topic 정보, partition 개수 등 확인 가능

0개의 댓글