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.
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-uiThen 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.yamlGit 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
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
