大数据 -79 Kafka 监控从入门到实战:度量体系、JMX 采集与可视化告警全流程 Prometheus、Kafka Eagle

点一下关注吧!!!非常感谢!!持续更新!!!
🚀 AI 篇持续更新中!(长期更新)
AI 炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的模型 + 深度思考模型 + 实时路由”,持续打造实用 AI 工具指南!📐🤖
💻 Java 篇正式开启!(300 篇)
目前 2025 年 08 月 18 日更新到:Java-100 深入浅出 MySQL 事务隔离级别:读未提交、已提交、可重复读与串行化 MyBatis 已完结,Spring 已完结,Nginx 已完结,Tomcat 已完结,分布式服务正在更新!深入浅出助你打牢基础!
📊 大数据板块已完成多项干货更新(300 篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT 案例 详解

章节内容
上节我们完成了如下的内容:
Kafka 集群模式搭建
Kafka 集群模式的应用场景
实机云服务器搭建

Kafka 监控度量指标详解
度量指标系统架构
Kafka 采用两套度量指标系统来满足不同组件的监控需求:
Yammer Metrics:主要应用于 Kafka 服务器端(broker)和 Scala 客户端
成熟稳定的度量库,提供丰富的度量类型
支持多种输出方式,包括 JMX、CSV、SLF4J 等
Kafka Metrics:专为 Java 客户端设计的内置度量系统
减少对外部库的依赖,避免传递依赖问题
专门针对 Kafka 客户端场景优化
指标公开方式
JMX 接口
所有度量指标都通过 JMX(Java Management Extensions)公开
可通过标准的 JMX 客户端(如 JConsole、VisualVM)查看
指标路径组织为层次结构,例如:
可插拔的报告系统
Kafka 支持配置多种统计报告器,包括但不限于:
JMX 报告器(默认启用)
CSV 报告器(定期将指标写入 CSV 文件)
Graphite 报告器(推送到 Graphite 监控系统)
Prometheus 报告器(通过 HTTP 端点暴露指标)
关键监控指标示例
Broker 端重要指标
消息吞吐量:
MessagesInPerSec:入站消息速率
MessagesOutPerSec:出站消息速率
请求处理:
RequestHandlerAvgIdlePercent:请求处理线程空闲率
ProduceRequestMetrics:生产请求延迟
副本同步:
UnderReplicatedPartitions:未充分复制的分区数
ReplicaFetcherMetrics:副本同步延迟
客户端重要指标
生产者指标:
record-send-rate:记录发送速率
request-latency-avg:请求平均延迟
消费者指标:
records-consumed-rate:记录消费速率
fetch-latency-avg:拉取请求延迟
监控集成实践
典型的监控集成步骤:
配置 Kafka 启用所需的报告器
设置报告间隔(通常 30 秒-1 分钟)
将报告器连接到监控系统(如 Prometheus、Datadog)
配置告警规则(如处理延迟超过阈值)
示例配置片段:
JMX
接着我们启动 Kafka:
JConsole
在本机上启动 jconsole 服务,我们运行如下指令:(本机要有 JDK)

启动窗口如下图所示:

我们输入 Kafka 的地址和端口:

连接成功之后页面如下图:

我们选择 MBean 选项卡:

可以看到对应的数据情况:

详细监控指标
http://kafka.apache.org/10/documentation.html#monitoring
OS 监控项

Broker 指标

Producer 和 Topic 指标

Consumer 指标

获取监控指标
我们可以通过编程的方式来获取到 Kafka 的指标信息:

编写代码
运行测试
控制台输出结果如下:

Kafka Eagle
我们可以使用 kafka-eagle 管理 Kafka 集群。
核心模块
面板可视化
主题管理,包含创建主题、删除主题、主题列举、主题配置、主题查询
消费者应用:对不同消费者应用进行监控,包含 KafkaAPI、FlinkAPI、SparkAPI、StormAPI、FlumeAPI、LogStashAPI 等等
集群管理:包含对 Kafka 集群和 ZooKeeper 集群的详情展示,其内容包含 Kafka 启动时间、Kafka 端口号、ZooKeeperLeader 角色等。同时,还有多集群切换管理,ZooKeeperClient 操作入口
集群监控:包含对 Broker、Kafka 核心指标、ZooKeeper 核心指标进行监控,并绘制历史趋势图
告警功能:对消费者应用数据积压情况进行告警,以及对 Kafka 和 ZooKeeper 监控度进行告警,同时,支持邮件、微信、钉钉告警通知
系统管理:包含用户创建、用户角色分配、资源访问进行管理
整体架构
可视化:负责展示主题列表、集群健康、消费应用等
采集器:数据采集的来源包含 ZooKeeper、Kafka JMX & 内部 Topic、KafkaAPI(2.x 以后版本)
数据存储:目前 Kafka Eagle 存储采用 MySQL 或 SQLite,数据库和表的创建均是自动完成的,按照官方文档配置好即可,启动 Kafka Eagle 就会自动创建,用来存储元数据和监控数据
监控:负责见消费者应用消费情况,集群健康状态
告警:对监控到的异常进行告警通知,支持邮件、微信、钉钉等方式
权限管理:对访问用户进行权限管理,对于管理员、开发者、访问者等不同角色的用户,分配不用的访问权限
下载项目
下载过程如下图所示:

整理好的项目如下所示:

配置项目
修改配置文件
文件按照自己的需要修改,我这里修改了部分:
此时我们需要新建一个文件夹:
环境变量

启动服务
启动我们的服务,如下图所示:

访问服务
运行结果如下图所示:

打开之后,填写账号密码:


版权声明: 本文为 InfoQ 作者【武子康】的原创文章。
原文链接:【http://xie.infoq.cn/article/cc451193185db5e58432b6381】。文章转载请联系作者。
评论