Dev_duri

UI for Kafka 본문

Monitoring System

UI for Kafka

marcel 2023. 4. 28. 14:37

Kafka 모니터링 툴 중 오픈소스로 제공되는 UI for Kafka를 구축하였습니다.

Apache Kafka용 UI는 Apache Kafka 클러스터를 모니터링하고 관리하기 위한 무료 오픈 소스 웹 UI입니다.

Apache Kafka용 UI는 데이터 흐름을 관찰 가능하게 만들고 문제를 더 빠르게 찾아 해결하며 최적의 성능을 제공하는 간단한 도구입니다. 가벼운 대시보드를 사용하면 브로커, 주제, 파티션, 프로덕션 및 소비와 같은 Kafka 클러스터의 주요 메트릭을 쉽게 추적할 수 있습니다.

 

해당 tool은 spring boot를 기반으로 작동하며 다른 카프카 모니터링 및 관리 도구들과 비교했을 때 보기 쉬운 가시성과 세밀한 옵션 설정 등의 장점이 있습니다. 

다만, CSS 중 외부에서 데이터를 로드하는 부분이 존재하여 폐쇠망과 같은 오프라인 상황에서 사용하기에는 제한 사항이 있습니다. 

 

< 설치 >

테스트 환경에서는 아래 버전의 Kafka ui를 설치했습니다. 

kafka-ui-0.6.2.tar.gz
kafka-ui-api-v0.6.2.jar
해당 버전은 JAVA 17 환경에서 구동이 가능하여 17 버전의 jre를 먼저 설치하였습니다. 

우선 위 두 파일을 서버에 설치 후 tar.gz 파일의 압출을 풀어줍니다.

그리고 ./kafka-ui-0.6.2/kafka-ui-api/src/main/resources/application.yml 파일을 사용 환경에 맞게 수정해줍니다. 

auth:
  type: DISABLED
management:
  endpoint:
    info:
      enabled: true
    health:
      enabled: true
  endpoints:
    web:
      exposure:
        include: "info,health"
logging:
  level:
    root: INFO
    com.provectus: DEBUG
    reactor.netty.http.server.AccessLog: INFO
kafka:
  clusters:
    - name: dev
      bootstrapServers: kafka.server.01:9092,kafka.broker.02:9029,kafka.broker.03:9092
spring:
  jmx:
    enabled: true
  auth:
    type: DISABLED
server:
  port: 8080

설정을 저장한 후 아래 명령을 통해 jar 파일을 실행시킵니다. 

java -Dspring.config.additional-location=/root/kafka-ui-0.6.2/kafka-ui-api/src/main/resources/application.yml -jar /root/kafka-ui-api-v0.6.2.jar

 

<Dashboard>

  • 온라인/오프라인 되어있는 클러스터의 상태를 표시합니다. 
  • 지정한 클러스터들을 한번에 관리할 수 있습니다. 여기서 name, version, broker count 등과 사용 중인 파티션, 토픽의 개수와 용량을 표시합니다. 

 

<Broker 관리>

  • 해당 탭에서는 브로커의 세부 정보들을 확인하고 관리할 수 있습니다. 
  • 각 브로커의 Log directories를 확인할 수 있고 Config 설정 및 Metrics의 관리가 가능합니다. 

 

<Topic 관리>

  • 브로커에 저장된 토픽들의 상세 정보들을 조회할 수 있습니다.
  • 조회 가능한 정보에는 토픽의 메시지, 컨슈머, 해당 토픽의 설정 등을 확인할 수 있습니다.

  • 토픽 탭에서는 메시지의 상세 정보를 필터 기능을 통해 원하는 메시지만 조회할 수도 있습니다. 

 

<Consumer 관리>

  • 클러스터와 연결되어있는 컨슈머들을 조회할 수 있습니다.