[Apache Kafka] 모니터링하기

Q·2022년 7월 29일
0

Apache Kafka

목록 보기
4/5

Burrow

  • kafka의 consumer lag를 모니터링하기 위해서는 오픈 소스인 burrow 사용해야 함

  • kafka-client 라이브러리를 사용해서 Java 혹은 Scala와 같은 언어를 통해 kafka consumer 구현 가능

    • 구현한 consumer 객체를 통해 현재 lag 정보를 가져올 수 있음
    • lag를 실시간 모니터링하고 싶으면 데이터를 elasticsearch나 InfluxDB와 같은 저장소에 넣은 뒤 Grafana 대시보드를 통해 확인하는 방법도 있음
  • 하지만, consumer 단위로 lag를 모니터링하는 것은 위험도가 크고 운영요소를 많이 고려해야 함

    • consumer 로직단에서 lag를 수집하는 것은 consumer 상태에 dependency가 걸림
    • consumer가 비정상적으로 종료되면 consumer가 더 이상 lag 측정 불가능
    • 추가적으로 consumer가 개발될 때마다 해당 consumer에 lag 정보를 특정 저장소에 저장할 수 있도록 로직을 개발해야 하는 개발 공수도 들어감
    • 또한, consumer lag를 수집할 수 없는 consumer가 있을 경우 lag 모니터링이 불가능하며 운영이 힘들어짐
  • 따라서, LinkedIn에서는 Apache Kafka와 함께 consumer lag를 효과적으로 모니터링하도록 Burrow 내놓음

  • Burrow는 golang으로 작성된 오픈소스이며 지속적으로 관리되는 깃헙 주소가 있음

  • Burrow는 consumer lag 모니터링을 도와주는 독단적인 애플리케이션이며 아래의 3가지 특징을 가짐

    • multi kafka cluster 지원

    • 슬라이딩 윈도우를 통한 consumer status 확인 가능

      • ERROR: 데이터가 많아지는데 consumer가 데이터를 안 가져오는 상태
      • WARNING: 데이터양이 일시적으로 증가하여 consumer offset가 증가한 상태
      • OK
    • HTTP api 제공

      • 다양한 추가 생태계 구축 가능
      • HTTP api를 호출해서 response 받은 데이터를 시계열 DB와 같은 곳에 저장하는 애플리케이션으로 만들어 활용 가능

Kafka Manager (CMAK)

  • kafka 클러스터를 모니터링하는 툴이며 아래의 기능을 제공

    • Kafka Cluster 관리
    • Consumer Lag 관리
    • Partition Rebalancing (파티션 추가)
    • Topic 관리: 리스트 조회, 생성, 삭제
  • 공식 깃허브: https://github.com/yahoo/CMAK

출처: https://jaimemin.tistory.com/1901 [꾸준함:티스토리]

profile
Data Engineer

0개의 댓글