
本篇介绍统计Topic消息堆积情况可用下列指令:看第6列LAG
kafka-consumer-groups.sh –bootstrap-server localhost:9092 –all-groups –describe | grep <Topic>

列出消费者ID:
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

获取 Topic 的消息总数:
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic <Topic> --time -1

基于消费者组ID获取消息堆积情况:
kafka-consumer-groups.sh --bootstrap-server <Kafka地址> --group <消费者组ID> --describe

还有几个参数, 可以综合一起使用,来达到查看堆积情况的目的:
去掉标题行
grep -v "TOPIC"
输出第6列 LAG – 消息堆积
awk '{print $6}'
计算第6列总和
awk '{sum += $6} END {print sum}'
计算第6列总和,并打上时间戳
awk 'BEGIN {cmd="date \"+%Y-%m-%d %H:%M:%S\""; cmd | getline date; close(cmd)} {sum+=$6} END {print date, "Total LAG:", sum}'
结果输出到文件
>> "lag_log_$(date '+%Y-%m-%d').txt"
我的示例:
./kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group mygroup |grep -v "TOPIC" | awk 'BEGIN {cmd="date \"+%Y-%m-%d %H:%M:%S\""; cmd | getline date; close(cmd)} {sum+=$6} END {print date, "Total LAG:", sum}'>> "/www/wwwlogs/kafka/lag_log_$(date '+%Y-%m-%d').txt"
输出:

然后,再配置一个定时任务,定时执行脚本, 就可以统计消息堆积情况了
原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/1431.html
淘宝小店:陈皮王五工作室