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
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
'Backend' 카테고리의 다른 글
[Backend] kafka - Spring Boot 프로젝트 설정하기 (0) | 2025.03.13 |
---|---|
[Backend] kafka 알아보기 (0) | 2025.03.13 |
[Backend] Kafka 설정하기 - Docker container 만들기 (0) | 2025.03.13 |
댓글