Kafka监控工具 EFAK-AI - 实践
1.概述
在大数据与人工智能深度融合的新时代,Apache Kafka 已成为企业实时数据流处理的核心引擎。然而,随着业务规模的不断扩大,Kafka 集群的监控与运维复杂度也随之攀升——指标繁多、延迟难察、告警频繁,传统监控手段难以快速定位问题与优化性能。正因如此,EFAK-AI(Eagle For Apache Kafka - AI Enhanced,原Kafka Eagle) 应运而生。它在经典 EFAK 的基础上全面升级,融合 AI 智能分析与分布式监控能力,为 Kafka 运维注入了全新的智能化体验。本文将带您深入了解 EFAK-AI 5.0.0 的全新功能与技术亮点。
GitHub开源地址:https://github.com/smartloli/EFAK
2.内容
EFAK-AI (Eagle For Apache Kafka - AI Enhanced) 是一款开源的 Kafka 智能监控与管理平台,融合了人工智能技术,为 Kafka 运维提供智能化、可视化、自动化的全方位解决方案。
核心优势
- AI 驱动: 集成主流大语言模型(OpenAI、Claude、DeepSeek 等),提供智能对话式运维
- 实时监控: 全方位监控 Kafka 集群健康状态、性能指标、消费延迟等关键数据
- 高性能: 基于 Spring Boot 3.x 和 JDK 17,采用响应式编程和异步处理
- 易部署: 支持 Docker 一键部署和传统 tar.gz 安装包两种方式
2.1 核心特性
AI 智能助手
- 多模型支持: 集成 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 部署(推荐)⚡
环境要求
- 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
方式二:tar.gz 安装包部署
环境要求
- 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;
4. 修改配置
编辑 config/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/efak_ai?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: your_password
data:
redis:
host: localhost
port: 6379
5. 启动应用
# 启动
./bin/start.sh
# 查看日志
tail -f logs/efak-ai.log
# 查看状态
./bin/status.sh
# 停止
./bin/stop.sh
# 重启
./bin/restart.sh
6. 访问应用
- 应用地址: http://localhost:8080
- 默认账号: admin / admin123
7. 验证进程
# 查看进程(进程名显示为 KafkaEagle)
ps aux | grep KafkaEagle
3.EFAK-AI 功能预览
本文档展示 EFAK-AI (Eagle For Apache Kafka - AI Enhanced) 系统的核心功能界面和特性。
3.1 快速启动
1. 使用快速启动脚本
EFAK-AI 提供了一键启动脚本 quick-start.sh,支持多种部署方式:

功能选项:
- 选项 1: Docker Compose 部署(推荐)
- 选项 2: Docker 手动构建并部署
- 选项 3: 构建 tar.gz 安装包
- 选项 4: 停止 Docker 服务
- 选项 5: 查看 Docker 日志
- 选项 6: 查看 Docker 状态
- 选项 7: 退出
2. 部署成功示例
部署成功后,您可以:
- 访问应用:
http://localhost:8080 - 查看日志:
docker compose logs -f efak-ai - 查看状态:
docker compose ps - 查看进程:
docker compose exec efak-ai jps
3.2 核心功能
1. 仪表盘 (Dashboard)
功能特性:
- 实时监控: Kafka 集群整体运行状态
- 可视化图表: 消息流量、Topic 数量、Consumer 组状态
- 性能指标: 吞吐量、延迟、存储使用情况
- 告警统计: 实时告警数量和类型分布
- 响应式设计: 支持桌面和移动端访问
关键指标:
- Broker 数量和状态
- Topic 总数和活跃数
- Consumer Group 数量
- 消息总量和增长趋势
- 集群健康度评分
2. 集群管理 (Cluster)
功能特性:
- 多集群管理: 支持管理多个 Kafka 集群
- Broker 详情: 查看每个 Broker 的详细信息
- 性能监控: 实时 Broker CPU、内存、磁盘使用率
- 配置管理: 查看和修改集群配置
- 健康检查: 自动检测 Broker 健康状态
支持的操作:
- 添加/删除集群配置
- 查看 Broker 列表和状态
- 监控 Broker 性能指标
- 查看 Controller 信息
- 集群元数据查询
3. 主题管理 (Topics)
功能特性:
- Topic 列表: 展示所有 Topic 及其关键信息
- 高级搜索: 支持按名称、分区数、副本数搜索
- 统计信息: 消息数量、存储大小、消费者组数
- 创建 Topic: 可视化创建 Topic 界面
- 删除 Topic: 安全删除 Topic(带确认)
- 批量操作: 支持批量删除、修改配置
显示字段:
- Topic 名称
- 分区数量
- 副本因子
- 消息总数
- 存储大小
- 消费者组数量
- 创建时间
- 操作按钮
4. 主题详情 (Topic Detail)
功能特性:
- 分区详情: 每个分区的 Offset、Leader、Replicas
- 消息流量: 实时消息生产和消费速率
- 消息查询: 按 Offset、时间戳、Key 查询消息
- 配置管理: 查看和修改 Topic 配置
- 分区重分配: 手动触发分区重新分配
- 消费延迟: 各消费者组的消费进度和延迟
详细信息:
- 分区分布和状态
- ISR (In-Sync Replicas) 列表
- Leader 选举历史
- 消息保留策略
- 压缩类型和配置
- 消费者组订阅情况
5. 消费者监控 (Consumer)
功能特性:
- 消费者组列表: 所有活跃的消费者组
- 消费进度: 每个组的消费 Offset 和 Lag
- 延迟告警: 消费延迟超过阈值自动告警
- 消费者详情: 查看组内每个消费者实例
- 消费趋势: 消费速率和延迟趋势图
- 重置 Offset: 支持重置消费位置
监控指标:
- Consumer Group ID
- 订阅的 Topic 列表
- 总 Lag 数量
- 消费速率 (msg/s)
- 消费者实例数
- 最后消费时间
- 分区分配策略





浙公网安备 33010602011771号