kafka-ui部署
1.介绍
kafka-ui是一个开源的kafka ui工具,支持kafka,schema registry(avro和protobuf都支持),kafka connect,KSQL DB等组件
github项目
https://github.com/provectus/kafka-ui
docker镜像地址
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命令
helm install kafka-ui kafka-ui/kafka-ui --set envs.config.KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="xxx:9092"
docker命令
docker run -p 8080:8080 \ -e KAFKA_CLUSTERS_0_NAME="xxx"\ -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="xxx:9092" \ -d provectuslabs/kafka-ui:latest
如果想添加kafka connect等组件,配置参考
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
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也没有回答清楚
https://github.com/provectus/kafka-ui/issues/3802
所以这里给出正确的配置,其中的配置需要在keycloak上先注册好应用
docker run -p 8080:8080 \ -e KAFKA_CLUSTERS_0_NAME="your_kafka_name"\ -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="ip:9092" \ -e AUTH_TYPE=OAUTH2 \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_CLIENTID=kafka-ui \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_CLIENTSECRET=xxxxxx-xxxx-xxxx-xxxx-xxxxxx \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_SCOPE=openid \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_PROVIDER=keycloak \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_CLIENT-NAME=keycloak \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_USER_NAME_ATTRIBUTE=preferred_username \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_ISSUER_URI="https://keycloak.xxxx.com/auth/realms/master" \ -e AUTH_OAUTH2_CLIENT_KEYCLOAK_CUSTOM_PARAMS_TYPR="https://keycloak.xxxx.com/auth/realms/master" \ -d provectuslabs/kafka-ui:latest
登录后如下,点击keycloak即可实现openid登录
如果kafka-ui开启了HTTPS的话,可以使用如下方式开启Microsoft Azure认证
docker run -p 8080:8080 \ -e KAFKA_CLUSTERS_0_NAME="your_kafka_name"\ -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="ip:9092" \ -e AUTH_TYPE=OAUTH2 \ -e AUTH_OAUTH2_CLIENT_AZURE_CLIENTID=xxxxxx-xxxx-xxxx-xxxx-xxxxxx \ -e AUTH_OAUTH2_CLIENT_AZURE_CLIENTSECRET=xxxxx \ -e AUTH_OAUTH2_CLIENT_AZURE_SCOPE="https://graph.microsoft.com/User.Read" \ -e AUTH_OAUTH2_CLIENT_AZURE_PROVIDER=azure \ -e AUTH_OAUTH2_CLIENT_AZURE_ISSUER_URI="https://login.microsoftonline.com/xxxxxx-xxxx-xxxx-xxxx-xxxxxx/v2.0" \ -d provectuslabs/kafka-ui:latest
本文只发表于博客园和tonglin0325的博客,作者:tonglin0325,转载请注明原文链接:https://www.cnblogs.com/tonglin0325/p/5528560.html