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

快速启动脚本提供:

  1. Docker 一键部署
  2. tar.gz 安装包构建
  3. 日志查看和服务管理

方式一: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. 访问应用
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,支持多种部署方式:

image

功能选项:

  • 选项 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)
  • 消费者实例数
  • 最后消费时间
  • 分区分配策略
posted @ 2025-11-08 16:19  gccbuaa  阅读(15)  评论(0)    收藏  举报