Kafka(18)
-
Bitnami Kafka KRaft Controller ImagePullBackOff 원인 및 복구 방법
Bitnami Kafka KRaft Controller ImagePullBackOff 원인 및 복구 방법Kubernetes 환경에서 Kafka(KRaft 모드) controller Pod 중 하나가 장시간 ImagePullBackOff 상태에 머무는 문제가 발생했다.초기에는 노드 문제나 네트워크 이슈로 보였지만, 실제 원인은 이미지 repository 변경이었다.이 글에서는 문제 원인과 복구 과정을 순서대로 정리한다.(※ 네임스페이스, 노드명, 내부 주소 등은 모두 일반화된 값이다)1. 증상Kafka controller Pod 하나가 정상적으로 올라오지 않았다.kubectl get pods -n -o widekafka-kraft-controller-2 0/1 Init:ImagePullBackOff이..
2026.04.25 -
Avro Schema Registry 호환성 이슈 정리
1. 이슈 개요Kafka 환경에서 Avro + Schema Registry를 사용하는 시스템에서Producer가 새로운 필드를 포함한 메시지를 전송하는 과정에서메시지 전송이 실패하는 문제가 발생했다.표면적으로는 Kafka 전송 오류처럼 보였지만,근본 원인은 Schema Registry의 호환성 정책(Compatibility Policy) 위반이었다.2. 증상Kafka Producer 메시지 전송 실패애플리케이션 로그에 다음과 같은 오류 발생InvalidConfigurationExceptionSchema being registered is incompatible with an earlier schemaHTTP Status: 409 (Conflict)오류 상세 메시지에는 다음 문구가 반복적으로 나타났다.RE..
2026.02.23 -
Filebeat 멀티라인 적용 후 Kafka Connect ES Sink 장애 해결기 (DLQ + 오프셋 스킵)
요약Minecraft 로그 수집 파이프라인(Filebeat → Kafka → Kafka Connect → Elasticsearch)에서 멀티라인 적용 이후 ES 인덱싱 에러가 발생했다.DLQ를 활성화해 문제 레코드를 확인했고, 오프셋 스킵과 멀티라인 규칙 분리로 해결했다.환경 Filebeat (Kubernetes DaemonSet) Kafka / Kafka Connect Elasticsearch (Data Stream) 로그 소스: minecraft, list-logger1. 멀티라인 적용Minecraft 서버 로그에 스택트레이스가 있어 멀티라인 처리를 적용했다.# filebeat.yml (초기 적용)parsers: - container: ~ - multiline: type: patt..
2026.02.17 -
Kafka Connect로 Minecraft 로그를 Elasticsearch에 적재하고 운영하는 방법 (커넥터 수정/확인 포함)
이번에는 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 포함수정용 (..
2026.02.14 -
Kafka Connect → Elasticsearch Sink 설정
도입부Kafka 로그를 Elasticsearch에 쌓는다고 하면 그냥 “토픽 → ES”라고 생각하기 쉬운데, 실제로는 Kafka Connect → Elasticsearch Sink 설정이 핵심이다. 나도 이번에 그걸 처음 알았다.처음엔 커넥터 JSON만 넣으면 끝날 줄 알았는데, 403 권한 에러와 자동 인덱스 생성 문제까지 만나면서 꽤 깊게 파고들었다. 이 글은 그 과정을 정리한 기록이다.환경 Kafka Connect Elasticsearch (Kubernetes 내부 서비스) 커넥터: minecraft-es-sink 토픽: minecraft-logs1. 커넥터 등록 (기본 흐름)포트포워드 후 커넥터 JSON을 등록한다.kubectl -n kafka port-forward svc/kafka-co..
2026.02.10 -
Grafana → Slack 알람으로 로그 원문을 보내려다 깨달은 한계와 올바른 구조 정리
배경Minecraft 서버 로그를 수집해서접속 알림에러(RCON 실패 등) 알림을 Slack으로 실시간 받고 싶었다.이미 구성은 다음과 같았다.Filebeat → Elasticsearch → GrafanaGrafana Alerting을 이용해message: "joined the game" 같은 로그 조건으로 Slack 알람을 보내려 했고,그래프 상에서는 정상적으로 Firing / Resolved 상태도 잘 변했다.하지만 실제 Slack 알림은…문제 1. 알람이 즉시 오지 않는다 (체감 지연)현상화면에서는 그래프가 바로 반응Slack 알림은 한참 뒤에 도착원인 정리Grafana Alert는 로그 이벤트 기반이 아니라 “평가(Evaluation)” 기반이다.ES refresh intervalAlert rul..
2026.02.08