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

feat(scripts): 添加自动化服务监测脚本

- 实现SSH连接管理,支持多服务器连接与自动重连
- 添加平台识别功能,自动检测新统一平台(/data/services)与传统平台(/var/www)
- 实现系统识别,检测ujava、upython、upython_voice容器并映射业务系统
- 添加日志暴涨检测,采用增量行数窗口法监测日志增长速率
- 实现ERROR日志审计,抓取错误上下文并记录发生时间段
- 添加内存资源监控,记录使用峰值、平均值与时间点
- 实现MySQL连接数监测,检测容器内连接数并判断暴涨情况
- 集成多线程监控,支持并发监测多台服务器
- 配置中文日志输出与滚动文件日志记录
上级 6cf626a3
# 服务自检需求说明文档
## 📋 概述
本脚本主要用于在自动化运行期间的服务器监测,用于检测在自动化运行期间的服务器时间的服务信息。
### 背景
目前针对系统服务进行自检,需要区分两种平台环境:
- **新统一平台**:使用 `/data/` 目录结构
- **传统平台**:使用 `/var/www/` 目录结构
## 🎯 功能实现总览
### 服务监测 (`AutomatedServiceMonitoring.py`)
脚本路径:E:\GithubData\自动化\ubains-module-test\辅助工具\脚本工具\自动化服务监测\AutomatedServiceMonitoring.py
#### 检测需求
##### 1、SSH连接(✅ 已实现):
支持预设服务器列表
1、192.168.5.48 root Ubains@1234
2、192.168.5.44 root Ubains@1234
##### 2、平台识别(✅ 已实现):
自动检测目标服务器平台类型(检测 /data/services 目录,如果没有则是传统平台)
##### 3、系统识别(✅ 已实现):
自动检测目标服务器的系统类型(检测容器分为三种:ujava、upython、upython_voice,如果有ujava则有会议预定系统、python对应运维集控系统、upython_voice对应转录系统)
##### 4、服务监测(待实现):
4.1、多连接:(✅ 已实现)
可支持连接多台服务器
4.2、日志审计:✅ 已实现)
- 根据平台类型持续审计日志信息在某个时间段是否存在暴涨的情况:
每次采样获取日志总行数 total_lines 和采样时间 now_ts。
与上次采样 last_total、last_ts 比较,得到 elapsed 和 delta_lines。
只有当 elapsed ≥ window_seconds(默认 300 秒)时进行判定:
若 delta_lines ≥ min_lines_threshold(默认 1000 行),判定为暴涨。
或 delta_lines/elapsed ≥ rate_threshold_per_sec(默认 5 行/秒),判定为暴涨。
记录暴涨时间段为 [上次采样时间 ~ 本次采样时间],分别用服务器 date -d @epoch 转成人类可读时间。
- 记录所有ERROR日志信息上下50行的时间段
新平台:
预定系统:
1、2.0对内后端日志:
路径:/data/services/api/java-meeting/java-meeting2.0
日志打印:tail -f logs/ubains-INFO-AND-ERROR.log
2、3.0对内后端日志:
路径:/data/services/api/java-meeting/java-meeting3.0
日志打印:tail -f logs/ubains-INFO-AND-ERROR.log
传统平台:
预定系统:
1、2.0对内后端日志:
路径:/var/www/java/api-java-meeting2.0
日志打印:tail -f logs/ubains-INFO-AND-ERROR.log
4.3、内存资源消耗:
根据平台类型持续监测服务器内存占用情况,记录峰值与峰值时的时间点,以及记录平均值。
4.4、mysql连接数:
根据平台类型持续监测mysql连接数在某个时间段是否存在暴涨,或是异常一直没断开的连接数。
先检查mysql容器名称,然后通过进入mysql容器内部进行查询
4.5、emqx连接数:
根据平台类型持续监测EMQX连接数量峰值、平均值,以及是否存在暴涨情况,或是判断一直没断开的异常连接。
##### 5、监测日志审计:
需要丰富日志体系,日志需要用中文打印
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论