1.介绍#
kafka-ui是一个开源的kafka ui工具,支持kafka,schema registry(avro和protobuf都支持),kafka connect,KSQL DB等组件
github项目
1 | https://github.com/provectus/kafka-ui |
docker镜像地址
1 | https://hub.docker.com/r/provectuslabs/kafka-ui |
注意:该kafka-ui只支持2.x.x版本的kafka,对于低版本的kafka不支持,参考issue:https://github.com/provectus/kafka-ui/issues/2097
界面如下
其中schema registry的schema类型支持AVRO,JSON和PROTOBUF
2.安装部署#
参考:kafka 可视化 Web UI for Apache Kafka安装部署文档
可以使用helm或者docker来部署容器
helm命令
1 | helm install kafka-ui kafka-ui/kafka-ui --set envs.config.KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="xxx:9092" |
docker命令
1 | docker run -p 8080:8080 \ |
如果想添加kafka connect等组件,配置参考
1 | https://docs.kafka-ui.provectus.io/configuration/complex-configuration-examples/kraft-mode-+-multiple-brokers |
3.集成openid#
kafka-ui支持丰富的认证方式,比如basic auth(账号密码),OAuth2(google/github等),AWS IAM,LDAP,SSO(openid),SASL_SCRAM
1 | https://docs.kafka-ui.provectus.io/configuration/authentication |
目前我司采用的任务方式主要有Microsoft Azure以及keycloak,Microsoft Azure测试下来需要kafka-ui启用HTTPS,因为在Microsoft Azure上填写回调地址的时候会提示只支持HTTPS,所以下面使用keycloak的认证方式
kafka-ui使用docker命令启动的时候开启keyloack认证,官方文档上并没有写清楚如何集成keycloak,对应的issue也没有回答清楚
1 | https://github.com/provectus/kafka-ui/issues/3802 |
所以这里给出正确的配置,其中的配置需要在keycloak上先注册好应用
1 | docker run -p 8080:8080 \ |
登录后如下,点击keycloak即可实现openid登录
如果kafka-ui开启了HTTPS的话,可以使用如下方式开启Microsoft Azure认证
1 | docker run -p 8080:8080 \ |