Kafka 모니터링

yoon__0_0·2024년 7월 8일
0

이어드림 수업

목록 보기
92/103

Kafka 를 통해서 데이터가 유실없이 안정적으로 잘 처리되고 있는지 확인

1) 처리성능

  • 얼마나 많이 처리하는가?
  • 얼마나 빨리 처리하는가?

2) 서비스 가용성

  • 데이터 복제는 잘되는가?
  • Broker 장애는 없는가?

3) 클러스터 확장성

  • CPu/Mem 성능이 충분한가?
  • 특정 Client가 자원을 독점하는가?

-> Producer > Broker > Consumer 전 구간에서 지표를 확인해야함.

핵심 모니터링 지표 선정

Producer

Broker


  • 주요 지표들
Total Time MSPurgatory SizeQuota
- local time이 가장 중요

Consumer

모니터링 방법

1) 직접조회

  • JMX Metric 직접조회
  • Jconsole, JMXTerm

2) 오픈소스 SW tjfcl

  • 무료 OSS(장/단점 존재)
  • CMAK, AKHQ 등
  • Elastic Stack 기반
  • prometheus + Grafana 기반

3) 상용 서비스 구매

  • Conflent, DataDog

모니터링 실습해보기

JConsole 실습

1) 환경구성

  • VM instance 생성
  • VPX 에서 JMX port (9999) Port 허용

2) 주키퍼 실행

> cd ~/apps/kafka_2.12-3.6.2

# 1) Foreground 실행 (테스트 용으로 zookeeper 로그를 직접 확인)
> bin/zookeeper-server-start.sh config/zookeeper.properties

# 2) Background 실행
> bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
> ps -ef | grep zookeeper

3) 외부에서 Apache Kafka에 접속할 수 있는 주소(IP/HostName) 지정

  • Kafka는 내부망에서 데이터를 빠르게 송/수신 할 수 있도록
  • 내부망에서 Broker 접근할 수 있는 네트워크 주소와 (listeners)
  • 외부방에서 Broker에 접근할 수 있는 네트워크 주소를 (advertised.listeners) 분리하여 지정한다.

> cd ~/apps/kafka_2.12-3.6.2
## producer 또는 consumer에서 broker에 접속할 때 사용 가능한 hostname 설정 
> vi config/server.properties
advertised.listeners=PLAINTEXT://kafka-demo:9092

## java.rmi.server.hostname은 본인의 VM 외부 IP로 변경
### rmi.server.hostname을 설정해야, 외부의 jconsole과 같은 도구에서 접속 가능
> export KAFKA_JMX_OPTS='-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false 
  -Dcom.sun.management.jmxremote.ssl=false 
  -Dcom.sun.management.jmxremote.port=9999 
  -Dcom.sun.management.jmxremote.rmi.port=9999 
  -Djava.rmi.server.hostname=34.47.111.223'

# 1) Foregroud 
> env JMX_PORT=9999 bin/kafka-server-start.sh config/server.properties

# 2) background 실행
> env JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties

4) JConsole 실행

  • 내 로컬 컴퓨터에서 실행
jconsole
  • Remote Process -> 외부ip:9999
  • 각 지표들을 확인할 수 있음.
profile
신윤재입니다

0개의 댓글