有没有办法配置要使用 jmx_exporter/prometheus 捕获的 kafka-connect jmx 指标?

Posted

技术标签:

【中文标题】有没有办法配置要使用 jmx_exporter/prometheus 捕获的 kafka-connect jmx 指标?【英文标题】:Is there a way to configure kafka-connect jmx metrics to be captured using a jmx_exporter/prometheus? 【发布时间】:2019-11-12 02:15:43 【问题描述】:

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

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

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

我希望 kafka-connect 在启用jmx_exporter 后在http://<host>:19000/metrics 上发出指标。

【问题讨论】:

【参考方案1】:

强烈建议不要修改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?

【讨论】:

【参考方案2】:

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

所以在 Kafka Connect 框架上启用 jmx_exporter

    打开connect-distributed.sh 修改最后一行调用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 "$@"

【讨论】:

好问题,但有争议的答案 - 很抱歉投反对票 以与上面相同的方式添加 Apm 代理 jar.. 效果很好!谢谢

以上是关于有没有办法配置要使用 jmx_exporter/prometheus 捕获的 kafka-connect jmx 指标?的主要内容,如果未能解决你的问题,请参考以下文章

XCode TestPlan:从命令行指定要使用的配置

Ubuntu中不能使用ssh远程登录的解决办法;ssh服务的安装与配置

华三服务器有没有办法批量配置snmp服务吗?

有没有办法备份 Python 模块?

winserver 2012“远程桌面授权模式尚未配置”临时解决办法

有没有办法以编程方式配置 MDB?