From 84790c9a06db4a634b10464adabd077668367f40 Mon Sep 17 00:00:00 2001 From: hnu202326010131 Date: Fri, 31 Oct 2025 09:41:41 +0000 Subject: [PATCH] Add generated SVG diagram files --- doc/project/diagrams/原型图(1).svg | 266 +++++++++++++++++ doc/project/diagrams/时序图(1).svg | 153 ++++++++++ doc/project/diagrams/架构图(1).svg | 140 +++++++++ doc/project/diagrams/活动图(1).svg | 201 +++++++++++++ doc/project/diagrams/用例图(1).svg | 144 +++++++++ .../diagrams/界面原型详图(1).svg | 248 ++++++++++++++++ .../diagrams/移动端原型图(1).svg | 262 +++++++++++++++++ doc/project/diagrams/类图(1).svg | 275 ++++++++++++++++++ doc/project/diagrams/部署图(1).svg | 0 9 files changed, 1689 insertions(+) create mode 100644 doc/project/diagrams/原型图(1).svg create mode 100644 doc/project/diagrams/时序图(1).svg create mode 100644 doc/project/diagrams/架构图(1).svg create mode 100644 doc/project/diagrams/活动图(1).svg create mode 100644 doc/project/diagrams/用例图(1).svg create mode 100644 doc/project/diagrams/界面原型详图(1).svg create mode 100644 doc/project/diagrams/移动端原型图(1).svg create mode 100644 doc/project/diagrams/类图(1).svg create mode 100644 doc/project/diagrams/部署图(1).svg diff --git a/doc/project/diagrams/原型图(1).svg b/doc/project/diagrams/原型图(1).svg new file mode 100644 index 0000000..0ff02eb --- /dev/null +++ b/doc/project/diagrams/原型图(1).svg @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + 故障检测系统 - 原型界面设计 + + + + 主界面布局 + + + + 顶部导航栏 + + Logo + + 集群状态 + + 日志查询 + + 故障诊断 + + 自动修复 + + 系统配置 + + 用户信息 + + + + 侧边栏 + + 仪表板 + + 集群监控 + + 日志管理 + + 故障处理 + + 修复历史 + + + + 主内容区 + + 内容展示区域 + + + + 仪表板页面 + + + + 集群概览卡片 + + 节点状态统计 + + 资源使用率 + + 告警数量 + + + + 实时监控图表 + + CPU使用率趋势 + + 内存使用率趋势 + + 磁盘I/O趋势 + + + + 最近故障列表 + + 故障ID | 类型 | 时间 | 状态 + + + + 日志查询页面 + + + + 搜索条件 + + 时间范围选择器 + + 日志级别筛选 + + 关键词搜索 + + 主机筛选 + + + + 日志列表 + + 时间 | 主机 | 级别 | 消息 + + 分页控件 + + + + 操作按钮 + + 导出日志 + + 发起诊断 + + + + 故障诊断页面 + + + + 诊断配置 + + 选择日志范围 + + 诊断类型选择 + + AI模型选择 + + + + 诊断进度 + + 进度条 + + 当前状态 + + 预计时间 + + + + 诊断结果 + + 故障类型 + + 原因分析 + + 修复建议 + + 风险等级 + + + + 自动修复页面 + + + + 修复方案 + + 修复脚本预览 + + 影响范围评估 + + 回滚方案 + + + + 风险确认 + + 风险等级显示 + + 确认复选框 + + 执行按钮 + + + + 执行监控 + + 执行日志实时显示 + + 执行状态 + + 停止按钮 + + + + 弹窗组件 + + + + 高风险确认弹窗 + + 警告图标 + + 风险说明 + + 确认按钮 + + 取消按钮 + + + + 执行结果弹窗 + + 执行状态图标 + + 结果摘要 + + 详细日志 + + 关闭按钮 + + + + 交互流程 + + + + 选择日志发起诊断 + + + 诊断完成生成修复方案 + + + 高风险修复需确认 + + + 确认后开始执行 + + + 执行完成显示结果 + + + 点击故障查看相关日志 + + + 快速修复入口 + + + + 响应式设计说明 + + + 移动端适配: + - 顶部导航折叠为汉堡菜单 + - 侧边栏可收起/展开 + - 表格支持横向滚动 + - 图表自适应屏幕宽度 + - 弹窗全屏显示 + \ No newline at end of file diff --git a/doc/project/diagrams/时序图(1).svg b/doc/project/diagrams/时序图(1).svg new file mode 100644 index 0000000..cd2d1b9 --- /dev/null +++ b/doc/project/diagrams/时序图(1).svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + 日志诊断与自动修复流程 + + + + + + User + + + + Frontend + + + + FastAPI + + + + Flume + + + + MySQL + + + + Redis + + + + LLM + + + + 修复脚本 + + + + + + + + + + + + + + + + + + + 推送结构化日志 + + + + + 写入 fault_record + + + + + 查询 /api/logs/query + + + + + 返回日志列表 + + + + call_llm_diagnose(logs) + + + + + 返回 FixCommand(JSON) + + + + + 写入 exec_log + + + + + 缓存/发布修复任务 + + + + + WebSocket 推送诊断结果 + + + + /api/repair/execute + + + + + 执行Shell/Hadoop命令 + + + + + stdout/stderr + + + + 更新 exec_log + + + + + 返回执行结果 + + + + + + 流程说明: + 1. Flume收集日志并推送到FastAPI后端 + 2. 系统将日志存储到MySQL数据库 + 3. 前端查询日志并展示给用户 + 4. 系统调用LLM进行智能诊断,生成修复命令 + 5. 诊断结果通过WebSocket实时推送到前端 + 6. 用户确认后执行自动修复,系统记录执行过程和结果 + 7. Redis用于缓存任务状态和消息队列管理 + + \ No newline at end of file diff --git a/doc/project/diagrams/架构图(1).svg b/doc/project/diagrams/架构图(1).svg new file mode 100644 index 0000000..c8a1af5 --- /dev/null +++ b/doc/project/diagrams/架构图(1).svg @@ -0,0 +1,140 @@ + + + + + + + + + + + 故障检测系统总体架构 + + + + + Hadoop Cluster + + + + NameNode + + + + DataNode + + + + DataNode + + + + + + Flume Agents + + + + + + FastAPI Service + + + + + + MySQL + + + + + + Redis + + + + + + LLM Diagnose + 调用大模型 + 返回FixCommand + + + + + + Frontend Web + (Vue/React + ECharts) + + + + + + + 采集HDFS/YARN日志 + + + 采集HDFS/YARN日志 + + + + 写入/查询故障记录 + + + + 状态缓存/队列 + + + + 调用诊断服务 + + + + /api/cluster/status + /api/logs/query + /api/diagnosis/result + /api/repair/execute + + + + WebSocket推送 + 状态/诊断结果 + + + + + + 架构说明: + + 数据采集层: + • Flume Agents负责从Hadoop集群各节点采集HDFS和YARN日志 + • 支持实时日志流处理和结构化数据传输 + + 服务层: + • FastAPI提供RESTful API和WebSocket服务 + • MySQL存储故障记录、执行日志等持久化数据 + • Redis提供缓存和消息队列功能 + + 智能诊断: + • 集成大语言模型进行智能故障诊断 + • 生成结构化的修复命令(FixCommand) + + 前端展示: + • Vue/React构建的现代化Web界面 + • ECharts提供丰富的数据可视化功能 + + \ No newline at end of file diff --git a/doc/project/diagrams/活动图(1).svg b/doc/project/diagrams/活动图(1).svg new file mode 100644 index 0000000..c2eced2 --- /dev/null +++ b/doc/project/diagrams/活动图(1).svg @@ -0,0 +1,201 @@ + + + + + + + + + + + 日志诊断与自动修复 - 活动图 + + + + 开始 + + + + Flume采集日志 + + + + FastAPI接收并解析日志 + + + + 保存 FaultRecord 到 MySQL + + + + 用户/系统触发 + + + + 是否需要诊断? + + + + 聚合相关日志 + + + 构造 Prompt + + + 调用 LLM 诊断 + + + 生成 FixCommand(JSON) + + + 安全校验(禁止高危命令) + + + + 等待新日志/用户请求 + + + 结束 + + + + 风险等级 == high? + + + + 前端弹窗请求人工确认 + + + + 用户确认执行? + + + + 继续执行修复 + + + + 记录并通知未执行 + + + 结束 + + + + 修复前预检查(配置/路径/权限) + + + + 预检查通过? + + + + 执行修复脚本 + + + 采集stdout/stderr + + + 保存 ExecLog 到 MySQL + + + 更新状态到 Redis 并推送 WebSocket + + + + 记录失败原因 + + + + 返回结果给前端 + + + + 结束 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/project/diagrams/用例图(1).svg b/doc/project/diagrams/用例图(1).svg new file mode 100644 index 0000000..6cdcd1a --- /dev/null +++ b/doc/project/diagrams/用例图(1).svg @@ -0,0 +1,144 @@ + + + + + + + + + + + 故障检测系统 - 用例图 + + + + 故障检测系统 + + + + + + + + + + 前端用户 + + + + + + + + + + 运维工程师 + + + + + + + + + + 测试工程师 + + + + + + 查看集群状态 + + + 查询日志 + + + 发起故障诊断 + + + + 执行自动修复 + + + 查看执行日志 + + + 配置Flume收集 + + + + 配置告警阈值 + + + 导出故障与 + 诊断报告 + + + + 生成FixCommand + + + 命令安全校验 + + + + + + + + + + + + + + + + + + + + + + 《include》 + + + 《include》 + + + + + 图例说明: + + 关联关系 + + 包含关系 + + 用例 + + 参与者 + + + + + + 主要用例说明: + • 前端用户:主要通过Web界面进行日志查询、故障诊断和修复操作 + • 运维工程师:负责系统配置、告警设置和高级修复操作 + • 测试工程师:主要进行日志分析和报告导出 + • 故障诊断包含生成FixCommand,自动修复包含命令安全校验 + • 系统支持多角色协作,确保故障处理的安全性和有效性 + + \ No newline at end of file diff --git a/doc/project/diagrams/界面原型详图(1).svg b/doc/project/diagrams/界面原型详图(1).svg new file mode 100644 index 0000000..9ad687d --- /dev/null +++ b/doc/project/diagrams/界面原型详图(1).svg @@ -0,0 +1,248 @@ + + + + + + + + 故障检测系统 - 详细界面原型 + + + + + 主界面框架 + + + + Logo + 故障检测系统 + 集群状态 ● + 日志查询 + 故障诊断 + 自动修复 + 系统配置 + admin ▼ + + + + 主体区域 + + + + 侧边栏 (宽度: 240px) + 📊 仪表板 + 🖥️ 集群监控 + 📝 日志管理 + ⚠️ 故障处理 + 🔧 修复历史 + ⚙️ 系统设置 + + + + 内容区域 + 面包屑导航 + 页面内容 + + + + + + 仪表板页面内容 + + + 统计卡片区 (4列布局) + + 集群节点 + 🖥️ 12/15 + 正常运行 + + + 活跃告警 + ⚠️ 3 + 需要关注 + + + 今日故障 + ❌ 1 + 已修复 + + + 修复成功率 + ✅ 95% + 本周统计 + + + 监控图表区 (2列布局) + + CPU使用率趋势 + [折线图区域] + 📈 过去24小时 + + + 内存使用率趋势 + [折线图区域] + 📊 过去24小时 + + + 最近故障表格 + + 表格标题: 最近故障 (刷新按钮) + ID | 类型 | 发生时间 | 状态 | 操作 + 001 | DataNode离线 | 10:30 | 已修复 | 查看 + 002 | 磁盘空间不足 | 09:15 | 修复中 | 查看 + 003 | 网络连接异常 | 08:45 | 待处理 | 诊断 + + + + + + 日志查询页面内容 + + + + 搜索条件栏 + 时间范围: [开始时间] - [结束时间] + 日志级别: ☑️ERROR ☑️WARN ☐INFO ☐DEBUG + 关键词: [搜索框] 🔍 + 主机: [下拉选择] 全部主机 ▼ + + + + 🔍 搜索 + + + 🔄 重置 + + + 📤 导出 + + + 🔬 批量诊断 + + + 日志列表表格 + + ☑️ | 时间 | 主机 | 级别 | 来源 | 消息 | 操作 + ☐ | 10:35:22 | node-1 | ERROR | HDFS | Connection failed | 诊断 + ☐ | 10:34:15 | node-2 | WARN | YARN | Memory usage high | 诊断 + ☑️ | 10:33:08 | node-1 | ERROR | HDFS | Disk space low | 诊断 + + + 共 1,234 条 | 每页 50 条 | ◀️ 1 2 3 ... 25 ▶️ + + + + + + 故障诊断页面内容 + + + + 诊断配置面板 + 已选择日志: 3 条 + [显示选中的日志摘要] + 诊断模型: 🤖 GPT-4 ▼ | 🔧 Claude ▼ + 分析深度: ○ 快速分析 ● 深度分析 ○ 全面分析 + + + + 诊断控制 + + 🚀 开始诊断 + + ⏹️ 停止诊断 + + 📋 查看历史 + + + + 诊断进度显示 + 诊断进度: ████████░░ 80% + 当前状态: 正在分析日志模式... + 预计剩余: 30秒 + + + + 诊断结果展示 + 🔍 故障类型: DataNode连接异常 + 📋 根本原因: 网络配置错误导致节点无法连接 + 💡 修复建议: 重启网络服务并更新配置 + ⚠️ 风险等级: 中等 (需要确认) + + 🔧 生成修复方案 + + + + + + 自动修复页面内容 + + + + 修复方案预览 + 修复脚本: + sudo systemctl restart network + sudo hdfs dfsadmin -refreshNodes + 影响范围: node-1 + 预计时间: 2分钟 + + + + 风险评估 + ⚠️ 风险等级: 中等 + 📝 风险说明: 重启网络服务可能短暂影响数据传输 + 🔄 回滚方案: 自动恢复原配置 + + + + 执行确认 + ☑️ 我已了解风险并确认执行 + ☑️ 已通知相关人员 + ☐ 在维护窗口期执行 + + 🚀 执行修复 + + ❌ 取消 + + + + 执行监控 + 执行状态: 🔄 执行中... | 开始时间: 10:45:30 + 执行日志: + [10:45:31] 开始执行修复脚本... + [10:45:32] 正在重启网络服务... | [10:45:35] 网络服务重启完成 + + + + + + 弹窗组件设计 + + + + ⚠️ 高风险操作确认 + 此操作风险等级为: 高 | 可能影响: 整个集群稳定性 + 建议操作时间: 维护窗口期 | 请输入确认码: CONFIRM-2024 + [取消] [确认执行] + + + + ✅ 修复执行成功 + 执行时间: 2分35秒 | 影响节点: node-1 | 修复状态: 成功 + 详细日志: [查看完整日志] + [关闭] [查看详情] + + \ No newline at end of file diff --git a/doc/project/diagrams/移动端原型图(1).svg b/doc/project/diagrams/移动端原型图(1).svg new file mode 100644 index 0000000..b10108e --- /dev/null +++ b/doc/project/diagrams/移动端原型图(1).svg @@ -0,0 +1,262 @@ + + + + + + + + 故障检测系统 - 移动端原型设计 + + + + + 移动端主界面 (宽度: 375px) + + + + + 故障检测 + 🔔 + + + + 可滑动侧边栏 (宽度: 280px) + 👤 admin - 运维工程师 + 📊 仪表板 + 🖥️ 集群监控 + 📝 日志管理 + ⚠️ 故障处理 + 🔧 修复历史 + ⚙️ 设置 + + + + 主内容区域 + 页面内容 + + + + 📊 + 仪表板 + 📝 + 日志 + ⚠️ + 故障 + 🔧 + 修复 + + + + + + 移动端仪表板 + + + + 集群状态 🖥️ + 12/15 节点正常 + 点击查看详情 > + + + 活跃告警 ⚠️ + 3 个需要关注 + 点击查看详情 > + + + 今日故障 ❌ + 1 个已修复 + 点击查看详情 > + + + 快速操作 + + 🔍 快速 + 诊断 + + + 📊 查看 + 日志 + + + ⚙️ 系统 + 状态 + + + 图表区域 (可横向滑动) + + CPU使用率 + [小型图表] + 📈 24h + + + 内存使用率 + [小型图表] + 📊 24h + + + + + + 移动端日志查询 + + + + 🔍 搜索日志... + 🔽 筛选 + + + + 筛选面板 (可展开/收起) + 时间: 最近1小时 ▼ + 级别: ERROR ▼ + 主机: 全部 ▼ + + 应用筛选 + + + 日志列表 (卡片式) + + 🔴 ERROR | 10:35:22 + node-1 | HDFS + Connection failed to... + [诊断] [详情] + + + 🟡 WARN | 10:34:15 + node-2 | YARN + Memory usage high... + [诊断] [详情] + + + + ⬇️ 加载更多日志 + + + + + + 移动端故障诊断 + + + + 诊断配置 + 已选择: 3 条日志 + [查看选中日志] + AI模型: GPT-4 ▼ + 分析深度: ● 快速 ○ 深度 ○ 全面 + + + + 🚀 开始诊断 + + + + 🔄 诊断进行中... + 进度: ████████░░ 80% + 当前状态: 正在分析日志模式 + 预计剩余: 30秒 + [取消诊断] + + + + + + 移动端自动修复 + + + + 修复方案 (可滚动) + 修复脚本预览: + sudo systemctl restart network + sudo hdfs dfsadmin -refresh + 影响范围: node-1 + 预计时间: 2分钟 + [查看完整脚本] + + + + ⚠️ 风险等级: 中等 + 风险说明: 重启网络服务可能 + 短暂影响数据传输 + ☑️ 我已了解风险 + ☑️ 已通知相关人员 + + + + 🚀 执行修复 + + + ❌ 取消 + + + + + + 移动端弹窗设计 + + + + ⚠️ 高风险操作 + 此操作可能影响整个集群 + 建议在维护窗口期执行 + 请输入确认码: + [CONFIRM-2024] + [取消] [确认执行] + + + + 🔄 修复执行中 + 开始时间: 10:45:30 + 执行进度: ████░░░░░░ 40% + 实时日志: + [10:45:31] 开始执行... + [10:45:32] 重启网络服务... + [停止执行] [最小化] + + + + + + 响应式设计要点 + + 移动端设计要点: + + 1. 触摸友好: + • 按钮最小44px高度 + • 间距充足,避免误触 + • 支持手势操作 + + 2. 内容优化: + • 关键信息优先显示 + • 长文本可展开/收起 + • 图表简化但保持可读性 + + 3. 导航优化: + • 汉堡菜单 + 底部导航 + • 面包屑导航简化 + • 返回按钮明显 + + 4. 性能考虑: + • 懒加载长列表 + • 图片压缩优化 + • 离线缓存关键数据 + + 5. 交互优化: + • 下拉刷新 + • 上拉加载更多 + • 滑动操作支持 + + \ No newline at end of file diff --git a/doc/project/diagrams/类图(1).svg b/doc/project/diagrams/类图(1).svg new file mode 100644 index 0000000..dd7e238 --- /dev/null +++ b/doc/project/diagrams/类图(1).svg @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + 故障检测与自动修复 - 类图 + + + + + + FlumeAgent + + +config : Map + + +start() + +stop() + + + + + + LogEvent + + +timestamp : datetime + +host : string + +source : string + +level : string + +message : string + +raw : text + + + + + + FastAPIService + + + +ingestLog(e: LogEvent) + +getClusterStatus() + +queryLogs(filter) + +diagnose(logs) + +executeRepair(cmd: FixCommand) + + + + + + + DiagnosisService + + + +callLLM(logs) : FixCommand + +validateCommand(cmd: FixCommand) : bool + + + + + + LLMClient + + +apiKey : string + +endpoint : string + + +invoke(prompt) : string + + + + + + FixCommand + + +fault_type : string + +reason : string + +fix_script : string + +risk_level : RiskLevel + + + + + + 《enumeration》 + RiskLevel + + low + medium + high + + + + + + + RepairExecutor + + + +run(script) : ExecResult + +precheck() : bool + + + + + + ExecResult + + +stdout : text + +stderr : text + +exitCode : int + + + + + + FaultRecord + + +id : int + +fault_type : string + +reason : string + +timestamp : datetime + +node : string + + + + + + ExecLog + + +id : int + +record_id : int + +stdout : text + +stderr : text + +timestamp : datetime + + + + + + + MySQLClient + + + +saveFault(record: FaultRecord) + +saveExecLog(log: ExecLog) + +queryLogs(filter) + + + + + + RedisCache + + + +set(key, value) + +publish(channel, msg) + +get(key) + + + + + + ClusterStatus + + +nodesUp : int + +nodesDown : int + +hdfsUsage : float + +yarnActiveApps : int + + + + + + FrontendWeb + + + +viewStatus() + +queryLogs() + +requestDiagnosis() + +executeRepair() + + + + + + push(LogEvent) + + + + diagnose(logs) + + + + call_llm_diagnose + + + + returns + + + + execute(FixCommand) + + + + returns + + + + save FaultRecord/ExecLog + + + + cache/publish status + + + + REST/WebSocket + + + + compose + + + + + + + + + + + + + + FixCommand JSON 示例: + { + fault_type: "DataNode故障", + reason: "磁盘占满", + fix_script: "ssh dn 'clean_temp.sh'", + risk_level: "medium" + } + + + + + + 系统架构说明: + • 数据流:FlumeAgent收集日志 → FastAPIService处理 → DiagnosisService诊断 → LLMClient生成修复命令 + • 执行流:RepairExecutor执行修复脚本 → ExecResult返回结果 → MySQLClient保存记录 + • 缓存层:RedisCache提供状态缓存和消息发布功能 + • 前端交互:FrontendWeb通过REST API和WebSocket与FastAPIService通信 + • 数据持久化:MySQLClient负责FaultRecord和ExecLog的存储管理 + • 风险控制:FixCommand包含风险等级,DiagnosisService进行命令验证 + • 集群监控:ClusterStatus提供实时集群状态信息 + + \ No newline at end of file diff --git a/doc/project/diagrams/部署图(1).svg b/doc/project/diagrams/部署图(1).svg new file mode 100644 index 0000000..e69de29 -- 2.34.1