개인 개발 공부
카프카 모니터링 툴
dks_a
2023. 8. 31. 13:16
[ 2023 카프카 모니터링 툴 순 ]
https://stackshare.io/index/kafka-tools
[카프카 모니터링 툴 종류]

[ CMAK ]
- 현재 KRaft 지원 하지 않음 (zookeeper만 가능)
https://github.com/yahoo/CMAK/issues/898
[Ui for Apache Kafka / AKHQ / Kafdrop ]
- 도커 설치 / jar 설치 가능
- window에 도커 설치 후 실행함
(windows10, 11에서 docker를 사용하려면 wsl2로 업데이트가 필요하고, ubuntu를 설치)
https://herojoon-dev.tistory.com/120?category=964211
https://axce.tistory.com/121
[ 도커 실행]
[ Ui for Apache Kafka ]
https://docs.kafka-ui.provectus.io/overview/readme
자바 버전 : java 17 package or newer
docker run -p 9090:8080 \
-e KAFKA_CLUSTERS_0_NAME=dev-10.10.1.22 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=10.10.1.22:9092 \
-d provectuslabs/kafka-ui:latest
[ jar 파일 실행]
nohup ../application/jdk/jdk17/bin/java -Dspring.config.additional-location=/home/nextmi/kafka-ui-tool/application.yml --add-opens java.rmi/javax.rmi.ssl=ALL-UNNAMED -jar /home/nextmi/kafka-ui-tool/kafka-ui-api-v0.7.0.jar & > kafka-ui.log

[ AKHQ ]
자바 버전 : java 11
docker run -p 9095:8080 \
-e AKHQ_CONFIGURATION="akhq:
connections:
dev:
properties:
bootstrap.servers: '10.10.1.22:9092'" \
tchiotludo/akhq

[ Kafdrop ]
https://github.com/obsidiandynamics/kafdrop
자바 버전 : Java 17 or newer
docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=10.10.1.22:9092 \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e SERVER_SERVLET_CONTEXTPATH="/" \
obsidiandynamics/kafdrop
[ jar 파일 실행 ]
nohup ../application/jdk/jdk17/bin/java --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -jar -Dserver.port=9997 kafdrop-3.31.0.jar --kafka.brokerConnect="10.10.1.23:9092" & > kafdrop.log

[ 각 모니터링 툴의 특징과 차이점 ]
[Kafdrop]
- 한 페이지에 정보를 다 보여줘 가독성이 떨어진다.
- 새 토픽을 만들기 위해서는 스크롤을 가장 아래까지 내려야한다.
- 토픽 생성 시, 이름과 partitions, Replication factor만 지정할 수 있다.
- 토픽 메세지를 파일로 저장하는 기능이 없다.
- 실시간 기능이 없다.
- 토픽을 지우는 기능만 있다.
[ Ui for Apache Kafka ]
- 라이트 / 다크 모드 있다.
- 사용자가 사용하기 편하다.
- 토픽 생성시, 다양한 추가 기능을 화면에서 설정할 수 있다.
- 토픽 상세로 개요, 메세지, 소비자, 설정, 통계를 탭으로 볼 수 있다.
- 해당 토픽에 메세지를 화면에서 보낼 수 있다.
- 보낸 메세지의 시간과 key, value를 확인 할 수 있다.
- 토픽에 실시간 메세지가 들어오는 것을 볼 수 있다.
https://devocean.sk.com/blog/techBoardDetail.do?ID=163980

[ AKHQ ]
- 다크 모드이다.
- 토픽 생성시, 다양한 추가 기능을 화면에서 설정할 수 있다.
- 토픽 상세로 개요, 메세지, 소비자, 설정을 탭으로 볼 수 있다.
- 해당 토픽에 메세지를 화면에서 보낼 수 있다.
- 보낸 메세지의 시간과 key, value를 확인 할 수 있다.
- 토픽에 실시간 메세지가 들어오는 것을 볼 수 있다.
https://always-kimkim.tistory.com/entry/introduce-akhq

[ AKHQ와 Ui for Apache Kafka 차이점 ]
- AKHQ는 Dashboard에 들어온 시간으로 얼마 전에 데이터가 생겼는지 보여준다.
Ui for Apache Kafka는 년월일시분초로 보여준다.

- AKHQ는 설정 창(Settings)으로 원하는 UI 설정한다.
Ui for Apache Kafka는 해당 위치에 사용자가 원하는 UI 설정한다.
- AKHQ는 토픽의 메세지가 json으로 저장되고 Ui for Apache Kafka은 파일로 저장된다.
- AKHQ는 전체 토픽을 선택에 메세지가 실시간으로 들어오는 것을 확인할 수 있다. (실시간 모니터링 탭이 분리되어있다.)
Ui for Apache Kafka은 토픽 별로 해당 토픽에 들어오는 메세지만 확인이 가능하다.


- 토픽 생성시 Ui for Apache Kafka가 AKHQ보다 추가 기능이 다양하다.