본문 바로가기
Backend

[Backend] Kafka 명령어

by JINJINC 2025. 3. 15.
728x90
반응형

Kafka 서버에서 로그 확인 및 주요 운영 명령어를 정리했습니다.
Kafka를 운영 및 디버깅할 때 필요한 모든 명령어를 포함합니다.


1. Kafka 서버 상태 확인

먼저, Kafka가 정상적으로 실행 중인지 확인해야 합니다.

1.1 Docker 컨테이너 상태 확인

Kafka 및 Zookeeper가 실행 중인지 확인:

docker ps -a

Kafka와 Zookeeper가 실행 중이어야 합니다.

Kafka 컨테이너가 kafka라는 이름으로 실행 중이라면, 다음 명령어로 컨테이너 내부로 진입할 수 있습니다.

docker exec -it kafka bash

2. Kafka 로그 확인

Kafka의 실행 로그를 확인하려면 다음 명령어를 사용합니다.

2.1 Docker 컨테이너 로그 확인

Kafka 컨테이너의 최신 로그를 확인:

docker logs --tail 100 kafka

실시간 로그 스트리밍:

docker logs -f kafka

2.2 Kafka 내부 로그 파일 확인

kafka container 내부 접속

docker exec -it kafka bash

 

Kafka 컨테이너 내부에서 로그 파일을 찾으려면:

find /var/log/kafka -type f

 

find /var/log/kafka -type f

Kafka 실행 로그 확인:

나의 파일 중에서 확인 

cat /var/log/kafka/kafkaServer-gc.log | tail -n 100

또는

tail -f /var/log/kafka/kafkaServer-gc.log

3. Kafka Topic 관리

Kafka에서 토픽(topic)을 생성, 조회, 삭제하는 방법입니다.

3.1 현재 존재하는 Topic 목록 확인

docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server your-ip:9092

또는 컨테이너 내부에서 실행: 

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server your-ip:9092

3.2 특정 Topic 정보 확인

/opt/kafka/bin/kafka-topics.sh --describe --topic crawler-topic --bootstrap-server your-ip:9092
[appuser@6e1237a80c60 ~]$ /opt/kafka/bin/kafka-topics.sh --describe --topic crawler-topic --bootstrap-server user-Ip:9092
Topic: crawler-topic    TopicId: Eg4DnDg2Qiiy-gQyKeMUgQ PartitionCount: 1       ReplicationFactor: 1    Configs:
        Topic: crawler-topic    Partition: 0    Leader: 1       Replicas: 1     Isr: 1  Elr: N/A        LastKnown

📌 출력 예시

Topic: crawler-topic   PartitionCount: 1   ReplicationFactor: 1
Configs: segment.bytes=1073741824

3.3 새로운 Topic 생성

/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server your-ip:9092 --partitions 1 --replication-factor 1

옵션 설명

  • --partitions 1 → 1개의 파티션 사용
  • --replication-factor 1 → 복제본 없음

3.4 특정 Topic 삭제

/opt/kafka/bin/kafka-topics.sh --delete --topic test-topic --bootstrap-server your-ip:9092

📌 주의: Kafka 설정에서 delete.topic.enable=true가 활성화되어 있어야 합니다.


4. Kafka 메시지 확인 및 관리

Kafka의 Producer와 Consumer를 사용하여 메시지를 주고받는 방법입니다.

4.1 Kafka Topic에 메시지 전송 (Producer)

테스트 메시지를 crawler-topic에 전송:

echo "Hello, Kafka!" | /opt/kafka/bin/kafka-console-producer.sh --bootstrap-serveryour-ip:9092 --topic crawler-topic

📌 전송 후 별다른 메시지가 표시되지 않으면 정상적으로 전송된 것임.

4.2 Kafka Topic에서 메시지 읽기 (Consumer)

crawler-topic의 메시지를 소비:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 43.202.32.28:9092 --topic crawler-topic --from-beginning

📌 옵션 설명

  • --from-beginning → 기존 메시지까지 모두 가져오기

5. Kafka Consumer 그룹 관리

Kafka는 Consumer 그룹을 사용하여 메시지를 효율적으로 분배합니다.

5.1 Consumer 그룹 리스트 확인

/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your-ip:9092 --list

5.2 특정 Consumer 그룹 상태 확인

/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your-ip:9092 --group product-group --describe

📌 출력 예시

GROUP           TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG  CONSUMER-ID
product-group   crawler-topic   0          10              20              10   consumer-1
  • LAG 값이 크다면 Consumer가 메시지를 제대로 처리하지 못하고 있음.

5.3 특정 Consumer 그룹 리셋 (Offset 초기화)

모든 메시지를 다시 읽도록 Consumer 그룹 Offset을 초기화:

/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your-ip:9092 --group product-group --reset-offsets --to-earliest --execute --topic crawler-topic

6. Kafka Server 운영 관리

Kafka가 올바르게 동작하는지 점검하는 명령어입니다.

6.1 Kafka 서버 상태 확인

/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server your-ip:9092

📌 출력 예시

your-ip:9092 (id: 1 rack: null) -> (Produce(0): 0 to 11 [usable: 11], Fetch(1): 0 to 17 [usable: 17], ...)

정상적으로 응답이 나오면 Kafka가 정상 동작 중입니다.

6.2 Kafka 프로세스 확인

ps aux | grep kafka

Kafka 프로세스가 실행 중인지 확인.

6.3 Kafka 서버 재시작

docker restart kafka

7. Kafka 설정 변경

Kafka 설정을 변경하려면 server.properties를 수정해야 합니다.

docker cp kafka:/etc/kafka/server.properties ./server.properties
수정 후 

docker cp./server.properties kafka:/etc/kafka/server.properties 

7.1 Kafka 설정 파일 위치 확인

Kafka 설정 파일은 /etc/kafka/server.properties 또는 /opt/kafka/config/server.properties에 있습니다.

Kafka 설정 파일 확인:

bash 환경에서는 vi 나, nano 가 없는 경우 ec2로 복사해서 사용 

 

cat /opt/kafka/config/server.properties

advertised.listeners 설정 확인:

grep "advertised.listeners" /opt/kafka/config/server.properties

📌 변경하려면

vi /opt/kafka/config/server.properties

📌 수정 예시

advertised.listeners=PLAINTEXT:/your-ip:9092

📌 변경 후 Kafka 재시작

docker restart kafka

 


🚀 정리

Kafka 서버 확인

docker ps -a
docker logs -f kafka

Kafka Topic 관리

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server your-ip:9092
/opt/kafka/bin/kafka-topics.sh --describe --topic crawler-topic --bootstrap-server 43.202.32.28:9092

Kafka 메시지 소비 및 생산

echo "Test Message" | /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server your-ip:9092 --topic crawler-topic
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server your-ip:9092 --topic crawler-topic --from-beginning

Kafka Consumer 그룹 확인

/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your-ip:9092 --list
/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your-ip:9092 --group product-group --describe

 

728x90
반응형

댓글