Apache Kafka UI 是一個(gè)免費(fèi)的開源 Web UI,用于監(jiān)控和管理 Apache Kafka 集群,可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情況,支持多集群管理、性能監(jiān)控、訪問(wèn)控制等功能。
1 特征
- 多集群管理: 在一個(gè)地方監(jiān)控和管理所有集群
- 使用指標(biāo)儀表板進(jìn)行性能監(jiān)控: 使用輕量級(jí)儀表板跟蹤關(guān)鍵 Kafka 指標(biāo)
- 查看 Kafka Brokers: 查看主題和分區(qū)分配、控制器狀態(tài)
- 查看 Kafka 主題: 查看分區(qū)計(jì)數(shù)、復(fù)制狀態(tài)和自定義配置
- 查看消費(fèi)者組: 查看每個(gè)分區(qū)的停放偏移量、組合滯后和每個(gè)分區(qū)滯后
- 瀏覽消息: 使用 JSON、純文本和 Avro 編碼瀏覽消息
- 動(dòng)態(tài)主題配置: 使用動(dòng)態(tài)配置創(chuàng)建和配置新主題
- 自定義序列化/反序列化插件: 對(duì)數(shù)據(jù)使用現(xiàn)成的 Serde
- 基于角色的訪問(wèn)控制: 精確管理訪問(wèn) UI 的權(quán)限
- 數(shù)據(jù)脫敏: 混淆主題消息中的敏感數(shù)據(jù)
2 入門
要運(yùn)行 Apache Kafka 的 UI,可以使用預(yù)構(gòu)建的 Docker 映像或自行構(gòu)建它(或 jar 文件)。
快速啟動(dòng)(演示運(yùn)行)
docker run -it -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui
然后訪問(wèn) http://localhost: 8080
持久安裝
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
設(shè)置 git
設(shè)置 git 憑據(jù):
git config --global user.name "Mona Lisa"
git config --global user.email "[email protected]"
3 配置向?qū)?/h3>
動(dòng)態(tài)應(yīng)用程序配置
默認(rèn)情況下,kafka-ui 不允許在運(yùn)行時(shí)更改其配置。當(dāng)應(yīng)用程序啟動(dòng)時(shí),它會(huì)從系統(tǒng)環(huán)境、配置文件(Application.yaml)和 JVM 參數(shù)(由-D)讀取配置。一旦配置被讀取,它就被視為不可變,即使配置源(例如文件)發(fā)生更改也不會(huì)刷新。
4 數(shù)據(jù)脫敏
主題數(shù)據(jù)脫敏
可以配置 kafka-ui 來(lái)屏蔽消息頁(yè)面中顯示的敏感數(shù)據(jù)。
消除:對(duì)于 json 對(duì)象 - 刪除目標(biāo)字段,否則 - 返回“null”字符串。
- type: REMOVE
fields: [ "id", "name" ]
...
應(yīng)用示例
{ "id": 1234, "name": { "first": "James" }, "age": 30 }
->
{ "age": 30 }
5 自定義可插拔 serde 注冊(cè)
可以實(shí)現(xiàn)自己的 serde 并將其注冊(cè)到 kafka-ui 應(yīng)用程序中。
- 添加 kafka-ui-serde-api 依賴項(xiàng)(應(yīng)該可以通過(guò) mavencentral 下載)
- 實(shí)現(xiàn) com.provectus.kafka.ui.serde.api.Serde 接口
- 將 serde 打包到 uber jar 中,或者提供包含無(wú)依賴項(xiàng) jar 及其依賴項(xiàng) jar 的目錄
傳送門
開源地址:https://Github.com/provectus/kafka-ui