이론/백엔드 개념정리

5. 카프카 컨슈머 랙 모니터링 방식 비교: 컨슈머 기반 vs Burrow

블스뜸 2025. 5. 1. 17:08

카프카 컨슈머 랙 실시간 확인을 위해 Elasticsearch 또는 InfluxDB와 Grafana를 활용하는 방안이 존재하나, 컨슈머 단위 랙 정보 수집은 다음과 같은 위험성 및 운영 부담을 수반한다.

컨슈머 기반 랙 모니터링의 문제점

  • 컨슈머 상태 의존성: 컨슈머 로직 내 랙 정보 수집은 컨슈머 애플리케이션 상태에 종속된다.
  • 모니터링 불가: 컨슈머 비정상 종료 시 랙 정보 외부 전송이 중단되어 랙 측정이 불가능해진다.
  • 개발 및 관리 복잡성: 신규 컨슈머 인스턴스 추가 시마다 랙 정보 저장 로직을 별도 개발 및 관리해야 한다.
  • 운영 난이도 증가: 랙 정보 미제공 컨슈머 발생 시 전체 컨슈머 그룹 랙 상태 파악이 어려워 운영상 문제를 야기한다.

상기 문제점으로 인해 독립적인 랙 모니터링 솔루션의 필요성이 제기되며, 대표적인 도구가 Burrow이다.

Burrow: 독립적인 컨슈머 랙 모니터링 솔루션

Burrow는 Go 언어로 개발된 오픈소스 애플리케이션으로, 카프카 컨슈머 랙 전문 모니터링 도구이다.

Burrow의 주요 특징

  1. 멀티 카프카 클러스터 지원: 다수 카프카 클러스터 동시 모니터링 기능을 제공하여 통합적인 랙 상태 관리를 지원한다.
  2. Sliding Window 기반 컨슈머 상태 확인: Sliding Window 방식을 통해 컨슈머 그룹 상태를 분석하고, Error, Warning, Ok 등의 상태로 직관적으로 표시한다.
    • Warning: 데이터 유입량 일시 증가로 인한 컨슈머 오프셋 증가 추세 시 경고 상태를 표시한다.
    • Error: 데이터 유입량 대비 컨슈머 데이터 소비 저조로 인한 심각한 랙 증가 시 오류 상태를 표시한다.
    • Ok: 컨슈머 그룹의 정상적인 데이터 소비 및 낮은 랙 상태를 나타낸다.
  3. HTTP API 제공: 모든 모니터링 기능 및 상태 정보를 HTTP API를 통해 제공하여 다양한 외부 시스템과의 연동 및 생태계 확장을 용이하게 한다. HTTP API를 통해 수집된 랙 데이터를 시계열 데이터베이스에 저장하고 Grafana 등의 시각화 도구를 활용하여 맞춤형 모니터링 대시보드 구축이 가능하다.

Burrow는 컨슈머 애플리케이션 상태에 독립적으로 컨슈머 랙을 모니터링함으로써 컨슈머 기반 모니터링 방식의 문제점을 효과적으로 해결하고, 안정적이고 효율적인 카프카 클러스터 운영을 지원한다.