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

  

 

posted @ 2016-05-25 21:27  tonglin0325  阅读(779)  评论(0编辑  收藏  举报