Offset Explorer(Kafka Tool)连接kerberos认证的kafka

  使用配置
内容纲要

概要描述


Offset Explorer(2.1之前的版本称为Kafka Tool)是一个用于管理和使Apache Kafka集群的GUI应用程序。提供了一个较为直观的UI可让用户快速查看Kafka集群中的对象以及存储在topic中的消息。

本文主要介绍通过offset explorer如何连接TDH集群中开启kerberos认证的kafka。

详细说明


安装Offset Explorer

这个软件的安装很简单,傻瓜式安装,直接默认下一步安装即可,下载地址:
https://www.kafkatool.com/download.html
本文中使用的版本是Offset Explorer 2.3。

连接kafka配置

1、从kafka集群节点上拷贝/etc/kafka1/conf/krb5.conf和/etc/kafka1/conf/kafka.keytab到PC的本地目录,最好是第一层目录下(这里直接放在D盘),防止找不到。

file

2、创建offset explorer快捷方式,并修改属性增加以下配置:
-J-Djava.security.krb5.conf=D:/krb5.conf

file

3、打开offset explorer,添加kafka集群配置:

file

3.1、Zookeeper配置:
集群名称可以自定义;
kafka版本这里选择0.11,选择高版本也不影响;
zookeeper地址和端口,填一个节点就可以,如果使用的主机名,需要在pc的hosts中添加ip映射,添加之后可以点击“Ping”测试连通性;
chroot path默认根目录;

file

3.2、Security配置:
和集群的kafka认证一致,SASL_PLAINTEXT。

file

3.3、Advanced配置:
Bootstrap servers添加集群kafka集群所有节点,节点之间逗号分格;
SASL Mechanism配置为GSSAPI,即kerberos认证方式。

file

3.4、JAAS Config 配置
这里可以直接在JAAS Config文本框中配置,内容参考如下:

    com.sun.security.auth.module.Krb5LoginModule required
    serviceName="kafka"
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    keyTab="D:/xxll.keytab"
    principal="xxll@TDH";

file

也可以在本地创建jaas.conf文件,内容参考如下:

KafkaClient{
    com.sun.security.auth.module.Krb5LoginModule required
    serviceName="kafka"
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    keyTab="D:/xxll.keytab"
    principal="xxll@TDH";
};

然后在offset explorer快捷方式中修改属性增加配置:
-J-Djava.security.krb5.conf=D:/krb5.conf

最后程序启动参数的整体配置如下,仅供参考:

"D:\Program Files\OffsetExplorer2\offsetexplorer.exe" -J-Djava.security.krb5.conf=D:/krb5.conf -J-Djava.security.auth.login.config=D:/jaas.conf

file

然后ADD添加连接就可以了。

file

如果连接报错可以到程序的安装目录下查看error.log。

注意事项及常见连接报错

注意事项:
1、windows中的路径问题:
添加到程序启动参数中的krb5.conf和jaas.conf文件,以及写在jaas中keytab的路径均是斜杠“/”,如D:/jaas.conf,用反斜杠“\”会配置无效;

2、本地电脑和kafka集群节点的时间要保持一致,否则会认证失败;

常见连接报错:

1、开启SASL_PLAINTEXT认证,但是没有配置jaas,或者jaas认证没有被识别到,重新配置或者检查jaas.conf路径。

java.lang.Exception: Error connecting to the cluster.JAAS config is empty and property java.security.auth.login.config not specified at Offset Explorer startup.
With SASL, you must specify JAAS config in the UI or start Offset Explorer by passing in JAAS config file: offsetexplorer.exe -J-Djava.security.auth.login.config=c:/client_jaas.conf

2、JAAS中没有指定serviceName,如果jaas中的配置是从集群/etc/kafka1/conf/jaas.conf中拷贝的,是不包含serviceName的,需要添加一条:
serviceName="kafka"

Caused by: org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentException: No serviceName defined in either JAAS or Kafka config

3、jaas中的配置项不对,尤其是kerberos认证配置,比如keyTab路径应为"D:/xxll.keytab" ,不能写成"D:\xxll.keytab"。

Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user

4、指定的JAAS.conf配置文件中的格式不正确,比如没有带KafkaClient{}属性名,或换行有问题,或其中的参数多加了分号。

Caused by: java.lang.IllegalArgumentException: Login module control flag is not available in the JAAS config

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。