Kafka UI 활용: Apache Kafka 모니터링 및 관리 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- *개발자 및 DevOps 엔지니어**
- 난이도: 중간 (Kafka와 컨테이너 기반 인프라 경험 필요)
- 도움: Kafka 클러스터의 실시간 모니터링, 디버깅, 구성 관리 방법 제공
핵심 요약
- Kafka UI는 Multi-Cluster Management와 Performance Monitoring Dashboard를 통해 Kafka 모니터링을 간소화
- Docker와 Kubernetes 기반 설치 예시 제공 (``
docker-compose.yml
`및
`kafkaUI.depl.yaml
`` 파일 활용) - 보안 기능 포함: RBAC, OAuth 2.0 인증, 데이터 마스킹
섹션별 세부 요약
1. Kafka UI 주요 기능
- Multi-Cluster Management: 여러 Kafka 클러스터 통합 관리
- 메트릭스 대시보드: 토픽, 파티션, 컨슈머 그룹의 실시간 성능 추적
- 메시지 브라우징: JSON/Avro/평문 형식의 메시지 확인 및 데이터 마스킹 지원
2. Docker 기반 Kafka 설치
- Zookeeper/Kafka 컨테이너 설정:
```yaml
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
ports: "2181:2181"
kafka:
image: confluentinc/cp-kafka:latest
ports: "9092:9092"
depends_on: zookeeper
```
- 명령어 실행:
docker-compose up -d
3. Kubernetes 기반 Kafka 설치
- Deployment/Service YAML 파일 생성:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kafka-broker-depl
spec:
replicas: 1
template:
spec:
containers:
- name: kafka-broker
image: confluentinc/cp-kafka:latest
env:
- name: KAFKA_ZOOKEEPER_CONNECT
value: "zookeeper-srv:2181"
```
- 적용 명령:
kubectl apply -f kafka.depl.yaml
4. Kafka UI 배포
- Docker Compose 설정:
```yaml
kafka-ui:
image: provectuslabs/kafka-ui:latest
ports: "8080:8080"
environment:
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "kafka:9092"
```
- Kubernetes 서비스 포워딩:
kubectl port-forward service/kafka-ui-srv 8080:8080
결론
- Kafka UI는 Docker/Kubernetes 환경에서 Kafka 클러스터의 실시간 모니터링, 디버깅, 구성 관리에 최적화된 도구.
- 설치 시 주의사항:
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
설정으로 토픽 자동 생성 방지, OAuth 2.0 인증을 통한 보안 강화. - URL 접속:
http://localhost:8080
에서 Kafka 상태 확인 가능.