일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java
- Trino
- log
- EC2
- aws s3
- zookeeper
- airflow
- AWS
- kubeadm
- Vision
- tcp
- MAC address
- docker
- grafana
- Python
- Packet
- CVAT
- Kafka
- Spring
- Operating System
- PostgreSQL
- ip
- jvm
- OS
- Network
- helm
- CSV
- JavaScript
- kubectl
- kubernetes
- Today
- Total
JUST WRITE
UI로 Kafka 관리하기 본문
CMAK 설치
Kafka Cluster를 구축하고 나서 Kafka Broker를 컨트롤하려면 기본적으로 command로 컨트롤합니다.
Kafka Bin 폴더 아래에 다양한 script를 제공해 줍니다.
$ ll ~/kafka/bin
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-distributed.sh
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-mirror-maker.sh
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-standalone.sh
-rwxr-xr-x 1 kafka kafka 861 Dec 21 21:14 kafka-acls.sh
-rwxr-xr-x 1 kafka kafka 873 Dec 21 21:14 kafka-broker-api-versions.sh
-rwxr-xr-x 1 kafka kafka 860 Dec 21 21:14 kafka-cluster.sh
-rwxr-xr-x 1 kafka kafka 864 Dec 21 21:14 kafka-configs.sh
-rwxr-xr-x 1 kafka kafka 945 Dec 21 21:14 kafka-console-consumer.sh
-rwxr-xr-x 1 kafka kafka 944 Dec 21 21:14 kafka-console-producer.sh
-rwxr-xr-x 1 kafka kafka 871 Dec 21 21:14 kafka-consumer-groups.sh
-rwxr-xr-x 1 kafka kafka 948 Dec 21 21:14 kafka-consumer-perf-test.sh
-rwxr-xr-x 1 kafka kafka 871 Dec 21 21:14 kafka-delegation-tokens.sh
-rwxr-xr-x 1 kafka kafka 869 Dec 21 21:14 kafka-delete-records.sh
-rwxr-xr-x 1 kafka kafka 866 Dec 21 21:14 kafka-dump-log.sh
-rwxr-xr-x 1 kafka kafka 863 Dec 21 21:14 kafka-features.sh
-rwxr-xr-x 1 kafka kafka 865 Dec 21 21:14 kafka-get-offsets.sh
-rwxr-xr-x 1 kafka kafka 870 Dec 21 21:14 kafka-leader-election.sh
-rwxr-xr-x 1 kafka kafka 863 Dec 21 21:14 kafka-log-dirs.sh
-rwxr-xr-x 1 kafka kafka 870 Dec 21 21:14 kafka-metadata-quorum.sh
-rwxr-xr-x 1 kafka kafka 873 Dec 21 21:14 kafka-metadata-shell.sh
-rwxr-xr-x 1 kafka kafka 862 Dec 21 21:14 kafka-mirror-maker.sh
-rwxr-xr-x 1 kafka kafka 959 Dec 21 21:14 kafka-producer-perf-test.sh
-rwxr-xr-x 1 kafka kafka 874 Dec 21 21:14 kafka-reassign-partitions.sh
-rwxr-xr-x 1 kafka kafka 874 Dec 21 21:14 kafka-replica-verification.sh
-rwxr-xr-x 1 kafka kafka 11K Dec 21 21:14 kafka-run-class.sh
-rwxr-xr-x 1 kafka kafka 1.5K Mar 16 07:42 kafka-server-start.sh
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 kafka-server-stop.sh
-rwxr-xr-x 1 kafka kafka 860 Dec 21 21:14 kafka-storage.sh
-rwxr-xr-x 1 kafka kafka 945 Dec 21 21:14 kafka-streams-application-reset.sh
-rwxr-xr-x 1 kafka kafka 863 Dec 21 21:14 kafka-topics.sh
-rwxr-xr-x 1 kafka kafka 879 Dec 21 21:14 kafka-transactions.sh
-rwxr-xr-x 1 kafka kafka 958 Dec 21 21:14 kafka-verifiable-consumer.sh
-rwxr-xr-x 1 kafka kafka 958 Dec 21 21:14 kafka-verifiable-producer.sh
-rwxr-xr-x 1 kafka kafka 1.7K Dec 21 21:14 trogdor.sh
drwxr-xr-x 2 kafka kafka 4.0K Dec 21 21:14 windows
-rwxr-xr-x 1 kafka kafka 867 Dec 21 21:14 zookeeper-security-migration.sh
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 zookeeper-server-start.sh
-rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 zookeeper-server-stop.sh
-rwxr-xr-x 1 kafka kafka 1019 Dec 21 21:14 zookeeper-shell.sh
command도 좋지만 UI로 컨트롤하면 더 편하게 할 수 있습니다.
그래서 추가적으로 설치를 하는 게 CMAK입니다.
What is CMAK?
Cluster Manager for Apache Kafka
yahoo에서 Kafka Manager로 OpenSource로 만들어졌다가 현재는 CMAK이란 명칭으로 변경되었습니다.
Kafka Cluster를 UI로 컨트롤할 수 있어서 Kafka 운영시 필수적으로 설치되고 있습니다.
아래와 같은 다양한 기능을 제공하고 있습니다.
- Topic 생성/제거
- Cluster 상태 확인 - Broker, Topic, Consumer, offset, replica, partition
- Topic Configuration 변경
- Topic Partition 추가
- Kafka JMX Metrics polling
- Partition Reassignment
CMAK 설치
CMAK은 Scala로 개발된 Tool이기 때문에 JAVA 설치가 필요합니다.
설치하려는 버전인 3.0.0.6은 JAVA 11 이상이 필요합니다.
JAVA 설치
이번 포스팅에서는 OpenJDK 11로 설치를 진행하였습니다.
$ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
$ tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz
# JAVA_HOME 세팅
$ vi ~/.bash_profile
...
export JAVA_HOME=$HOME/jdk-11.0.2
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin
export PATH
# 설치 확인
$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
CMAK 설치
JAVA 설치가 완료되면 CMAK을 설치합니다.
CMAK Github에서 Release 된 것을 다운로드하여 설치합니다.
이번 포스팅에서는 3.0.0.6 버전으로 설치를 진행하였습니다.
$ https://github.com/yahoo/CMAK/releases/download/3.0.0.6/cmak-3.0.0.6.zip
$ unzip cmak-3.0.0.6.zip
CMAK은 Zookeeper를 활용하여 Kafka를 컨트롤합니다.
CMAK 설정값에서 Zookeeper 부분을 잘 입력해 줍니다.
$ cd cmak/conf
$ vi application.conf
...
...
...
kafka-manager.zkhosts="zkServer1:2181,zkServer2:2181,zkServer3:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="zkServer1:2181,zkServer2:2181,zkServer3:2181"
cmak.zkhosts=${?ZK_HOSTS}
...
해당 부분 수정이 끝나면 이제 CMAK을 시작합니다.
아래와 같이 start, stop script를 만들어서 CMAK을 Daemon 형태로 시작하였습니다.
start script
$ vi start.sh
#!/bin/bash
CMAK_HOME=$HOME/cmak
nohup $CMAK_HOME/bin/cmak -Dconfig.file=$CMAK_HOME/conf/application.conf -Dhttp.port=58080 2>&1 &
stop script
$ stop.sh
#!/bin/bash
CMAK_HOME=$HOME/cmak
CMAK_PID=$(cat $CMAK_HOME/RUNNING_PID)
kill $CMAK_PID
rm $CMAK_HOME/RUNNING_PID
start를 하면 58080 Port로 CMAK 시작됩니다.
$ netstat -ntlp | grep 58080
`(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::58080 :::* LISTEN 3064/java
CMAK Cluster 등록
Web Browser에서 CMAK을 띄운 Server의 58080 Port로 들어갑니다.
CMAK에서 Kafka Cluster를 설정합니다.
기본적으로 Cluster Name과 Zookeeper 정보를 입력합니다.
JMX 정보를 보려면 Enable JMX Polling을 체크해 줍니다.
하지만 그전에 Kafka Broker에서 JMX를 Export 해야 하는데 Kafka 시작 시 설정을 한 가지 해줘야 합니다.
kafka-server-start.sh를 수정하여 한 줄을 추가합니다.
$ vi ~/kafka/bin/kafka-server-start.sh
export JMX_PORT=9999 # 추가 부분
if [ $# -lt 1 ];
then
echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
exit 1
fi
base_dir=$(dirname $0
등록을 하면 이제 CMAK을 사용할 수 있습니다.
'MLOps > Kafka' 카테고리의 다른 글
Kafka야?!? 데이터 잘 처리하고 있니?! (0) | 2023.06.21 |
---|---|
Kafka 재시작 후 UNKNOWN_TOPIC_ID 에러?! (0) | 2023.06.14 |
Kafka Broker Log 관리 (0) | 2023.01.10 |
Ansible를 통한 Kafka 설치 (0) | 2022.12.18 |
AWS EC2 Kafka 설치 (0) | 2022.11.13 |