Kafka Connect로 Minecraft 로그를 Elasticsearch에 적재하고 운영하는 방법 (커넥터 수정/확인 포함)

2026. 2. 14. 13:49k8s/Kafka

이번에는 Filebeat → Kafka → Kafka Connect → Elasticsearch 파이프라인에서
Minecraft 로그를 안전하게 운영하는 방법을 정리했다.
특히 커넥터 수정 시 PUT 규칙, 설정 파일 분리, 문제 발생 시 원인/해결을 중심으로 구성했다.


1) 현재 구조

  • Filebeat가 Minecraft 로그를 Kafka 토픽(minecraft-logs)으로 전송
  • Kafka Connect(Elasticsearch Sink)가 토픽을 Elasticsearch minecraft-logs 인덱스로 적재

2) 커넥터 설정 파일 2종류

운영 편의를 위해 POST용/PUT용 JSON을 분리해 두는 게 안정적이다.

  • 생성용 (POST)
    minecraft-es-sink.json

    • name + config 포함
  • 수정용 (PUT)
    minecraft-es-sink-config.json

    • config만 포함

3) 커넥터 수정(UPDATE) 이유

  • 오프셋 유지
  • 중복/누락 위험 감소
  • 다운타임 최소화

4) 커넥터 수정 명령어 (PUT)

curl -s -X PUT http://localhost:8083/connectors/minecraft-es-sink/config \
  -H "Content-Type: application/json" \
  --data @minecraft-es-sink-config.json

5) 확인 명령어

설정 확인

curl -s http://localhost:8083/connectors/minecraft-es-sink/config | jq .

상태 확인

curl -s http://localhost:8083/connectors/minecraft-es-sink/status | jq .

커넥터 목록

curl -s http://localhost:8083/connectors | jq .

6) 주의사항: TimestampRouter 실패 이슈

  • Elasticsearch Sink는 토픽명을 바꾸는 SMT(TimestampRouter) 를 지원하지 않음
  • 적용하면 아래 에러로 태스크가 FAILED
    Connector doesn't support topic mutating SMTs
  • 해결: TimestampRouter 제거 + 원래 매핑 방식 사용