Skip to main content

Docker kafdrop

docker-compose.yml

version: "3"
services:
kafdrop:
image: obsidiandynamics/kafdrop
restart: "no"
ports:
- "9000:9000"
environment:
KAFKA_BROKERCONNECT: "kafka:29092"
depends_on:
- "kafka"
kafka:
image: obsidiandynamics/kafka
restart: "no"
ports:
- "2181:2181"
- "9092:9092"
environment:
KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka:29092,EXTERNAL://localhost:9092"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"
KAFKA_RESTART_ATTEMPTS: "10"
KAFKA_RESTART_DELAY: "5"
ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"

In this configuration:

  • We have two services: Kafka and Kafdrop.
  • Kafka is exposed on ports 2181 (for Zookeeper) and 9092 (for external communication).
  • Kafdrop, a web UI for monitoring Kafka topics, is exposed on port 9000.

Starting Kafka and Kafdrop

docker compose -f docker-compose.yml up -d

Verifying Installation

http://localhost:9000
kafdrop-browser-01.png