포스트

kafka-exporter 눈으로 모니터링해 보자

kafka-exporter 실무에 적용하는 과정을 그대로 공유합니다.

프롤로그

kafka + prometheus + grafana 설치되어 있는 조건에서 글을 작성했습니다.

kafka 를 활용한 챗봇 로그를 수집하고 분석하는 프로젝트 개발했습니다. 사용량은 꾸준하게 늘어날 예정이고 kafka 의 실시간 상태 모니터링이 필요 했습니다.
RedHat-Kafka Exporter 설명

현시점 가장 최신이고 꾸준하게 업데이트가 되고 있는 danielqsj/kafka_exporter 를 채택해서 모니터링하게 되었습니다.

Helm Install

해당 글은 Helm Chart 를 활용했습니다. 만약 Helm Chart 를 모르시는 분이 있다면 아래 링크를 들어가서 확인해 주시면 감사합니다.
RedHat-helm chart 란?

Helm 다운로드

1
2
3
4
$ git clone https://github.com/danielqsj/kafka_exporter.git
$ cd kafka_exporter/charts/kafka-exporter
$ cp values.yaml values-local.yaml
# values-local edit

Helm kafka-exporter values 설정

1
2
3
4
kafkaExporter:
  kafka:
    servers:
      - kafka.confluent.svc.cluster.local:9092

Helm kafka-exporter Install 실행

1
2
3
$ git clone https://github.com/danielqsj/kafka_exporter.git
$ cd kafka_exporter/charts/kafka-exporter
$ helm install kafka-exporter -n monitoring . -f values.yaml

Helm prometheus values 설정

1
2
3
4
5
6
  # 3869 번째 줄
  additionalScrapeConfigs:
    - job_name: kafka-exporter
      static_configs:
        - targets:
            - "kafka-exporter.monitoring.svc.cluster.local:9308"

Prometheus 의 Targets 목록에 kafka-exporter 가 정상적으로 등록되었는지 확인합니다.

Prometheus kafka-exporter 등록 확인

Grafana 대시보드 등록

대시보드의 New -> Import 선택합니다.

Grafana 신규 대시보드 등록

7589 항목을 Load 합니다.

7589 항목 Load

등록된 Prometheus 항목을 선택 후 Import 합니다.

Prometheus 항목을 선택

사용 중인 Kafka 모니터링이 정상적으로 동작하는 것을 확인하실 수 있습니다.

Prometheus kafka-exporter 등록 확인

에필로그

챗봇 로그 적재 프로젝트 (WaveLens 당시 프로젝트 이름은 제가 직접 만들었습니다. 아주 잘 지었다고 생각합니다!) 에서 다음 주 일요일 특정 시간대에 트래픽이 급증하는 모습을 관찰했습니다. Kafka-exporter를 활용해 이를 분석하고, Kafka 브로커나 파티션 증설이 필요한지 검토했던 실무 경험이 떠오르네요. 프로젝트는 항상 모니터링되어야 하며, 문제 발생에 대비할 수 있도록 모니터링은 필수라고 생각합니다.

kafka-exporter + prometheus + grafana git 저장소 바로가기

Hits

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.