kafka-offset-monitor 0.4.6在Linux跑的时候 无法找到 LoginModule 类:

bbabababa 发表于: 2019-11-26   最后更新时间: 2023-12-06 18:09:44   3,174 游览

老大让我找一个kafka的可视化界面,要能够实时设置offset和查看消费进度和速度,用的kafka2.11版本,用github上的别人打包好的jar或者是自己打包的jar 用以下代码运行时都说找不到loginModule类,求助

java -Djava.security.auth.login.config=/usr/local/aclconf/kafka_client_jaas.conf \
-cp KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar \
   com.quantifind.kafka.offsetapp.OffsetGetterWeb \
 --offsetStorage kafka \
 --kafkaBrokers kafka1:9092,kafka2:9092,kafka3:9092 \
 --kafkaSecurityProtocol SASL_PLAINTEXT \
 --zk zk1:2181,zk2:2181,zk3:2181\
 --port 8888 \
 --refresh 10.seconds \
 --retain 2.days \
 --dbName offsetapp_kafka
Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: 无法找到 LoginModule 类: org.apache.kafka.common.security.plain.PlainLoginModule
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:74)
        at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:60)
        at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:79)
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:577)
        ... 10 more
Caused by: javax.security.auth.login.LoginException: 无法找到 LoginModule 类: org.apache.kafka.common.security.plain.PlainLoginModule
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:794)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
        at org.apache.kafka.common.security.kerberos.Login.login(Login.java:298)
        at org.apache.kafka.common.security.kerberos.Login.<init>(Login.java:104)
        at org.apache.kafka.common.security.kerberos.LoginManager.<init>(LoginManager.java:44)
        at org.apache.kafka.common.security.kerberos.LoginManager.acquireLoginManager(LoginManager.java:85)
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:55)
        ... 13 more
2019-11-26 14:59:11 INFO  KafkaOffsetGetter$:319 - Creating new Kafka Client to get consumer group committed offsets
2019-11-26 14:59:11 INFO  ConsumerConfig:165 - ConsumerConfig values: 
        metric.reporters = []
        metadata.max.age.ms = 300000
        value.deserializer = class org.apache.kafka.common.serialization.ByteArrayDeserializer
        group.id = kafka-monitor-committedOffsetListener
        partition.assignment.strategy = [org.apache.kafka.clients.consumer.RangeAssignor]
        reconnect.backoff.ms = 50
        sasl.kerberos.ticket.renew.window.factor = 0.8

心跳崩了,弄了两天了还是这个问题

发表于 2019-11-26
添加评论

尝试了java -cp运行时带上org.apache.kafka包,但是就变成了启动都启动不了

java -Djava.security.auth.login.config=/usr/local/aclconf/kafka_client_jaas.conf \
-cp KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar \
  com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--offsetStorage kafka \
--kafkaBrokers kafka1:9092kafka2;9092,kafka3:9092 \
--kafkaSecurityProtocol SASL_PLAINTEXT \
--zk zk1:2181,zk2:2181,zk3:2181\
--port 8888 \
--refresh 10.seconds \
--retain 2.days \
--dbName offsetapp_kafka
雪花 -> bbabababa 4年前

看这个错误是kafkaoffsetmonitor都没有这个登录认证模块,建议你换kafka manager吧。
https://www.orchome.com/55

bbabababa -> 雪花 4年前

旧的0.2.0版本好像是没有的,新的0.4.6版本在github上有登录认证模块,现在已经解决了这个问题,出问题的根本是因为maven打包时不会引入外部的依赖,所以在启动kafkaoffsetmonitor时要在classpath下将这个依赖自己引进了,这个LoginModule是 kafka-clients-1.1.0.jar里的.

雪花 -> bbabababa 4年前

https://github.com/quantifind/KafkaOffsetMonitor
这个4、5年没更新了,你自己手动编译,把kafka的客户端升级了是吧?

半兽人 -> bbabababa 4年前

追加classpath,如:

java -Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf \
-cp kafka-clients-0.10.2.0.jar:KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb \
     --offsetStorage kafka \
     --kafkaBrokers localhost:9093 \
     --kafkaSecurityProtocol SASL_PLAINTEXT \
     --zk localhost:2181 \
     --port 18080 \
     --refresh 10.seconds \
     --retain 2.days \
     --dbName offsetapp_kafka
bbabababa -> 半兽人 4年前

感谢,这个问题已经解决,但是运行的时候提示jaas文件找不到servicename,自行编译的时候编译失败

半兽人 -> bbabababa 4年前

嗯,要把源码拉下来指定的,目前没有留口给指定其他安全策略,默认是SASL_PLAINTEXT

你的答案

查看kafka相关的其他问题或提一个您自己的问题