[Kafka]카프카 모니터링, 카프카 매니저 GUI 툴


이 글은 카프카, 데이터 플랫폼의 최강자 고승범/공용준 님의 책을 공부하며
정리하는 글입니다.

[Kafka]카프카 모니터링, 카프카 매니저 GUI 툴

카프카 클러스터를 안정적으로 운영하기 위해서 JMX, kafka offset monitor를 사용하자
카프카 작업을 편하게 하기위해서 카프카 매니저 오픈소스를 활용하자

JMX란?

  • JMX(Java Management eXtensions)는 자바로 만든 애플리케이션의 모니터링 도구를 제공하는 자바 API이다
  • MBean(Managed Bean)이라는 객체로 표현되며, JMX를 사용하기 위해서는 JMX 관련 설정을 추가하거나 systemd를 이용한 두가지 방법으로 셋팅할 수 있다.


Kafka-server-start.sh 에 추가하기

  • 하나의 카프카 서버에서 설정
  • export JMX_PORT=9999를 추가하자
# limitations under the license.

export JMX_PORT=9999
if [ $# -lt 1];
then
.
.
(생략)
.
  • kafka 재시작

  • 9999 port 확인하기

$ netstat -ntlp | grep -i 9999

출력: TCP	0	0.0.0.0:9999	0.0.0.:*	LISTEN 확인하자


JMX 모니터링 지표

  • 값을 이용해서 일별, 주간 그래프를 만들고 알람을 이용해 활용할 수 있다.
  • 실행
$ jconsole 카프카서버네임:9999
  • 자세한 명령어는 p242~245참고


다른 카프카 모니터링 툴(Kafka Offset Monitor)

 아래는 설명  
 zk the ZooKeeper hosts  
 port on what port will the app be available  
 refresh how often should the app refresh and store a point in the DB  
 retain how long should points be kept in the DB  
 dbName where to store the history (default 'offsetapp')  
java -cp KafkaOffsetMonitor-assembly-0.2.1.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk zookeeper-01:2181,zookeeper-02:2181,zookeeper-03:2181 \
--port 8080 --refresh 10.seconds --retain 2.days  
  • localhost:설정포트(8080)으로 접속하면 각각의 정보를 확인할 수 있다.


카프카 매니저

  • 토픽 추가, 삭제, 설정 변경 등의 작업을 웹 GUI로 할 수 있음
  • 야후에서 오픈소스로 공개
  • github.com/yahoo/kafka-manager 에서 확인이 가능하다.
  • 자세한 설치 방법은 추후에 사용할 때 다루려고한다. p245 혹은 구글링


한줄 정리
카프카를 운영할 때 필요한 주요 명령어를 숙지하자
카프카 모니터링 도구들을 사용해서 안정적으로 운영하자
카프카 매니저 같은 오픈소스 도구를 사용해서 GUI에서 편하게 작업하자