본문 바로가기
Come on IT/DevOps

kafka, zookeeper, kafka-ui 설치 (docker 없이)

by JONGSKY 2024. 7. 26.
728x90
SMALL

1. 글을 쓰게 된 계기

 

자체 서버에

kafka, zookeeper, kafka-ui를 설치하기 위한 방법을 정리하려고 한다.

구축전 작성하는 내용을 먼저 정리하자면

유저의 이름과 그룹이름이 jongsky:jongsky라고 가정한다.

버전과 포트는 아래와 같고 kafka-ui는 id는 admin pw는 pass로 설정했다.

  • zookeeper
    • version: 3.7.2
    • port: 2181
  • kafka
    • version: 3.7.1
    • port: 9092
  • kafka-ui
    • version: 0.7.2
    • port: 6180

2. 구축 방법

 

1. 시스템 업데이트 및 Java 설치

먼저, 시스템을 업데이트하고 OpenJDK 17을 설치합니다.

sudo apt update && sudo apt upgrade -y
sudo apt install openjdk-17-jdk -y
java -version

 

2. Zookeeper 설치

Zookeeper를 다운로드하고 설치합니다.

wget https://downloads.apache.org/zookeeper/zookeeper-3.7.2/apache-zookeeper-3.7.2-bin.tar.gz
tar -xzf apache-zookeeper-3.7.2-bin.tar.gz
sudo mv apache-zookeeper-3.7.2-bin /usr/local/zookeeper
sudo mkdir -p /usr/local/zookeeper/data
sudo chown -R jongsky:jongsky /usr/local/zookeeper
sudo chmod -R 700 /usr/local/zookeeper/data

 

Zookeeper 설정 파일을 수정합니다.

sudo vi /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/usr/local/zookeeper/data
clientPort=2181

 

3. Kafka 설치


Kafka를 다운로드하고 설치합니다.

wget https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz
tar -xzf kafka_2.13-3.7.1.tgz
sudo mv kafka_2.13-3.7.1 /usr/local/kafka
sudo mkdir -p /var/lib/kafka/data
sudo chown -R jongsky:jongsky /usr/local/kafka
sudo chown -R jongsky:jongsky /var/lib/kafka
sudo chmod -R 700 /var/lib/kafka/data

 

Kafka 설정 파일을 수정합니다.

sudo vi /usr/local/kafka/config/server.properties

 

다음 내용을 수정하거나 추가합니다.

broker.id=1
log.dirs=/var/lib/kafka/data
zookeeper.connect=localhost:2181
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://localhost:9092
port=9092

 

4. Kafka UI 설치

 

Kafka UI를 설치하기 위해 Kafka UI를 다운로드하고 설정합니다.

wget https://github.com/provectus/kafka-ui/releases/download/v0.7.2/kafka-ui-api-v0.7.2.jar
sudo mkdir /usr/local/kafka-ui/
sudo mv kafka-ui-api-v0.7.2.jar /usr/local/kafka-ui/
sudo chown -R jongsky:jongsky /usr/local/kafka-ui
sudo chmod -R 700 /usr/local/kafka-ui

 

Kafka UI 설정 파일을 생성합니다.

sudo vi /usr/local/kafka-ui/application.yml

 

다음 내용을 추가합니다.

server:
  port: 6180

kafka:
  clusters:
    - name: local
      bootstrapServers: localhost:9092
      zookeeper: localhost:2181
      
auth:
  type: LOGIN_FORM
  enabled: true

spring:
  security:
    user:
      name: jongsky
      password: 123456789a
 
 

5. Systemd 서비스 설정

 

Zookeeper 서비스 파일 생성

sudo vi /etc/systemd/system/zookeeper.service

 

다음 내용을 추가합니다.

[Unit]
Description=Zookeeper Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start-foreground
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
User=jongsky
Group=jongsky
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

 

Kafka 서비스 파일 생성

sudo vi /etc/systemd/system/kafka.service

 

다음 내용을 추가합니다.

[Unit]
Description=Kafka Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
User=jongsky
Group=jongsky
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

 

Kafka UI 서비스 파일 생성

sudo vi /etc/systemd/system/kafka-ui.service

 

다음 내용을 추가합니다.

[Unit]
Description=Kafka UI Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/java -jar /usr/local/kafka-ui/kafka-ui-api-v0.7.2.jar --spring.config.location=file:/usr/local/kafka-ui/application.yml
User=jongsky
Group=jongsky
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

 

6. 서비스 활성화 및 시작


서비스를 활성화하고 시작합니다.

sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl enable kafka-ui
sudo systemctl start zookeeper
sudo systemctl start kafka
sudo systemctl start kafka-ui

 

7. 서비스 상태 확인 및 로그 보기


각 서비스를 다음 명령어로 관리할 수 있습니다.

Zookeeper

sudo systemctl status zookeeper
sudo systemctl restart zookeeper
sudo journalctl -u zookeeper -f

 

Kafka

sudo systemctl status kafka
sudo systemctl restart kafka
sudo journalctl -u kafka -f

 

Kafka UI

sudo systemctl status kafka-ui
sudo systemctl restart kafka-ui
sudo journalctl -u kafka-ui -f

 

 

728x90
LIST