27. Kafka monitoring - Console
Console로 kafka 모니터링 진행
0. 사전 설정
# java 설치 (보통 opensource 들은 java 기반이 많음)
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install openjdk-11-jdk
특정 계정에 환경변수를 등록하려면 ~/.bashrc 파일에 추가하면 된다.
# 환경변수 설정
$ vim ~/.bashrc
위의 명령어로 ~/.bashrc 파일을 연 뒤, 아래의 내용을 추가한다. 보통 맨 아래에 입력한다.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 // 본인의 자바 설치 경로
export PATH=${PATH}:${JAVA_HOME}/bin
새로 설정한 환경 변수 설정을 적용하기 위해 source 명령어로 적용시킨다.
$ source ~/.bashrc
환경변수가 잘 적용되었는지 확인한다.
$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64
이제 apache kafka를 다운받는다.
$ cd ~
$ curl -O https://archive.apache.org/dist/kafka/2.8.0/kafka_2.12-2.8.0.tgz
$ tar xvf kafka_2.12-2.8.0.tgz
$ rm -rf kafka_2.12-2.8.0.tgz
$ cd kafka_2.12-2.8.0
다음으로 zookeeper를 실행해본다.
$ cd ~/kafka_2.12-2.8.0
# 1) Foreground 실행 (테스트 용으로 zookeeper 로그를 직접 확인)
$ bin/zookeeper-server-start.sh config/zookeeper.properties
# 2) Background 실행 (-daemon 옵션 추가)
$ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
$ ps -ef | grep zookeeper
다음으로 kafka broker를 실행해본다.
$ cd ~/kafka_2.12-2.8.0
## 다른 서버에 설치된 producer 또는 consumer에서 broker에 접속할 때 사용 가능한 hostname 설정
$ vi config/server.properties
advertised.listeners=PLAINTEXT://127.0.0.1:9092
## java.rmi.server.hostname은 본인의 외부 IP로 변경
### rmi.server.hostname을 설정해야, 외부의 jconsole과 같은 도구에서 접속 가능
$ curl ifconfig.me
$ 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=218.234.6.190'
# 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
# 3) JDK가 설치된 노트북에 아래 명령어 실행
$ jconsole
이제 kafka topic을 만들어본다.
$ cd ~/kafka_2.12-2.8.0
$ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic kafka-mon --partitions 2 --replication-factor 1
# 생성된 topic 확인
$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092
kafka-mon