我目前正在尝试揭发Kafka Connect Workers:
使用这个对接者图像:
FROM cnfldemos/cp-server-connect-datagen:0.5.3-7.1.0
ADD --chown=1000:1000 exporterConfig.yml /opt/prometheus-exporter/prom-jmx-agent-config.yml
ADD --chown=1000:1000 jmx_prometheus_javaagent-0.17.0.jar /opt/prometheus-exporter/agent.jarJMX出口商版本是0的最后一个版本。
以下是连接工作人员启动时的结果日志:
PS D:\env\confluent-platform> docker logs connect -f
===> User
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
===> Configuring ...
===> Running preflight checks ...
===> Check if Kafka is healthy ...
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
Caused by: java.lang.NoSuchFieldError: UNKNOWN
at io.prometheus.jmx.JmxCollector$Rule.<init>(JmxCollector.java:57)
at io.prometheus.jmx.JmxCollector.loadConfig(JmxCollector.java:214)
at io.prometheus.jmx.JmxCollector.<init>(JmxCollector.java:91)
at io.prometheus.jmx.JavaAgent.premain(JavaAgent.java:29)
... 6 more
*** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed这个java.lang.NoSuchFieldError让我思考依赖冲突问题,
我通过了JMX出口商的代码&它简单的依赖性
实际上,Collector.java类中来自简单依赖项的未知Type枚举值仅出现在版本10之后,而14是JMX导出程序中的依赖版本号。
但是我使用了cnfldemos/cp connect的源代码,并且我找不到对这个依赖程序包的任何引用。
欢迎任何建议!
发布于 2022-11-02 12:58:53
如果您检查融合卡夫卡-连接图像的源代码
您将注意到,您必须设置以下环境变量以启用JMX
您面临的问题是,当您指定KAFKA_JMX_OPTS时,默认情况下jmx身份验证是enabled。若要禁用它,请使用此标志-Dcom.sun.management.jmxremote.authenticate=false
我通过以下配置解决了这个问题:
KAFKA_JMX_OPTS: -javaagent:/usr/share/java/kafka-connect-sample/jmx_prometheus_javaagent-0.17.2.jar=8080:/usr/share/java/kafka-connect-sample/prometheus-kafka-connect.yml -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=falsehttps://stackoverflow.com/questions/72744425
复制相似问题