有没有一种方法可以配置要使用jmx_exporter / prometheus捕获的kafka-connect jmx指标?

时间:2019-07-01 12:05:49

标签: apache-kafka prometheus apache-kafka-connect jmx-exporter

我正在我们的Kafka生态系统中设置对Kafka Connect的监视。我为kafka经纪人启用了JMX导出器,并且工作正常。现在,我正在尝试为kafka connect启用JMX导出器。但是,不清楚从哪里开始。

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

kafka-run-class.sh被修改为使jmx_exporter能够在http://<host>:9304/metrics上发出jmx指标

我希望一旦启用http://<host>:19000/metrics,kafka-connect将在jmx_exporter上发布指标。

2 个答案:

答案 0 :(得分:4)

强烈不建议在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的影响吗?

答案 1 :(得分:0)

到处走走我找到了解决该问题的方法。可以将Java代理添加到connect-distributed.sh中,并开始很好地发出度量标准。

因此在Kafka Connect框架上启用jmx_exporter

  1. 打开connect-distributed.sh
  2. 修改最后一个调用kafka-run-class.sh
  3. 的行
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 "$@"