1

我正在为我们的 Kafka 生态系统中的 Kafka 连接设置监控。我已经为 kafka 代理启用了 JMX 导出器并且工作正常。现在我正在尝试为 kafka 连接启用 JMX 导出器。但是,有点不清楚从哪里开始。

我只能修改connect-distributed.sh以启用更改。任何指针都会是一个很好的补充。

kafka-run-class.sh已修改为能够jmx_exporterhttp://<host>:9304/metrics

http://<host>:19000/metrics我希望 kafka-connect一旦jmx_exporter启用就会发出指标。

4

2 回答 2

7

bin非常不建议修改目录中的脚本。将 Kafka 升级到下一个版本时,提取新的二进制文件将覆盖脚本中所做的更改。

首选方法应该是KAFKA_JMX_OPTS在脚本之外设置环境变量:

export KAFKA_JMX_OPTS="-javaagent:/opt/kafka/libs/jmx_prometheus_javaagent-0.12.0.jar=127.0.0.1:10902:/etc/kafka-connect/jmx_exporter.yaml"

如果在通过脚本启动 Kafka 之前设置了 var,它将使用 var 而不是中定义的默认值/bin/kafka-server-start.sh

这个答案是由How do I set the Java options for Kafka 提供的

于 2020-02-26T15:43:09.950 回答
0

挖掘我已经找到了解决这个问题的方法。可以将 Java 代理添加到connect-distributed.sh并开始很好地发出指标。

所以启用jmx_exporterKafka Connect 框架

  1. 打开connect-distributed.sh
  2. 修改最后一行调用kafka-run-class.sh
exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectDistributed "$@"

到以下

exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS -javaagent:/path/to/jmx_prometheus_javaagent-0.11.0.jar=9408:/path/to/config/file/prometheus.yml org.apache.kafka.connect.cli.ConnectDistributed "$@"
于 2019-07-02T10:48:35.207 回答