# kafka-monitor **Repository Path**: zeus-maker/kafka-monitor ## Basic Information - **Project Name**: kafka-monitor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kafka监控工具 ## 项目概述 这是一个基于Vue.js + Element UI(前端)和Python(后端)的Kafka监控和测试工具。该工具提供了一个直观的Web界面,用于监控Kafka集群状态、管理Topic、发送和接收消息,以及实时查看操作日志。 ## 功能特性 ### 1. 连接配置 - 配置Kafka集群的bootstrap-servers地址 - 支持SASL认证配置(用户名、密码、认证机制) - 测试连接功能,验证配置是否正确 - 连接状态实时显示 ### 2. Topic管理 - 显示所有Topic列表 - 查看Topic详细信息(分区数、副本数、配置等) - 显示Topic的消息数量和大小 - 支持按名称搜索Topic ### 3. 消息发送 - 选择目标Topic发送消息 - 支持指定分区和Key - 支持JSON格式消息 - 批量发送消息 - 发送结果实时反馈 ### 4. 实时操作日志 - 右侧实时显示所有操作日志 - 包含时间戳、操作类型、状态和详细信息 - 支持日志过滤和搜索 - 支持清空日志 - 支持导出日志 ### 5. 美观的UI界面 - 响应式设计,适配不同屏幕尺寸 - 暗色主题支持 - 现代化的Element UI组件 - 直观的图标和颜色区分 ## 技术架构 ### 前端技术栈 - Vue.js 3.x - Element Plus - Axios - WebSocket (用于实时日志) - Vue Router - Vuex/Pinia (状态管理) ### 后端技术栈 - Python 3.8+ - FastAPI (Web框架) - kafka-python (Kafka客户端) - WebSocket (实时通信) - Pydantic (数据验证) - asyncio (异步处理) ## 项目结构 ``` kafka-monitor/ ├── README.md ├── requirements.txt ├── backend/ │ ├── app.py # FastAPI应用入口 │ ├── config.py # 配置文件 │ ├── models/ │ │ ├── kafka_models.py # Kafka相关数据模型 │ │ └── response_models.py # API响应模型 │ ├── services/ │ │ ├── kafka_service.py # Kafka服务层 │ │ └── websocket_service.py # WebSocket服务 │ ├── routes/ │ │ ├── kafka_routes.py # Kafka相关API路由 │ │ └── websocket_routes.py # WebSocket路由 │ └── utils/ │ ├── logger.py # 日志工具 │ └── exceptions.py # 异常处理 ├── frontend/ │ ├── package.json │ ├── index.html │ ├── src/ │ │ ├── main.js # Vue应用入口 │ │ ├── App.vue # 根组件 │ │ ├── components/ │ │ │ ├── ConnectionConfig.vue # 连接配置组件 │ │ │ ├── TopicList.vue # Topic列表组件 │ │ │ ├── MessageSender.vue # 消息发送组件 │ │ │ └── OperationLogs.vue # 操作日志组件 │ │ ├── views/ │ │ │ └── Home.vue # 主页面 │ │ ├── stores/ │ │ │ └── kafka.js # Kafka状态管理 │ │ └── utils/ │ │ ├── api.js # API请求工具 │ │ └── websocket.js # WebSocket工具 │ └── public/ └── docs/ └── api.md # API文档 ``` ## 安装和运行 ### 后端运行 1. 安装依赖: ```bash pip install -r requirements.txt ``` 2. 启动后端服务: ```bash cd backend python app.py ``` 后端服务将在 `http://localhost:8000` 启动 ### 前端运行 1. 安装依赖: ```bash cd frontend npm install ``` 2. 启动前端开发服务器: ```bash npm run dev ``` 前端服务将在 `http://localhost:3000` 启动 ## API文档 ### 连接管理 - `POST /api/kafka/connect` - 测试Kafka连接 - `GET /api/kafka/status` - 获取连接状态 - `POST /api/kafka/disconnect` - 断开连接 ### Topic管理 - `GET /api/kafka/topics` - 获取所有Topic - `GET /api/kafka/topics/{topic_name}` - 获取特定Topic详情 - `GET /api/kafka/topics/{topic_name}/partitions` - 获取Topic分区信息 ### 消息管理 - `POST /api/kafka/send` - 发送消息 - `POST /api/kafka/send/batch` - 批量发送消息 ### 日志管理 - `GET /api/logs` - 获取操作日志 - `DELETE /api/logs` - 清空日志 - `WebSocket /ws/logs` - 实时日志推送 ## 使用方法 1. **配置连接**: - 在左上角的连接配置区域输入Kafka集群地址 - 如需SASL认证,填写用户名和密码 - 点击"测试连接"按钮验证配置 2. **查看Topic**: - 连接成功后,左侧会显示所有Topic列表 - 点击Topic名称查看详细信息 - 使用搜索框快速查找特定Topic 3. **发送消息**: - 选择目标Topic - 输入消息内容(支持JSON格式) - 可选择指定分区和Key - 点击发送按钮 4. **查看日志**: - 右侧实时显示所有操作日志 - 支持按类型过滤日志 - 支持清空和导出日志 ## 配置说明 ### Kafka连接配置 ```json { "bootstrap_servers": "localhost:9092", "security_protocol": "SASL_PLAINTEXT", "sasl_mechanism": "PLAIN", "sasl_plain_username": "your_username", "sasl_plain_password": "your_password" } ``` ### 环境变量 - `KAFKA_BOOTSTRAP_SERVERS`: 默认Kafka服务器地址 - `LOG_LEVEL`: 日志级别 (DEBUG, INFO, WARNING, ERROR) - `CORS_ORIGINS`: 允许的跨域来源 ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 发起 Pull Request ## 许可证 MIT License ## 项目状态 ✅ **已完成功能:** - Kafka连接配置和SASL认证 - 连接测试和状态监控 - Topic列表展示和搜索 - Topic详情和分区信息查看 - 单条和批量消息发送 - 实时操作日志(WebSocket) - 日志过滤和详情查看 - 响应式UI设计 - 完整的错误处理和用户反馈 ## 启动项目 ### 1. 启动后端服务 ```bash # 安装后端依赖 pip install -r requirements.txt # 启动FastAPI服务 cd backend python app.py ``` ### 2. 启动前端服务 ```bash # 安装前端依赖 cd frontend npm install # 启动开发服务器 npm run dev ``` ### 3. 访问应用 - 前端界面:http://localhost:3000 - 后端API:http://localhost:8000 - API文档:http://localhost:8000/docs ### 🐳 Docker方式启动 #### 方式1:使用启动脚本 ```bash # 一键启动(推荐) ./start.sh ``` #### 方式2:使用Docker Compose ```bash # 启动应用和本地Kafka环境 docker-compose up -d # 仅启动应用 docker-compose up kafka-monitor -d # 停止所有服务 docker-compose down ``` #### 方式3:手动构建Docker镜像 ```bash # 构建镜像 docker build -t kafka-monitor . # 运行容器 docker run -d -p 8000:8000 kafka-monitor ``` ## 功能特点 ### 🔗 连接管理 - 支持多种安全协议(PLAINTEXT、SASL_PLAINTEXT、SSL、SASL_SSL) - 支持SASL认证(PLAIN、SCRAM-SHA-256、SCRAM-SHA-512) - 连接状态实时监控 - 连接测试功能 ### 📝 Topic管理 - 实时获取Topic列表 - 支持Topic搜索和过滤 - 查看Topic详细配置 - 分区信息展示 - 副本和ISR状态监控 ### 📨 消息发送 - 单条消息发送 - 批量消息发送 - 支持JSON格式化 - 可指定消息Key和分区 - 自定义消息头 - 发送结果实时反馈 ### 📊 实时日志 - WebSocket实时日志推送 - 多维度日志过滤 - 日志详情查看 - 自动滚动和手动控制 - 操作历史记录 ### 🎨 用户界面 - 现代化设计风格 - 响应式布局 - 暗色主题支持 - 直观的操作反馈 - 移动端适配 ## 项目反思和改进 ### 已实现的核心功能 1. ✅ 完整的Kafka连接管理 2. ✅ Topic信息展示和管理 3. ✅ 消息发送功能(单条/批量) 4. ✅ 实时操作日志 5. ✅ 美观的Vue + Element UI界面 6. ✅ 完善的错误处理 7. ✅ WebSocket实时通信 8. ✅ 响应式设计 ### 潜在改进点 1. **消息消费功能**:增加消息消费和实时监控 2. **集群监控**:添加Kafka集群健康状态监控 3. **性能指标**:显示Topic吞吐量、延迟等指标 4. **用户管理**:添加用户认证和权限管理 5. **配置持久化**:保存用户的连接配置 6. **消息格式化**:支持Avro、Protobuf等格式 7. **告警功能**:异常情况的告警通知 8. **数据导出**:支持日志和消息数据导出 ### 技术架构优势 - **前后端分离**:便于维护和扩展 - **实时通信**:WebSocket提供实时反馈 - **模块化设计**:组件化开发,易于复用 - **类型安全**:Pydantic数据验证 - **异常处理**:完善的错误处理机制 - **日志记录**:详细的操作日志记录 ## 更新日志 ### v1.0.0 (2024-01-01) - 🎉 初始版本发布 - ✨ 基础Kafka连接和Topic管理功能 - ✨ 消息发送功能(单条/批量) - ✨ 实时操作日志系统 - ✨ 响应式UI界面 - ✨ WebSocket实时通信 - 🔒 SASL认证支持 - 📱 移动端适配