Docker

[Docker] kafdrop 으로 kafka 모니터링 구축하기

IT-PAPA 2023. 8. 22. 06:17
728x90
반응형

"Kafdrop"은 Kafka 클러스터를 모니터링하고 관리하기 위한 오픈 소스 웹 기반 도구입니다. Kafka는 분산 스트리밍 플랫폼으로, 대량의 데이터를 실시간으로 처리하고 전달하기 위해 사용됩니다. Kafdrop은 Kafka 토픽(topic), 파티션(partition), 메시지(message) 등을 시각적으로 모니터링하고 관리하기 위한 간편한 방법을 제공합니다.

주요 기능과 특징:

  1. 웹 인터페이스: Kafdrop은 웹 브라우저를 통해 사용자 인터페이스에 접근할 수 있습니다. 이를 통해 Kafka 클러스터의 상태, 토픽의 메시지, 파티션 등을 쉽게 확인할 수 있습니다.

  2. 토픽 및 파티션 모니터링: Kafdrop은 Kafka 클러스터에서 사용되는 토픽과 해당 토픽의 파티션을 시각적으로 표시하여 해당 토픽의 상태를 파악할 수 있도록 도와줍니다.

  3. 메시지 브라우징: Kafdrop을 사용하여 각 토픽의 메시지를 검색하고 브라우징할 수 있습니다. 이를 통해 실시간으로 발생하는 데이터의 내용을 확인하고 디버깅할 수 있습니다.

  4. 컨슈머 그룹 관리: Kafka의 컨슈머 그룹을 모니터링하고 관리할 수 있는 기능을 제공합니다. 컨슈머 그룹의 상태 및 오프셋(offset) 정보를 확인할 수 있습니다.

  5. 오프셋 모니터링: 각 파티션의 오프셋 정보를 확인하여 메시지 처리의 진행 상황을 파악할 수 있습니다.

  6. Kafka 클러스터 연결 설정: Kafdrop은 Kafka 클러스터에 연결하기 위한 설정을 간편하게 구성할 수 있는 인터페이스를 제공합니다.

  7. Docker 지원: Kafdrop은 Docker 컨테이너로 실행할 수 있으므로 배포와 관리가 용이합니다.

    Kafdrop은 Kafka 클러스터를 운영하고 모니터링하는 데 유용한 도구로서, 시스템 관리자, 데이터 엔지니어, 개발자 등이 Kafka의 상태를 더 효율적으로 관리하고 분석할 수 있도록 도와줍니다.

 

obsidiandynamics/kafdrop: Kafka Web UI (github.com)

 

GitHub - obsidiandynamics/kafdrop: Kafka Web UI

Kafka Web UI. Contribute to obsidiandynamics/kafdrop development by creating an account on GitHub.

github.com

 

[Docker] 도커의 모든 것, 도커 추천 이미지!!! (tistory.com)

 

[Docker] 도커의 모든 것, 도커 추천 이미지!!!

필자는 이때까지 docker로 구축한 모든 목록을 이 블로그에 담았다. 앞으로도 이 페이지는 필자가 도커를 구축할 때마다 업데이트하려고 하니, 즐겨찾기 해두면 나쁘지 않을 거 같다. 유용하게 사

betwe.tistory.com

 

docker-compose.yml 파일

docker-compose.yml
version: '2'

services:

  # wurstmeister/zookeeper:latest
  zookeeper:
    hostname: zookeeper
    container_name: zookeeper
    image: wurstmeister/zookeeper:latest
    ports:
      - "2181:2181"

  # wurstmeister/kafka:latest - broker 1
  kafka1:
    hostname: kafka1
    container_name: kafka1
    image: wurstmeister/kafka:latest
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka1
      BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
      KAFKA_CREATE_TOPICS: "test1:1:1"
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper

  # wurstmeister/kafka:latest - broker 2
  kafka2:
    hostname: kafka2
    container_name: kafka2
    image: wurstmeister/kafka:latest
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka2
      BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
      KAFKA_CREATE_TOPICS: "test2:1:1"
    ports:
      - "9093:9092"
    depends_on:
      - zookeeper

  # wurstmeister/kafka:latest - broker 3
  kafka3:
    hostname: kafka3
    container_name: kafka3
    image: wurstmeister/kafka:latest
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: kafka3
      BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
      KAFKA_CREATE_TOPICS: "test3:1:1"
    ports:
      - "9094:9092"
    depends_on:
      - zookeeper

  kafdrop:
    hostname: kafdrop
    container_name: kafdrop
    image: obsidiandynamics/kafdrop
    restart: "always"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka1:9092, kafka2:9092, kafka3:9092"
      JVM_OPTS: "-Xms64M -Xmx128M"
    depends_on:
      - zookeeper
      - kafka1
      - kafka2
      - kafka3

 

docker-compose 시작

docker-compose up -d

 

서비스 URL 접속

http://[서버 IP]:9000

서비스 URL 접속
서비스 URL 접속

 

docker-comopse 중지

docker-compose down
728x90
반응형
LIST