第 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 组件的脚本使用这些属性。

流程

  1. 使用 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 连接的端口名称。

  2. org.apache.kafka.common.metrics.JmxReporter 添加到 server.properties 文件中的 metric.reporters

    metric.reporters=org.apache.kafka.common.metrics.JmxReporter
  3. 使用适当的脚本启动 Kafka 组件,如 bin/kafka-server-start.sh 用于代理,或 bin/connect-distributed.sh 用于 Kafka Connect。
重要

建议您配置身份验证和 SSL 来保护远程 JMX 连接。有关执行此操作所需的系统属性的更多信息,请参阅 Oracle 文档

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.