1.概述
在大数据与人工智能深度融合的新时代,Apache Kafka 已成为企业实时数据流处理的核心引擎。然而,随着业务规模的不断扩大,Kafka 集群的监控与运维复杂度也随之攀升——指标繁多、延迟难察、告警频繁,传统监控手段难以快速定位问题与优化性能。正因如此,EFAK-AI(Eagle For Apache Kafka - AI Edition) 应运而生。它在经典 EFAK 的基础上全面升级,融合 AI 智能分析与分布式监控能力,为 Kafka 运维注入了全新的智能化体验。本文将带您深入了解 EFAK-AI 5.0.0 的全新功能与技术亮点。
2.内容
EFAK-AI (Eagle For Apache Kafka - AI) 是一款开源的 Kafka 智能监控与管理平台,融合了人工智能技术,为 Kafka 运维提供智能化、可视化、自动化的全方位解决方案。
- 🧠 AI 驱动: 集成主流大语言模型(OpenAI、Claude、DeepSeek 等),提供智能对话式运维
- 📊 实时监控: 全方位监控 Kafka 集群健康状态、性能指标、消费延迟等关键数据
- 🚀 高性能: 基于 Spring Boot 3.x 和 JDK 17,采用响应式编程和异步处理
- 🔧 易部署: 支持 Docker 一键部署和传统 tar.gz 安装包两种方式
2.1 核心特性
- 多模型支持: 集成 OpenAI、Claude、DeepSeek 等多种大语言模型
- Function Calling: AI 可自动调用后端函数查询实时数据
- 图表自动生成: 根据时序数据自动生成可视化图表
- Kafka 专家: 专业的 Kafka 集群分析、性能优化和故障诊断建议
- 流式对话: 基于 SSE 的实时流式响应,体验更流畅
- Markdown 渲染: 支持代码高亮、表格、Mermaid 图表等丰富格式
- 对话历史: 完整的会话管理和历史记录功能
- 实时监控: Broker 节点状态、主题分区、消费者组监控
- 性能指标: 吞吐量、延迟、存储容量等关键指标
- 历史数据: 长期趋势分析和性能对比
- 多集群支持: 同时管理多个 Kafka 集群
- 智能分片: 基于 Redis 的分布式任务分片执行
- 故障转移: 自动检测节点故障并重新分配任务
- 负载均衡: 动态调整任务分配,优化资源利用
- 单节点优化: 自动检测单节点环境,跳过分片逻辑
- 多渠道告警: 支持钉钉、微信、飞书等多种告警渠道
- 智能阈值: 基于历史数据的动态阈值调整
- 告警聚合: 避免告警风暴,提供告警聚合和降噪
- 可视化配置: 直观的告警规则配置界面
2.2 技术架构
模块结构
EFAK-AI/ ├── efak-ai/ # 告警功能模块 ├── efak-core/ # 核心功能模块 (Kafka 连接、监控逻辑) ├── efak-dto/ # 数据传输对象 ├── efak-tool/ # 工具类模块 └── efak-web/ # Web 应用模块 (控制器、服务、前端)
- 后端框架: Spring Boot 3.4.5
- 数据库: MySQL 8.0+ (主数据库)
- 缓存: Redis 6.0+ (分布式锁、任务调度)
- 消息队列: Apache Kafka 4.0.0
- ORM: MyBatis 3.0.4
- 前端: Thymeleaf
- 构建工具: Maven 3.6+
- Java 版本: JDK 17
2.3 快速开始
EFAK-AI 提供两种部署方式:Docker 容器化部署(推荐)和 tar.gz 安装包部署。
🚀 一键启动(超简单!)
# 克隆项目 git clone https://github.com/smartloli/EFAK-AI.git cd EFAK-AI# 运行快速启动脚本 ./quick-start.sh
快速启动脚本提供:
- Docker 一键部署
- tar.gz 安装包构建
- 日志查看和服务管理
- Docker Desktop 4.43.2+
- Docker Compose 2.0+
一键启动
# 1. 克隆项目 git clone https://github.com/smartloli/EFAK-AI.git cd EFAK-AI# 2. 启动所有服务(包括 MySQL、Redis) docker-compose up -d# 3. 查看日志 docker-compose logs -f efak-ai# 4. 访问应用 # http://localhost:8080 # 默认账号: admin / admin
启动 Nginx 反向代理(可选)
# 使用 nginx profile 启动 docker-compose --profile nginx up -d# 通过 http://localhost (80端口) 访问
常用 Docker 命令
# 查看运行状态 docker-compose ps# 停止服务 docker-compose down# 重启服务 docker-compose restart efak-ai# 查看日志 docker-compose logs -f
- JDK 17+
- MySQL 8.0+
- Redis 6.0+
1. 构建安装包
# 克隆项目 git clone https://github.com/smartloli/EFAK-AI.git cd EFAK-AI# 执行构建脚本 ./build-package.sh# 生成安装包: efak-ai-5.0.0.tar.gz
2. 部署安装包
# 传输到服务器(如果需要) scp efak-ai-5.0.0.tar.gz user@server:/opt/# 解压 cd /opt tar -zxvf efak-ai-5.0.0.tar.gz cd efak-ai-5.0.0# 目录结构 # bin/ - 启动脚本 # config/ - 配置文件 # libs/ - JAR 包 # logs/ - 日志目录 # sql/ - SQL 脚本
3. 初始化数据库
mysql -u root -p CREATE DATABASE efak_ai CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE efak_ai; SOURCE /opt/efak-ai-5.0.0/sql/ke.sql;
spring:datasource:url: jdbc:mysql://localhost:3306/efak_ai?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: rootpassword: your_passworddata:redis:host: localhostport: 6379
5. 启动应用
# 启动 ./bin/start.sh# 查看日志 tail -f logs/efak-ai.log# 查看状态 ./bin/status.sh# 停止 ./bin/stop.sh# 重启 ./bin/restart.sh
- 应用地址: http://localhost:8080
- 默认账号: admin / admin123
7. 验证进程
# 查看进程(进程名显示为 KafkaEagle) ps aux | grep KafkaEagle
3.EFAK-AI 功能预览
本文档展示 EFAK-AI (Eagle For Apache Kafka - AI Enhanced) 系统的核心功能界面和特性。
3.1 快速启动
部署成功后,您可以:
- 访问应用:
http://localhost:8080
- 查看日志:
docker compose logs -f efak-ai
- 查看状态:
docker compose ps
- 查看进程:
docker compose exec efak-ai jps
3.2 核心功能
功能特性:
- 实时监控: Kafka 集群整体运行状态
- 可视化图表: 消息流量、Topic 数量、Consumer 组状态
- 性能指标: 吞吐量、延迟、存储使用情况
- 告警统计: 实时告警数量和类型分布
- 响应式设计: 支持桌面和移动端访问
关键指标:
- Broker 数量和状态
- Topic 总数和活跃数
- Consumer Group 数量
- 消息总量和增长趋势
- 集群健康度评分
功能特性:
- 多集群管理: 支持管理多个 Kafka 集群
- Broker 详情: 查看每个 Broker 的详细信息
- 性能监控: 实时 Broker CPU、内存、磁盘使用率
- 配置管理: 查看和修改集群配置
- 健康检查: 自动检测 Broker 健康状态
支持的操作:
- 添加/删除集群配置
- 查看 Broker 列表和状态
- 监控 Broker 性能指标
- 查看 Controller 信息
- 集群元数据查询
功能特性:
- Topic 列表: 展示所有 Topic 及其关键信息
- 高级搜索: 支持按名称、分区数、副本数搜索
- 统计信息: 消息数量、存储大小、消费者组数
- 创建 Topic: 可视化创建 Topic 界面
- 删除 Topic: 安全删除 Topic(带确认)
- 批量操作: 支持批量删除、修改配置
显示字段:
- Topic 名称
- 分区数量
- 副本因子
- 消息总数
- 存储大小
- 消费者组数量
- 创建时间
- 操作按钮
功能特性:
- 分区详情: 每个分区的 Offset、Leader、Replicas
- 消息流量: 实时消息生产和消费速率
- 消息查询: 按 Offset、时间戳、Key 查询消息
- 配置管理: 查看和修改 Topic 配置
- 分区重分配: 手动触发分区重新分配
- 消费延迟: 各消费者组的消费进度和延迟
详细信息:
- 分区分布和状态
- ISR (In-Sync Replicas) 列表
- Leader 选举历史
- 消息保留策略
- 压缩类型和配置
- 消费者组订阅情况
功能特性:
- 消费者组列表: 所有活跃的消费者组
- 消费进度: 每个组的消费 Offset 和 Lag
- 延迟告警: 消费延迟超过阈值自动告警
- 消费者详情: 查看组内每个消费者实例
- 消费趋势: 消费速率和延迟趋势图
- 重置 Offset: 支持重置消费位置
监控指标:
- Consumer Group ID
- 订阅的 Topic 列表
- 总 Lag 数量
- 消费速率 (msg/s)
- 消费者实例数
- 最后消费时间
- 分区分配策略
功能特性:
- 智能助手: 基于大语言模型的 Kafka 运维助手
- 自然语言交互: 用自然语言查询 Kafka 状态
- 数据可视化: 自动生成图表展示数据
- 问题诊断: 智能分析和解决 Kafka 问题
- 操作建议: 提供最佳实践和优化建议
- 历史记录: 保存对话历史便于回溯
支持的查询类型:
- "查询集群状态"
- "分析 Topic XYZ 的消费延迟"
- "为什么消费者组 ABC 停止消费?"
- "如何优化 Topic 性能?"
- "生成消息流量趋势图"
- "诊断 Broker 性能问题"
AI 能力:
- 自动理解用户意图
- 查询 Kafka 元数据和指标
- 生成可视化图表 (Chart.js)
- 提供运维建议和最佳实践
- 解释 Kafka 概念和参数
功能特性:
- 模型管理: 配置和切换 AI 大语言模型
- API 配置: 管理 OpenAI、Azure、本地模型 API Key
- 参数调优: 调整 Temperature、Max Tokens 等参数
- 模型测试: 在线测试模型响应效果
- 使用统计: 查看 API 调用次数和费用
- 多模型支持: 支持 OpenAI GPT、Azure OpenAI、本地模型
支持的模型:
- OpenAI GPT-5 模型
- Azure OpenAI Service
- 本地部署的开源模型 (如 Llama, ChatGLM)
- 自定义模型接口
配置项:
- 模型名称和版本
- API Endpoint
- API Key / Token
- Temperature (0.0 - 1.0)
- Max Tokens
- 超时设置
- 重试策略
功能特性:
- 实时监控: Broker、Topic、Consumer 性能指标
- 历史数据: 支持查询历史性能数据
- 自定义图表: 自定义监控指标和时间范围
- 性能分析: 自动分析性能瓶颈
- 趋势预测: 基于历史数据预测趋势
- 性能告警: 指标超过阈值自动告警
监控指标:
-
Broker 指标:
- CPU、内存、磁盘使用率
- 网络 I/O 吞吐量
- 请求处理延迟
- 活跃连接数
-
Topic 指标:
- 消息生产速率
- 消息消费速率
- 字节流入/流出速率
- 分区 Leader 分布
-
Consumer 指标:
- 消费延迟 (Lag)
- 消费速率
- 提交频率
- 重平衡次数
功能特性:
- 告警规则: 自定义告警规则和阈值
- 多渠道通知: 支持钉钉、微信、飞书、Webhook
- 告警统计: 告警历史和趋势分析
- 告警静默: 临时屏蔽特定告警
- 智能告警: AI 分析告警原因和建议
- 告警模板: 预定义常用告警规则
告警类型:
-
Broker 告警:
- Broker 下线
- CPU/内存/磁盘使用率过高
- 网络异常
-
Topic 告警:
- 分区 ISR 不足
- 消息积压
- 副本同步延迟
-
Consumer 告警:
- 消费延迟过高
- 消费者组下线
- 消费停滞
通知渠道配置:
- 钉钉: Webhook URL
- 微信: Webhook URL
- 飞书: Webhook URL
- Webhook: 自定义 HTTP 回调
功能特性:
- 定时任务: 创建和管理定时任务
- Cron 表达式: 支持复杂的调度规则
- 任务类型: 数据采集、清理、备份、分析
- 执行历史: 查看任务执行记录和结果
- 失败重试: 自动重试失败的任务
- 任务日志: 详细的执行日志
支持的任务类型:
-
数据采集任务:
- Kafka 指标采集
- JMX 数据采集
- 日志收集
-
清理任务:
- 过期数据清理
- 日志归档
- 临时文件清理
-
备份任务:
- 配置备份
- 元数据导出
- 数据快照
-
分析任务:
- 性能报告生成
- 趋势分析
- 异常检测
调度配置:
- Cron 表达式编辑器
- 执行时间设置
- 并发控制
- 超时设置
- 失败重试策略
功能特性:
- 用户管理: 创建、编辑、删除用户
- 权限控制: 基于角色的访问控制 (RBAC)
- 密码策略: 强制密码复杂度和定期更换
角色和权限:
-
超级管理员:
- 所有权限
- 用户管理
- 系统配置
-
管理员:
- 集群管理
- Topic 管理
- 告警配置
-
运维人员:
- 监控查看
- 告警处理
- 任务管理
-
只读用户:
- 查看监控数据
- 查看告警信息
- 无修改权限
用户字段:
- 用户名
- 角色
- 状态 (启用/禁用)
- 最后登录时间
- 创建时间
功能特性:
- 多集群统一管理: 在一个平台管理多个 Kafka 集群
- 环境隔离: 支持测试、预发、生产等不同环境的集群管理
- 集群切换: 快速在不同集群间切换查看和操作
- 集群对比: 对比不同集群的配置和性能指标
多环境集群管理:
-
生产环境 (Production):
- 高可用配置
- 严格的权限控制
- 完整的审计日志
- 实时性能监控
- 7×24 告警响应
-
预发环境 (Staging):
- 与生产环境配置一致
- 用于上线前验证
- 支持压力测试
- 数据脱敏处理
-
测试环境 (Testing):
- 开发团队使用
- 支持快速创建/删除 Topic
- 灵活的配置调整
- 数据自动清理
-
开发环境 (Development):
- 本地开发调试
- 无告警限制
- 支持实验性功能
集群配置管理:
-
连接配置:
- Broker 地址列表
- Zookeeper 地址(如使用)
- SASL/SSL 认证配置
- 超时和重试参数
-
环境标识:
- 集群名称
- 环境标签 (dev/test/staging/prod)
- 颜色标识(防止误操作)
- 备注说明
-
访问控制:
- 基于角色的集群访问权限
- 生产集群限制高危操作
- 操作审批流程(生产环境)
集群状态监控:
- 集群在线状态
- Broker 总数和存活数
- Topic 和分区统计
- 消费者组数量
- 消息吞吐量
- 存储使用情况
- 连接健康度
4.总结
总结来看,EFAK-AI 5.0.0 以分布式架构与 AI 智能分析为核心,全面提升了 Kafka 集群的可观测性与运维效率。它不仅让监控更实时、告警更精准,还让问题分析与决策更智能。EFAK-AI 正在让 Kafka 运维从被动监控迈向主动洞察,助力构建更高效、更智能的数据流生态。
5.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
另外,博主出新书了《Hadoop与Spark大数据全景解析》、同时已出版的《深入理解Hive》、《Kafka并不难学》和《Hadoop大数据挖掘从入门到进阶实战》也可以和新书配套使用,喜欢的朋友或同学, 可以在公告栏那里点击购买链接购买博主的书进行学习,在此感谢大家的支持。关注下面公众号,根据提示,可免费获取书籍的教学视频。