Skip to content

Commit 2cb630d

Browse files
authored
README v.1 - new structure (#70)
* README v.1 - new structure, add images, logo * Update README.md
1 parent f71c601 commit 2cb630d

File tree

4 files changed

+137
-29
lines changed

4 files changed

+137
-29
lines changed

README.md

Lines changed: 136 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,156 @@
1-
# Kafka-UI
1+
![Kafka UI logo](images/kafka-ui-logo.png) Kafka UI – Free Web UI for Kafka  
2+
------------------
23

3-
UI for Apache Kafka management
4+
![Kafka UI Price Free](images/free-open-source.svg)
45

5-
## Prerequisites
6+
<em>Kafka UI is a free open-source web UI for monitoring and management of Apache Kafka clusters. </em>
7+
8+
Kafka UI is a simple tool that makes your data flows observable, helps find and troubleshoot issues faster and deliver optimal performance. Its lightweight dashboard makes it easy to track key metrics of your Kafka clusters - Brokers, Topics, Partitions, Production, and Consumption.
9+
10+
Set up Kafka UI with just a couple of easy commands to visualize your Kafka data in a comprehensible way. You can run the tool locally or in the cloud.
11+
12+
![Kafka UI interface dashboard screenshot](images/kafka-ui-interface-dashboard.png)
13+
14+
15+
# Features
16+
* **Multi-Cluster Management** — monitor and manage all your clusters in one place
17+
* **Performance Monitoring with Metrics Dashboard** — track key Kafka metrics with a lightweight dashboard
18+
* **View Kafka Brokers** — view topic and partition assignments, controller status
19+
* **View Kafka Topics** — view partition count, replication status, and custom configuration
20+
* **View Consumer Groups** — view per-partition parked offsets, combined and per-partition lag
21+
* **Browse Messages** — browse messages with JSON, plain text and Avro encoding
22+
* **Dynamic Topic Configuration** — create and configure new topics with dynamic configuration
23+
* **Configurable Authentification** — secure your installation with optional Github/Gitlab/Google OAuth 2.0
24+
25+
26+
# Getting Started
27+
28+
To run Kafka UI, you can use a pre-built Docker image or build it locally.
29+
30+
## Running From Docker Image
31+
The official Docker image for Kafka UI is hosted here: [hub.docker.com/r/provectus/kafka-ui](https://hub.docker.com/r/provectus/kafka-ui).
32+
33+
Launch Docker container in the background:
34+
```sh
35+
36+
docker run -d {}/kafka-ui-api:latest
37+
-e KAFKA_CLUSTERS_0_NAME=local
38+
-e KAFKA_CLUSTERS_0__BOOTSTRAPSERVERS=kafka0:29092
639

7-
Install Homebrew Cask
840
```
41+
Then access the web UI at [http://localhost:9000](http://localhost:9000).
42+
43+
44+
## Building With Docker
45+
46+
Steps to build Kafka UI locally with Docker:
47+
48+
1. Install prerequisites: Java and Docker
49+
2. Clone this repository and open a terminal in the directory of the project
50+
3. Build a Docker container with Kafka UI
51+
4. Start Kafka UI with your Kafka clusters
52+
5. Navigate to Kafka UI
53+
54+
### Prerequisites
55+
56+
* Java 13 or newer
57+
* Docker
58+
59+
### Installing Prerequisites on Mac
60+
1. Install Homebrew Cask:
61+
```sh
962
> brew update
1063
> brew cask
11-
```
12-
13-
Install JAVA 13 with Homebrew Cask
14-
```
64+
```
65+
2. Install JAVA 13 with Homebrew Cask:
66+
```sh
1567
> brew tap homebrew/cask-versions
1668
> brew cask install java (or java13 if 13th version is not the latest one)
17-
```
69+
```
70+
### Building
1871
72+
Once you installed the prerequisites and cloned the repository, run the following commands in your project directory:
1973
20-
## Getting started
74+
Build a Docker container with Kafka UI:
75+
```sh
76+
./mvnw clean install -Pprod
77+
```
78+
Start Kafka UI with your Kafka clusters:
79+
```sh
80+
docker-compose -f ./docker/kafka-ui.yaml up
81+
```
82+
To see Kafka UI, navigate to http://localhost:8080.
2183
22-
Build application and docker container
84+
If you want to start only kafka-clusters:
85+
```sh
86+
docker-compose -f ./docker/kafka-clusters-only.yaml up
87+
```
88+
Then start Kafka UI with a **local** profile.
2389
24-
```
25-
./mvnw clean install -Pprod
26-
```
90+
## Running Locally Without Docker
2791
28-
Start application with kafka clusters
92+
```sh
93+
./mvnw spring-boot:run -Pprod
94+
```
2995
30-
```
31-
docker-compose -f ./docker/kafka-ui.yaml up
32-
```
3396
34-
Application should be available at http://localhost:8080.
97+
## Running in Kubernetes
98+
To be done
3599
36-
To start only kafka-clusters:
100+
# Guides
37101
38-
```
39-
docker-compose -f ./docker/kafka-clusters-only.yaml up
40-
```
102+
To be done
41103
42-
Kafka-ui then should be started with **local** profile
104+
## Connecting to a Secure Broker
43105
44-
### Run application without docker:
106+
Kafka UI supports TLS (SSL) and SASL connections for [encryption and authentication](http://kafka.apache.org/090/documentation.html#security). This can be configured by providing a combination of the following files (placed into the Kafka root directory):
107+
108+
To be continued
109+
110+
111+
# Configuration
112+
113+
## Configuration File
114+
Example of how to configure clusters in the [application-local.yml](https://github.com/provectus/kafka-ui/blob/master/kafka-ui-api/src/main/resources/application-local.yml) configuration file:
115+
116+
117+
```sh
118+
kafka:
119+
clusters:
120+
-
121+
name: local
122+
bootstrapServers: localhost:29091
123+
zookeeper: localhost:2183
124+
schemaRegistry: http://localhost:8085
125+
# schemaNameTemplate: "%s-value"
126+
jmxPort: 9997
127+
-
128+
```
129+
130+
* `name`: cluster name
131+
* `bootstrapServers`: where to connect
132+
* `zookeeper`: zookeeper service address
133+
* `schemaRegistry`: schemaRegistry's address
134+
* `schemaNameTemplate`: how keys are saved to schemaRegistry
135+
* `jmxPort`: open jmxPosrts of a broker
136+
137+
Configure as many clusters as you need by adding their configs below separated with `-`.
138+
139+
## Environment Variables
140+
141+
Alternatively, each variable of of the .yml file can be set with an environment variable.
142+
For example, if you want to use an environment variable to set the `name` parameter, you can write it like this: `KAFKA_CLUSTERS_2_NAME`
143+
144+
|Name |Description
145+
|-----------------------|-------------------------------
146+
|`KAFKA_CLUSTERS_2_NAME` | Cluster name
147+
|`KAFKA_CLUSTERS_2_BOOTSTRAPSERVERS` |Address where to connect
148+
|`KAFKA_CLUSTERS_2_ZOOKEEPER` | Zookeper service address
149+
|`KAFKA_CLUSTERS_2_SCHEMAREGISTRY` |SchemaRegistry's address
150+
|`KAFKA_CLUSTERS_2_SCHEMANAMETEMPLATE` |How keys are saved to schemaRegistry
151+
|`KAFKA_CLUSTERS_2_JMXPORT` |Open jmxPosrts of a broker
152+
153+
154+
155+
45156
46-
```
47-
cd kafka-ui-api
48-
./mvnw spring-boot:run -Pprod
49-
```

images/free-open-source.svg

Lines changed: 1 addition & 0 deletions
Loading
75.7 KB
Loading

images/kafka-ui-logo.png

9.96 KB
Loading

0 commit comments

Comments
 (0)