Today, we have lots of Kafka tools to use, but we have barely neat web Kafka UI to use and bind to our business services. Hence, KaViewer is here, which is made for both Local, On-Premise and Cloud Native service. KaViewer web ui, let you can view and operate kafka with permission control, more details see Architecture.
- Add/Delete New Kafka Cluster/Broker (Not delete the real instance). ✅
- Add/Delete Topic. ✅
- Publish/Consumer Messages. ✅
Based on those functions,KaViewer provide two common mode to suit the two different scenario.
- FULL mode, support all the operations above.
- LITE mode (default), only support to view kafka message.
And KaViewer support the custom toggles config to enable or disable those operations based on the two mode above as well.
Group | Config Name | Config Value | Description |
---|---|---|---|
Cluster | kaviewer.toggle.cluster.create | Boolean | Allow to add new cluster (true/false) |
Cluster | kaviewer.toggle.cluster.delete | Boolean | Allow to delete new cluster (true/false) |
Topic | kaviewer.toggle.topic.create | Boolean | Allow to create new topic (true/false) |
Topic | kaviewer.toggle.topic.delete | Boolean | Allow to delete new topic (true/false) |
Consumer | kaviewer.toggle.consumer.write | Boolean | Allow to publish new message (true/false) |
Consumer | kaviewer.toggle.consumer.read | Boolean | Allow to consume new message (true/false) |
By default, KaViewer won't persist the registered connections when it shut down.
KaViewer provides the exposed API interface Persistent
, which you can do the enhancement to persist KaViewer data.
It is similar to SpringBoot autoconfiguration mechanism. You can import kaviewer-runner.jar
as dependency and implement the Persistent
interface, then add the META-INF/kaviewer.factories
to do the trick.
Require
Java >=11
andKafka >=0.11.0
.
Use git clone
to clone the repository.
Go into the directory and run mvn clean package -Dmaven.test.skip=true --file pom.xml
to build project.
Run
java -jar app/target/app-0.0.1.jar
LITE mode by default .java -jar app-0.0.1.jar --kaviewer.mode=FULL
to enable FULL mode.
Make sure you already have the docker env.
Docker Image:docker pull kaviewer/kaviewer:latest
More details see DockerHub
There have many docker-compose file
for different scenarios.
-
Run with DockerHub public image
docker-compose -f docker-compose.yaml up -d
-
Checkout use this simple command to run the application from project:
docker-compose -f docker-compose-local-app.yaml up -d
KaViewer uses the Helm
to install and deploy to kubernetes resources.
Please check the KaViewer Helm Chart Usage doc for more details.
Folk this project and build locally.:dog:
Make your best changes and send a PR.:heavy_plus_sign:
Using the Issue
trace is a plus.:cat:
KaViewer is licensed under the Apache License 2.0. @Koy