4 回答
TA贡献1807条经验 获得超9个赞
在我找到的所有解决方案中,它帮助我将 KAFKA_OPTS 变量更改为 EXTRA_ARGS。但我还是不明白冲突的原因。Kafka 在一个端口上运行,javaagent 在另一个端口上运行。但尽管如此,在创建主题时却出现错误。我用来传递 Prometheus 指标的 Javaagent
TA贡献1995条经验 获得超2个赞
Kafka CLI 脚本使用与代理使用的相同的环境变量(特别是KAFKA_OPTS和JMX_PORT)。这就是他们冲突的原因。我正在使用汇合容器(confluentinc/cp-server:5.5.1):
JMX_PORT: 9991
KAFKA_OPTS: "-javaagent:/usr/local/bin/jmx_prometheus_javaagent-0.13.0.jar=7071:/etc/jmx-exporter/kafka-2_0_0.yml"
volumes:
- ./jmx_exporter/kafka-2_0_0.yml:/etc/jmx-exporter/kafka-2_0_0.yml
- ./jmx_exporter/jmx_prometheus_javaagent-0.13.0.jar:/usr/local/bin/jmx_prometheus_javaagent-0.13.0.jar
很多线程都指向JMX_PORTonly 但这对我没有帮助。在能够运行 CLI 命令之前,我必须从容器内部取消设置两个环境变量。它的工作原理如下:
unset JMX_PORT
unset KAFKA_OPTS
kafka-run-class kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic your_topic
它不会破坏您的代理,因为这些变量是按会话设置的。
TA贡献1785条经验 获得超8个赞
启用 JMX 时,kafka-topics.sh 和 kafka-console- Producer.sh 等工具会失败。这是由于 JMX_PORT 环境变量引起的。Kafka 帮助程序脚本 /opt/kafka/bin/kafka-run-class.sh 将尝试在 JMX 绑定到指定端口的新 JVM 中调用所需的命令。由于已在容器中运行的代理 JVM 绑定了此端口,因此该进程失败并错误退出。
解决方案是在命令前添加 JMX_PORT= 前缀或取消设置环境变量,即取消设置 JMX_PORT
TA贡献1864条经验 获得超6个赞
您的 Kafka 实例正在端口 7071 上侦听舞会刮擦信息,这看起来不错。当您发出 Kafka 命令时,看起来您添加到 KAFKA_OPTS 的 javaagent 也在尝试侦听端口 7071。不确定为什么在那里需要 javaagent,但在那里尝试不同的端口。
添加回答
举报