文章目录
-
- 1.前言
- [2.kafka 命令行工具](#2.kafka 命令行工具)
- [3.kafka tools](#3.kafka tools)
- 4.kafka-ui(推荐)
- 5.实用功能
-
- [5.1 消息查找](#5.1 消息查找)
-
- [5.1.1 kafka-ui](#5.1.1 kafka-ui)
- [5.1.2 kafka tools](#5.1.2 kafka tools)
- [5.2 手动添加](#5.2 手动添加)
1.前言
本章主要是介绍一些工作中常用 kafka 的监控工具;原理上都是一样的,只是展现方式不同。
2.kafka 命令行工具
在 kafka 的 bin 目录下面提供了很多命令行工具

比如
- kafka-consumer-groups
- 消费者组监控
- 重设消费者组 offset 位移
- kafka-dump-log 查看 kafka 消息文件内容
我们这里只讨论 kafka-consumer-groups
- 之前已经整理过 如何设置消费者 offset 的文章,这里就不赘述了
今天我们讨论下消费者监控,命令如下:
bash
$ bin/kafka-consumer-groups.sh --bootstrap-server <Kafka broker连接信息> --describe --group <group名称>

- topic:主题名称
- parttion:分区,0,1,2,3,4...等等
- lag:滞后量,即未消费的消息数
- current-offset:当前消费者组已提交的位移,代表消费进度
- log-end-offset:分区的最新消息位移,即下一条要写入的位置
- consumer-id:消费者实例的唯一标识,用于区分组内的不同消费者
- host:运行消费者的主机信息,包括IP地址
- client-id:客户端的自定义标识,用于监控和调试
在上面这些数据中,我们最需要关心的只有两个
- LAG 值
- 滞后量,即未消费的消息数,或者说是消费者积压的数量
- 0 表示消费完成,一般来说这个数字是变化的
- 数字越大表示积压的越严重
- 滞后量,即未消费的消息数,或者说是消费者积压的数量
- HOST 主机IP地址
- 可以观察是否有非集群的业务机器在消费 kafka 里面的消息
- 在实际集群环境中经常会碰到一些莫名其妙的问题
- 比如生产者推送了100条 message ,但是消费者只监听到50条
- 有可能是其他服务器未关闭的消费者,配置过这个服务器的 kafka
- 可以观察是否有非集群的业务机器在消费 kafka 里面的消息
3.kafka tools
官网下载地址
配置好之后,点击 connect ,效果如下:
- 注意配置的是 zookeeper 的地址,很多新手会配置成 kafka 的地址和端口,这是不对的

左侧分别为
- brokers
- kafka 实例
- topics
- 主题
- consumers
- 消费者
点击 topic 可以展开,看到分区数量

点击 topic ,切换到 Data ,右侧可以看到 message 中的数据,注意 Properties 中,key 和 value 选择类型为 String

数据如下:

展开 Consumers ,选中查看消费者组消费情况

这里展示的内容和上面的 kafka 命令行一样,但是缺少 host ip 信息。
4.kafka-ui(推荐)
官网地址
部署完成之后效果如下

左侧的 biz 表示 kafka 的一个业务组
展开之后其实和 kafka tools 的类似,也是分为 brokers、topics、consumers三个分类

具体的功能就不展示了,kafka-ui 是里面最强大的,基本上支持所有功能。
5.实用功能
5.1 消息查找
通过 message 中的关键字来进行消息的检索
5.1.1 kafka-ui

5.1.2 kafka tools

5.2 手动添加
kafka-ui 中可以手动添加 topic
可以手动发送消息,方便我们来测试代码流程
