为Kafka开启Jolokia代理

在本文中,我将描述如何为 Kafka 开启Jolokia代理,从而使Kafka Assistant获取重要的度量指标。 Kafka 使用 JMX 接口提供的专用 MBean 发布运行时指标。 这正是我们将在这里使用的通道。

Kafka with Jolokia

Jolokia 是一个 JMX-HTTP 桥接器,可替代 JSR-160 连接器。 它是一种基于代理的方法,支持许多平台。 除了基本的 JMX 操作之外,它还通过批量请求和细粒度安全策略等独特功能增强了 JMX 远程处理。

在本文中,不会介绍 Kafka 的安装。 有大量可用的最新文档,让我们专注于Jolokia。 我们将以代理模式运行 Jolokia。 也就是说,我们将Jolokia代理库放在Kafka的类路径中,在Kafka的配置文件中配置Jolokia并运行它。 这样,Jolokia 将连接到监控 MBean 的 Kafka,并在 HTTP 接口上提供指标。

  1. 下载 Jolokia JVM 代理(例如:jolokia-jvm-1.7.1.jar):https://jolokia.org/download.html
  2. 将其保存到 Kafka 的 lib 文件夹 /home/chen/(这里放在我的家目录里)

    现在,我们已经有了代理库,需要对其进行配置

  3. 打开 /home/chen/kafka_2.12-0.11.0.0/bin/kafka-server-start.sh 然后添加:

    export KAFKA_JMX_OPTS="
    -javaagent:/home/chen/jolokia-jvm-1.7.1.jar=port=8778,host=192.168.31.253 \
    -Dcom.sun.management.jmxremote=true \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Djava.rmi.server.hostname=192.168.31.253 \
    -Dcom.sun.management.jmxremote.host=192.168.31.253 \
    -Dcom.sun.management.jmxremote.port=9999 \
    -Dcom.sun.management.jmxremote.rmi.port=9999 \
    -Djava.net.preferIPv4Stack=true"
    
    (其中192.168.31.253是我的Kafka服务器地址,换成你的)

  4. 最后,启动Kafka,此时,您应该可以看到端口 8778 上的侦听过程。可以使用一下连接来验证是否正确配置:

    http://192.168.31.253:8778/jolokia/version