安装 cmak(原名为 kafka manager)

  • 安装 OpenJDK
  1. sudo apt update
  2. sudo apt install openjdk-11-jdk

必须 OpenJDK 11 的不然启动会报错
java.lang.UnsupportedClassVersionError: controllers/routes has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

  • 下载并解压 cmak
  1. wget https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip
  2. unzip cmak-3.0.0.5.zip
  • 编辑 cmak 配置文件
  1. vim conf/application.conf

主要修改 zookeeper的服务地址,不然也是没法启动的

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图1

  • 启动 cmak
  1. ./bin/cmak

然后访问 IP:9000 就可以访问管理后台页面了

Kafka 开启 JMX 并验证是否开启成功

Kafka 开启 JMX

  • 方法一:**修改 bin/kafka-run-class.sh 脚本**

在脚本开头加入 JMX_PORT=9999

  1. # Unless required by applicable law or agreed to in writing, software
  2. # distributed under the License is distributed on an "AS IS" BASIS,
  3. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4. # See the License for the specific language governing permissions and
  5. # limitations under the License.
  6. #open jmx monitor
  7. JMX_PORT=9999
  8. if [ $# -lt 1 ];
  • 方法二:**修改 kafka-server-start.sh 脚本**

在脚本开头加入 JMX_PORT=9999

  1. export JMX_PORT="9999"
  • 方法三:**在运行启动命令前加上 JMX_PORT**
  1. JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties

验证 JMX 是否开启

  • 在终端输入:jconsole,启动 Java 监视和管理控制台
  1. jconsole
  • 在远程连接输入 127.0.0.1:9999(127.0.0.1 可以换成 kafka 服务器所在的 ip),然后点击连接

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图2

  • 在连接时候出现一个安全认证的问题,直接点击不完全的连接

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图3

  • 点击 MBean,可以查看 Kafka 的各种监控指标,都是以 kafka.xxx:type=xxx,xxx=xxx 打头 MBean

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图4

使用 cmak

创建 cluster

填入 cluster name 和 cluster zookeeper hosts,然后其他基本上按照默认值或者错误提示配置。

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图5

创建集群

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图6

创建集群成功

创建 topic

填入 topic 名字和分片数和复制备份数

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图7

创建 topic

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图8

创建成功

查看 topic 列表和概况

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图9

topic 列表

  • Brokers Spread

看作 broker 使用率,如 kafka 集群 9 个 broker,某 topic 有 7 个 partition,则broker spread: 7 / 9 = 77%

  • Broker skew(broker的分配倾斜度)

衡量 broker 分配的不均衡性。broker 的 partition 数超过平均的 partiition,则该 broker 算失衡。失衡的 broker / 所有的 broker = 失衡倾斜度

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图10

topic 概况

查看 broker 概况

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图11

broker 概况

分片信息

此外还可以看到其他比如消费者信息,分片信息等等,甚至可以操作这些分片和 broker 的重分配

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图12

分片消息

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图13

分片信息

给 topic 添加分片

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图14

添加分片

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图15

添加分片成功

还有其他可以操作分片的选项

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图16

操作分片选项

topic 分片重分配

在 Ubuntu 20.04 LTS 上安装 kafka 监控管理工具 - 图17

分片重分配

参考文档

kafka管理监控系统 CMAK(yahoo的kafka-manager)部署

安装和使用cmak(原名为kafka manager)

Kafka开启JMX监控操作实践