Big Data 5 min read

Master Kafka UI: Features, Quick Start, and Advanced Configuration

This guide introduces the open‑source Apache Kafka UI, outlines its key features such as multi‑cluster management and data masking, provides quick Docker start commands, explains persistent installation with Docker‑Compose, and details dynamic configuration, custom serde registration, and data desensitization.

Java High-Performance Architecture
Java High-Performance Architecture
Java High-Performance Architecture
Master Kafka UI: Features, Quick Start, and Advanced Configuration

Apache Kafka UI is a free open‑source web interface for monitoring and managing Apache Kafka clusters, allowing users to view brokers, topics, messages, consumer groups, and more, with support for multi‑cluster management, performance dashboards, role‑based access control, and data masking.

1 Features

Multi‑cluster management: monitor and manage all clusters from one place.

Performance monitoring with metrics dashboard: lightweight dashboards track key Kafka metrics.

View Kafka brokers: see topic and partition assignments, controller status.

View Kafka topics: inspect partition count, replication status, custom configurations.

View consumer groups: view lag per partition and overall group lag.

Browse messages: view messages in JSON, plain text, or Avro encoding.

Dynamic topic configuration: create and configure new topics at runtime.

Custom serialization/deserialization plugins: use existing Serde implementations.

Role‑based access control: fine‑grained UI permission management.

Data masking: obfuscate sensitive data in topic messages.

2 Getting Started

Run Kafka UI using a pre‑built Docker image or build it yourself.

Quick start (demo)

docker run -it -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui

Then open http://localhost:8080 in a browser.

Persistent installation (Docker‑Compose)

services:
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    ports:
      - 8080:8080
    environment:
      DYNAMIC_CONFIG_ENABLED: true
    volumes:
      - ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml

Git configuration (optional)

git config --global user.name "Mona Lisa"
git config --global user.email "[email protected]"

3 Configuration Wizard

Dynamic application configuration

By default, kafka‑ui does not allow runtime configuration changes; it reads settings from environment variables, application.yaml, and JVM -D parameters at startup, treating them as immutable.

4 Data Masking

Topic data masking

Kafka‑ui can be configured to hide sensitive fields in message displays. For JSON objects, specified fields are removed or replaced with the string “null”.

- type: REMOVE
  fields: [ "id", "name" ]
  ...

Example:

{ "id": 1234, "name": { "first": "James" }, "age": 30 }
-> { "age": 30 }

5 Custom Pluggable Serde Registration

Add the kafka-ui-serde-api dependency (available from Maven Central).

Implement the com.provectus.kafka.ui.serde.api.Serde interface.

Package the serde into an uber‑jar or provide a directory with the jar and its dependencies.

Open‑source repository: https://github.com/provectus/kafka-ui
DockerUIbig data
Java High-Performance Architecture
Written by

Java High-Performance Architecture

Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.