提交 f61c2923 authored 作者: 陈泽健's avatar 陈泽健

feat(server): 新增中间件连接检测功能

- 实现MQTT主题连接检测,支持EMQX容器检测、Dashboard API、TCP端口连通性和进程状态多层检测
- 实现Redis连接检测,通过redis-cli在容器内执行ping命令验证连接
- 实现MySQL连接检测,使用mysql客户端测试数据库连接并支持端口连通性降级检测
- 实现FastDFS连接检测,通过fdfs_test命令执行文件上传测试验证服务可用性
- 更新文档版本号从1.0.3到1.0.4,添加中间件检测相关功能说明和配置信息
- 重构脚本架构,新增中间件配置对象和检测函数模块化设计
上级 a2afe2d5
......@@ -2,7 +2,8 @@
"permissions": {
"allow": [
"Bash(ls -la \"E:\\\\GithubData\\\\ubains-module-test\\\\自动化部署脚本\\\\x86架构\\\\新统一平台\\\\定时脚本\"\" 2>/dev/null || dir \"E:GithubDataubains-module-test自动化部署脚本x86架构新统一平台定时脚本\"\")",
"Bash(dir \"E:\\\\GithubData\\\\ubains-module-test\\\\自动化部署脚本\\\\x86架构\\\\新统一平台\" /s /b)"
"Bash(dir \"E:\\\\GithubData\\\\ubains-module-test\\\\自动化部署脚本\\\\x86架构\\\\新统一平台\" /s /b)",
"Bash(powershell -NoProfile -Command \"$content = Get-Content ''C:\\\\PycharmData\\\\ubains-module-test\\\\AuxiliaryTool\\\\ScriptTool\\\\远程更新程序\\\\remote_program_update.ps1'' -Raw -Encoding UTF8; $utf8BOM = New-Object System.Text.UTF8Encoding $true; [System.IO.File]::WriteAllText\\(''C:\\\\Users\\\\EDY\\\\Desktop\\\\test\\\\remote_program_update.ps1'', $content, $utf8BOM\\)\")"
]
}
}
......@@ -790,6 +790,38 @@ ls -la /etc/cron.d/ 2>/dev/null
---
### 4.18 中间件连接检测
#### 4.18.1 MQTT主题连接检测
- 连接当前服务器的MQTT服务
- 订阅标准版主题信息:
- /androidPanel/
- /iot/v1/conference/service/request/
- message/paperLessService/callService
- message/paperLessAuthor/onthewall
- /meeting/message/
- /iot/v1/device/event/request/
- /iot/v1/device/service/request/
- /iot/v1/conference/service/request/
- 主题发送消息检测:
每个主题订阅后补充消息推送监测。
#### 4.18.2 Redis连接检测
- 连接当前服务器的Redis服务,端口为6379,账号为root,密码为:dNrprU&2S
#### 4.18.3 Mysql连接检测
- 连接当前服务器的Mysql服务,端口为8306,账号为root,密码为:dNrprU&2S
#### 4.18.4 Fastfds连接检测
- 连接当前Fastfds服务
- 测试文件上传功能(可固定文件名称为:test.png)
- 指令如下:
- docker cp ./test.png ustorage:/home
- docker exec -it ustorage bash
- cd /home/
- fdfs_test /etc/fdfs/client.conf upload test.png
- 检查返回结果
### 4.18 报告生成
#### 4.18.1 报告格式
......
......@@ -36,8 +36,8 @@
| 版本 | 当前版本 | 状态 | 说明 |
|------|----------|------|------|
| Windows 版 | 1.0.3 | ✅ 稳定 | 功能完整,已投入使用 |
| Linux 版 | 1.0.3 | ✅ 稳定 | 功能完整,已投入使用 |
| Windows 版 | 1.0.4 | ✅ 稳定 | 功能完整,已投入使用 |
| Linux 版 | 1.0.4 | ✅ 稳定 | 功能完整,已投入使用 |
### 2.2 功能对比矩阵
......@@ -64,6 +64,10 @@
| 日志导出 | ✅ | ✅ | ⚠️ 差异 (导出方式) |
| 数据备份 | ✅ | ✅ | ⚠️ 差异 (下载方式) |
| 定时任务查询 | ❌ | ✅ | ⚠️ Linux 独有 |
| MQTT主题连接检测 | ✅ | ✅ | ✅ 一致 |
| Redis连接检测 | ✅ | ✅ | ✅ 一致 |
| MySQL连接检测 | ✅ | ✅ | ✅ 一致 |
| FastDFS连接检测 | ✅ | ✅ | ✅ 一致 |
**图例:**
- ✅ 已实现
......@@ -75,7 +79,7 @@
| 优先级 | 任务 | Windows 版 | Linux 版 |
|--------|------|-----------|----------|
| 🟢 低 | 版本号已统一为 1.0.3 | 1.0.3 | 1.0.3 |
| 🟢 低 | 版本号已统一为 1.0.4 | 1.0.4 | 1.0.4 |
| 🟢 低 | 差异说明文档化 | 已完成 | 已完成 |
---
......@@ -84,14 +88,24 @@
### 3.1 版本规划
#### v1.0.4 - 中间件连接检测(已发布)✅
**目标:** 基于 v1.0.3 版本,实现中间件连接检测功能
| 任务ID | 任务描述 | Windows 版 | Linux 版 | 负责人 | 状态 |
|--------|----------|-----------|----------|--------|------|
| T-1041 | MQTT主题连接检测 | 已实现 | 已实现 | - | ✅ 已完成 |
| T-1042 | Redis连接检测 | 已实现 | 已实现 | - | ✅ 已完成 |
| T-1043 | MySQL连接检测 | 已实现 | 已实现 | - | ✅ 已完成 |
| T-1044 | FastDFS连接检测 | 已实现 | 已实现 | - | ✅ 已完成 |
#### v1.1.0 - 功能增强(规划中)
**目标:** 基于当前 v1.0.3 版本,规划和实现功能增强
**目标:** 基于当前 v1.0.4 版本,规划和实现功能增强
| 任务ID | 任务描述 | Windows 版 | Linux 版 | 负责人 | 状态 |
|--------|----------|-----------|----------|--------|------|
| T-1101 | 定时任务查询功能移植到 Windows 版 | 待开发 | 已实现 | - | 🔲 待开始 |
| T-1102 | 增加更多中间件检测 | 待开发 | 待开发 | - | 🔲 待开始 |
| T-1103 | 支持配置文件外部化 | 待开发 | 待开发 | - | 🔲 待开始 |
#### v1.2.0 - 更多功能增强(规划中)
......@@ -270,6 +284,7 @@ graph TD
| 版本 | 日期 | 变更类型 | 变更内容 | 影响范围 |
|------|------|----------|----------|----------|
| 1.0.4 | 2026-01-29 | Minor | 新增中间件连接检测功能(MQTT/Redis/MySQL/FastDFS) | 两版本 |
| 1.0.3 | 2026-01-28 | Patch | 双版本版本号统一,功能完善 | 两版本 |
| 1.0.3 | 2026-01-XX | Patch | Windows 版功能完善 | Windows 版 |
| 1.0.0 | 2026-01-XX | Major | 初始版本 | 两版本 |
......@@ -366,8 +381,9 @@ graph TD
| M1 | 需求文档完成 | 2026-01-28 | ✅ 已完成 |
| M2 | 计划文档完成 | 2026-01-28 | ✅ 已完成 |
| M3 | 双版本 v1.0.3 统一 | 2026-01-28 | ✅ 已完成 |
| M4 | v1.1.0 功能增强完成 | 待定 | 🔲 计划中 |
| M5 | v1.2.0 更多功能增强完成 | 待定 | 🔲 计划中 |
| M4 | v1.0.4 中间件连接检测 | 2026-01-29 | ✅ 已完成 |
| M5 | v1.1.0 功能增强完成 | 待定 | 🔲 计划中 |
| M6 | v1.2.0 更多功能增强完成 | 待定 | 🔲 计划中 |
---
......
......@@ -62,10 +62,14 @@
| 中广核项目 | ubains | 1套(cims-web) | 1套(cims-java) | 中广核项目 |
#### 2.1.3 服务器预设信息
| 项目 | 环境 | 服务器类型 | IP地址 | SSH端口 | 用户名 | 密码 | 存放目录 |
|------|------|-----------|--------|---------|--------|------|---------|
| 中广核项目 | 测试环境 | 前端服务器 | 10.126.4.79 | 1122 | root | Admin@123Admin@123 | /home/appadmin/ |
| 中广核项目 | 测试环境 | 后端服务器 | 10.126.4.81 | 1122 | appadmin | CGNadm!@345CGNadm!@345 | /home/appadmin/ |
| 项目 | 环境 | 服务器类型 | IP地址 | SSH端口 | 用户名 | 密码 | root密码 | 存放目录 |
|------|------|-----------|--------|---------|--------|------|---------|---------|
| 中广核项目 | 测试环境 | 前端服务器 | 10.126.4.79 | 1122 | root | Admin@123Admin@123 | - | /home/appadmin/ |
| 中广核项目 | 测试环境 | 后端服务器 | 10.126.4.81 | 1122 | appadmin | CGNadm!@345CGNadm!@345 | Admin@123Admin@123 | /home/appadmin/ |
**说明**
- 前端服务器:使用root用户直接登录,无需切换
- 后端服务器:使用appadmin用户登录,通过 `su -` 切换到root用户执行命令,root密码为 `Admin@123Admin@123`
#### 2.1.3 更新类型
| 更新类型 | 说明 | 需要重启 |
......
......@@ -743,6 +743,7 @@ tail -n 50 /var/www/html/log/uinfo.log
| 日期 | 版本 | 变更内容 | 变更人 |
|------|------|----------|--------|
| 2026-01-28 | V2.6 | 后端服务器从使用sudo改为使用su切换到root用户;root密码设置为Admin@123Admin@123 | Claude |
| 2026-01-28 | V2.5 | 修复Invoke-PlinkCommand函数输出捕获问题;修复sudo中文参数乱码问题;优化正则表达式匹配;前端更新测试通过 | Claude |
| 2026-01-28 | V2.4 | 中广核项目部署方式改为使用zip压缩包(cims-update.zip),统一部署流程;移除旧版本plink不支持的参数 | Claude |
| 2026-01-28 | V2.3 | 中广核项目从系统类型改为独立平台类型,增加服务器预设功能(测试环境前端/后端服务器) | Claude |
......@@ -754,7 +755,30 @@ tail -n 50 /var/www/html/log/uinfo.log
## 13.2 技术实现细节与问题解决
### 13.2.1 Invoke-PlinkCommand输出捕获问题
### 13.2.1 中广核项目后端服务器su切换方式
**实现方式变更**
- 原方式:使用 `sudo -S` 切换到root(sudo密码与appadmin登录密码相同)
- 新方式:使用 `su -` 切换到root(root密码为 `Admin@123Admin@123`
**变更原因**
- appadmin用户密码包含特殊字符,导致plink验证失败
- 改用root用户登录密码,避免特殊字符问题
**实现代码**
```powershell
if ($needSu) {
Write-Info "中广核项目(后端服务器):使用 su 切换到root用户执行更新脚本"
$execCmd = "cd '$remoteDir' && echo '$rootPassword' | su - -c 'chmod +x ./program_update.sh && env LC_CTYPE=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 ./program_update.sh --platform \"$platformType\" --system \"$systemType\" --update \"$updateType\" --workdir \"$remoteDir\"'"
}
```
**说明**
- `su -` 切换到root用户,并使用 `-c` 执行命令
- 在命令中设置 `LC_CTYPE``LC_ALL``zh_CN.UTF-8` 支持中文参数
- root密码通过 `echo` 传递给 `su` 命令
### 13.2.2 Invoke-PlinkCommand输出捕获问题
**问题描述**
函数直接返回空字符串,导致无法解析远端脚本输出的 `BACKUP_TAR` 变量。
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论