第 19 章 使用 JMX 监控集群
收集指标对于了解 Kafka 部署的健康状态和性能至关重要。通过监控指标,您可以在问题变得至关重要前主动识别问题,并根据资源分配和容量规划做出明智的决策。如果没有指标,您可能会对 Kafka 部署的行为有有限的可见性,这有助于进行故障排除。设置指标可节省长时间运行的时间和资源,并帮助确保 Kafka 部署的可靠性。
Kafka 组件使用 Java 管理扩展(JMX)通过指标共享管理信息。这些指标对于监控 Kafka 集群的性能和总体健康状况至关重要。与许多其他 Java 应用程序一样,Kafka 使用 Managed Beans (MBeans)提供指标数据以监控工具和仪表板。JMX 在 JVM 级别上运行,允许外部工具从 Kafka 组件连接和检索管理信息。要连接到 JVM,这些工具通常需要在同一台计算机上运行,并且默认具有相同的用户特权。
19.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
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=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <port> 替换为您要 Kafka 组件侦听 JMX 连接的端口名称。
将
org.apache.kafka.common.metrics.JmxReporter添加到server.properties文件中的metric.reporters。metric.reporters=org.apache.kafka.common.metrics.JmxReporter
metric.reporters=org.apache.kafka.common.metrics.JmxReporterCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用适当的脚本启动 Kafka 组件,如
bin/kafka-server-start.sh用于代理,或bin/connect-distributed.sh用于 Kafka Connect。
建议您配置身份验证和 SSL 来保护远程 JMX 连接。有关执行此操作所需的系统属性的更多信息,请参阅 Oracle 文档。