第 20 章 使用 JMX 监控集群
收集指标对于了解 Kafka 部署的健康状态和性能至关重要。通过监控指标,您可以在问题变得至关重要前主动识别问题,并根据资源分配和容量规划做出明智的决策。如果没有指标,您可能会对 Kafka 部署的行为有有限的可见性,这有助于进行故障排除。设置指标可节省长时间运行的时间和资源,并帮助确保 Kafka 部署的可靠性。
Kafka 代理、ZooZ、Kafka Connect 和 Kafka 客户端使用 Java 管理扩展(JMX)来主动公开管理信息。此信息主要由有助于监控 Kafka 集群的性能和条件的指标组成。Kafka 与其他 Java 应用程序一样,它依赖于受管 Bean 或 MBeans 为监控工具和仪表板提供此信息。
JMX 在 JVM 级别上运行,允许外部工具从 ZooKeeper、Kafka 代理等连接和检索管理信息。要连接到 JVM,这些工具必须在相同计算机上运行,并且默认为同一用户。
20.1. 启用 JMX 代理
使用 JVM 系统属性启用对 Kafka 组件的 JMX 监控。使用 KAFKA_JMX_OPTS
环境变量设置启用 JMX 监控所需的 JMX 系统属性。运行 Kafka 组件的脚本使用这些属性。
流程
使用 JMX 属性设置
KAFKA_JMX_OPTS
环境变量以启用 JMX 监控。export KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
将 <port> 替换为您要 Kafka 组件侦听 JMX 连接的端口名称。
将
org.apache.kafka.common.metrics.JmxReporter
添加到server.properties
文件中的metric.reporters
。metric.reporters=org.apache.kafka.common.metrics.JmxReporter
-
使用适当的脚本启动 Kafka 组件,如
bin/kafka-server-start.sh
用于代理,或bin/connect-distributed.sh
用于 Kafka Connect。
建议您配置身份验证和 SSL 来保护远程 JMX 连接。有关执行此操作所需的系统属性的更多信息,请参阅 Oracle 文档。