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

feat(script): 添加 Windows 服务自检脚本

- 实现远程服务器健康检查功能
- 支持预设服务器列表和手动输入
- 自动检测平台类型(新统一平台/传统平台)
- 识别系统容器类型(ujava/upython/upython_voice)
- 检测相应服务进程和端口状态
- 生成详细检测报告和日志记录
- 支持 plink 和 sshpass 两种 SSH 工具
- 兼容中英文混合环境编码问题
- 提供彩色控制台输出和日志文件记录
上级 381348db
......@@ -101,6 +101,28 @@
| 进度显示 | 打包和上传过程显示进度条 | ✅ 已实现 |
| 密码加密 | 网盘密码使用 base64 加密存储 | ✅ 已实现 |
### 新增脚本remote_update_win
> 参考脚本:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\远程容器更新\remote_update.sh
> 新增脚本:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\远程容器更新\remote_update_win
> 脚本要求:最好能够直接运行,不用安装依赖
| 功能模块 | 描述 | 状态 |
|----------|------|------|
| 服务器选择 | 支持预设服务器列表和手动输入(IP/端口/用户名/密码) | ❌ 待开发 |
| 自定义端口 | 支持自定义 SSH 端口(默认 22) | ❌ 待开发 |
| 架构校验 | 校验目标服务器是否为 x86 架构 | ❌ 待开发 |
| 镜像传输 | 自动传输镜像文件和部署脚本 | ❌ 待开发|
| 容器停止 | 自动停止远端旧容器 | ❌ 待开发 |
| 平台识别 | 自动检测目标服务器平台类型(检测 /data/services 目录) | ❌ 待开发 |
| 版本校验 | 自动校验远端容器镜像版本是否已更新 | ❌ 待开发 |
| EMQX 同步 | 同步 EMQX 配置、数据、日志目录 | ❌ 待开发 |
| Python 同步 | 同步 Python 代码和配置 | ⏸️ 暂停 |
| Nginx 同步 | 同步 Nginx 配置、HTML、证书 | ❌ 待开发 |
| 容器编号 | 自动递增容器编号 | ❌ 待开发 |
| 远端执行 | 调用远端部署脚本 | ❌ 待开发 |
| 日志审计 | 每一步骤的日志都需要记录到log文件中 | ❌ 待开发 |
### 待开发功能
| 功能 | 描述 | 状态 |
......
# 服务自检需求说明文档
## 📋 概述
本脚本主要用于服务自检,用于检测服务器上的服务是否正常启动,并返回结果。
### 背景
目前针对系统服务进行自检,需要区分两种平台环境:
- **新统一平台**:使用 `/data/` 目录结构
- **传统平台**:使用 `/var/www/` 目录结构
## 🎯 功能实现总览
### 服务自检 (`check_server_health.ps1`)
#### 检测需求
##### SSH连接(✅ 已实现):
支持预设服务器列表和手动输入(IP/端口/用户名/密码)
##### 平台识别(✅ 已实现):
自动检测目标服务器平台类型(检测 /data/services 目录,如果没有则是传统平台)
##### 系统识别(✅ 已实现):
自动检测目标服务器的系统类型(检测容器分为三种:ujava、upython、upython_voice,如果有ujava则有会议预定系统、python对应运维集控系统、upython_voice对应转录系统)
##### 服务进程检测(❌ 开发进行中):
根据平台类型不同需要分别在不同的位置进行检测,具体如下:
###### 新统一平台(✅ 已实现):
ujava后端服务分为容器内和容器外
需进入ujava2容器内检查,共有以下五个基础服务进程:
["auth"]="ubains-auth.jar"
["gateway"]="ubains-gateway.jar"
["system"]="ubains-modules-system.jar"
["meeting2.0"]="java-meeting2.0/ubains-meeting-inner-api-1.0-SNAPSHOT.jar"
["meeting3.0"]="java-meeting3.0/ubains-meeting-inner-api-1.0-SNAPSHOT.jar"
["mqtt"]="ubains-meeting-mqtt-1.0-SNAPSHOT.jar"
["quartz"]="ubains-meeting-quartz-1.0-SNAPSHOT.jar"
["message"]="ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar"
在宿主机上路径:
/data/services/api/java-meeting/java-meeting-extapi目录下的ubains-meeting-api-1.0-SNAPSHOT.jar进程
upython后端服务需进入upython容器内检查,共有以下4个端口:
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 14/memcached
tcp 0 0 127.0.0.1:36917 0.0.0.0:* LISTEN 38/uwsgi
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 38/uwsgi
tcp6 0 0 :::11211 :::* LISTEN 14/memcached
upython_voice后端服务需进入upython_voice容器内检查,共有以下:
tcp 0 0 127.0.0.1:39573 0.0.0.0:* LISTEN 114/uwsgi
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 114/uwsgi
tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 79/memcached
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 47/nginx: master pr
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 47/nginx: master pr
tcp6 0 0 :::1883 :::* LISTEN -
tcp6 0 0 :::11211 :::* LISTEN 79/memcached
tcp6 0 0 :::80 :::* LISTEN 47/nginx: master pr
###### 传统平台(❌ 未实现):
ujava后端服务分为容器内和容器外
需进入ujava2容器内检查,共有以下两个基础服务进程:
root 8 1 0 15:26 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
ubains-meeting-inner-api-1.0-SNAPSHOT.jar
在宿主机路径:/var/www/java/external-meeting-api的进程:
ubains-meeting-api-1.0-SNAPSHOT.jar
upython后端服务在容器内:
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 101/nginx: master p
tcp 0 0 127.0.0.1:37817 0.0.0.0:* LISTEN 124/uwsgi
tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 101/nginx: master p
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 124/uwsgi
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 14/httpd
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 105/memcached
tcp6 0 0 :::11211 :::* LISTEN 105/memcached
##### DNS解析问题(❌ 未实现):
检测目标服务器的DNS配置,能否正常进行解析等相关操作
##### 服务器资源分析(❌ 未实现):
检查目标服务器的磁盘空间情况、内存使用情况以及cpu使用情况
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论