Confluent Kafka代理容器中的jmx出口商



我正在使用以下Kafka容器(作为docker- composition .yml的一部分)

broker:
image: confluentinc/cp-kafka:6.0.1
hostname: broker
container_name: broker
depends_on:
- zookeeper
ports:
- "29092:29092"
- "9092:9092"
- "9101:9101"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_JMX_PORT: 9101
KAFKA_JMX_HOSTNAME: localhost
EXTRA_ARGS: '-javaagent:/usr/share/jmx-exporter/jmx_prometheus_javaagent-0.15.0.jar=7101:/etc/jmx-exporter/config.yml'
volumes:
- ./kafka/data:/var/lib/kafka/data
- ./jmx-exporter/kafka-2_0_0.yml:/etc/jmx_exporter/config.yml
- ./jmx-exporter/jar:/usr/share/jmx_exporter/

Jmx导出器导致容器崩溃,日志如下:

===> Launching ... 
===> Launching kafka ... 
Error occurred during initialization of VM
Error opening zip file or JAR manifest missing : /usr/share/jmx-exporter/jmx_prometheus_javaagent-0.15.0.jar
agent library failed to init: instrument

我验证了jmx出口商jar和它的配置可以在容器中使用。

jmx_prometheus_javaagent-0.15.0.jar已从这里下载:github.com/prometheus/jmx_exporter

任何想法?

我在使用不同的Confluent Docker映像时遇到了非常类似的问题,并且意识到来自JVM的错误消息具有误导性:在我的情况下,问题实际上是权限之一(jar在映像中,但只是JVM运行的用户无法读取)。

我使用DockerfileADD指令与URL来获取Prometheus jmx_出口商jar作为图像构建阶段的一部分,但未能意识到,由于Confluent图像作为一个名为appuser的用户运行,容器内的结果文件将无法被该用户读取。

在我的情况下,解决方案是使用--chown标志的ADD指令。由于您是通过卷挂载导出器罐子,我猜有类似的事情发生。

/usr/share/jmx-exporter/jmx_prometheus_javaagent-0.15.0.jar=7101:/etc/jmx-exporter/config.yml'

在这里,7101表示端口。根据这个,hmx端口是7101,但在后面的配置中,您提到端口是9101。

试着改变它。我希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新