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

feat(server-check): 实现NTP服务自动修复与脚本上传功能

- 在NTP检测异常时自动触发远端修复流程
- 新增Upload_the_repair_script函数用于上传issue_handler.sh
- 支持检测并修复NTP服务配置偏差与时间同步问题
- 优化NTP时间比较逻辑,移除手动时区转换
- 修复issue_handler.sh中chrony服务名不一致问题
- 重构issue_handler.sh支持命令行动作调用模式
- 完善服务自检文档中的功能点编号与描述
- 统一代码风格,规范哈希表结尾分号使用
上级 323a46a8
...@@ -18,16 +18,16 @@ ...@@ -18,16 +18,16 @@
#### 检测需求 #### 检测需求
##### SSH连接(✅ 已实现): ##### 1、SSH连接(✅ 已实现):
支持预设服务器列表和手动输入(IP/端口/用户名/密码) 支持预设服务器列表和手动输入(IP/端口/用户名/密码)
##### 平台识别(✅ 已实现): ##### 2、平台识别(✅ 已实现):
自动检测目标服务器平台类型(检测 /data/services 目录,如果没有则是传统平台) 自动检测目标服务器平台类型(检测 /data/services 目录,如果没有则是传统平台)
##### 系统识别(✅ 已实现): ##### 3、系统识别(✅ 已实现):
自动检测目标服务器的系统类型(检测容器分为三种:ujava、upython、upython_voice,如果有ujava则有会议预定系统、python对应运维集控系统、upython_voice对应转录系统) 自动检测目标服务器的系统类型(检测容器分为三种:ujava、upython、upython_voice,如果有ujava则有会议预定系统、python对应运维集控系统、upython_voice对应转录系统)
##### 服务进程检测(✅ 已实现): ##### 4、服务进程检测(✅ 已实现):
根据平台类型不同需要分别在不同的位置进行检测,具体如下: 根据平台类型不同需要分别在不同的位置进行检测,具体如下:
###### 新统一平台(✅ 已实现): ###### 新统一平台(✅ 已实现):
...@@ -79,13 +79,13 @@ ...@@ -79,13 +79,13 @@
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 105/memcached tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 105/memcached
tcp6 0 0 :::11211 :::* LISTEN 105/memcached tcp6 0 0 :::11211 :::* LISTEN 105/memcached
##### DNS解析问题(✅ 已实现): ##### 5、DNS解析问题(✅ 已实现):
检测目标服务器的DNS配置,能否正常进行解析等相关操作 检测目标服务器的DNS配置,能否正常进行解析等相关操作
##### 服务器资源分析(✅ 已实现): ##### 6、服务器资源分析(✅ 已实现):
检查目标服务器的磁盘空间情况、内存使用情况、cpu使用情况、防火墙开放端口情况、服务器架构以及操作系统记录 检查目标服务器的磁盘空间情况、内存使用情况、cpu使用情况、防火墙开放端口情况、服务器架构以及操作系统记录
##### 服务日志导出(✅ 已实现): ##### 7、服务日志导出(✅ 已实现):
将目标服务器上的服务日志采集,需判断传统平台还是新统一平台 将目标服务器上的服务日志采集,需判断传统平台还是新统一平台
传统平台: 传统平台:
如果有ujava容器: 如果有ujava容器:
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
8、将/data/services/api/java-meeting/java-mqtt/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为MQTT_ubains-INFO-AND-ERROR.log 8、将/data/services/api/java-meeting/java-mqtt/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为MQTT_ubains-INFO-AND-ERROR.log
9、将/data/services/api/java-meeting/java-quartz/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为定时任务_ubains-INFO-AND-ERROR.log 9、将/data/services/api/java-meeting/java-quartz/logs目录下的ubains-INFO-AND-ERROR.log日志文件导出命名为定时任务_ubains-INFO-AND-ERROR.log
##### 配置文件IP检测(✅ 已实现) ##### 8、配置文件IP检测(✅ 已实现)
检测目标服务器上的配置文件中的IP地址配置是否正确为目标服务器IP,需判断传统平台还是新统一平台 检测目标服务器上的配置文件中的IP地址配置是否正确为目标服务器IP,需判断传统平台还是新统一平台
传统平台: 传统平台:
如果有ujava容器: 如果有ujava容器:
...@@ -155,12 +155,12 @@ ...@@ -155,12 +155,12 @@
注意:如果遇到有172.17.0.1、127.0.0.1的IP地址以及和目标服务器IP地址一致的需判断为正确!检测日志需要打印出配置文件的路径,不要进行修改IP的操作!将单个配置文件内的IP地址检测收集结果后再标注打印,并增加配置项地址。日志需要更简洁明了! 注意:如果遇到有172.17.0.1、127.0.0.1的IP地址以及和目标服务器IP地址一致的需判断为正确!检测日志需要打印出配置文件的路径,不要进行修改IP的操作!将单个配置文件内的IP地址检测收集结果后再标注打印,并增加配置项地址。日志需要更简洁明了!
##### 服务器NTP服务检测(✅ 已实现): ##### 9、服务器NTP服务检测(✅ 已实现):
检测目标服务器上的ntp服务是否开启并能够正确进行同步时间操作,ntp服务应该分为:ntp和chronyd两种,并且需要检测目标服务器时间和北京时间是否一致。 检测目标服务器上的ntp服务是否开启并能够正确进行同步时间操作,ntp服务应该分为:ntp和chronyd两种,并且需要检测目标服务器时间和北京时间是否一致。
注意:此检测步骤需要在日志导出之前执行。不要做ntp配置文件的修改操作,此脚本只做检测! 注意:此检测步骤需要在日志导出之前执行。不要做ntp配置文件的修改操作,此脚本只做检测!
##### 文件权限检测(✅ 已实现): ##### 10、文件权限检测(✅ 已实现):
检测目标服务器上的数据库用户权限、nginx用户权限、启动文件权限、redis配置文件权限以及rc.local文件权限; 检测目标服务器上的数据库用户权限、nginx用户权限、启动文件权限、redis配置文件权限以及rc.local文件权限;
传统平台: 传统平台:
如果有ujava容器: 如果有ujava容器:
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
2、数据库用户权限需要进入umysql容器内,数据库账号为root,密码为dNrprU&2S 2、数据库用户权限需要进入umysql容器内,数据库账号为root,密码为dNrprU&2S
注意:此检测函数需要在日志导出函数前执行,并且main主函数和日志记录函数都需要补充调用!将文件权限打印出来! 注意:此检测函数需要在日志导出函数前执行,并且main主函数和日志记录函数都需要补充调用!将文件权限打印出来!
##### 现场数据备份(✅ 已实现): ##### 11、现场数据备份(✅ 已实现):
函数名称:DataBakup 函数名称:DataBakup
先判断目标服务器是新统一平台还是传统平台,再备份对应平台的服务包与配置文件等数据,最后在目标服务器上压缩成tar.gz格式文件导出到电脑上。 先判断目标服务器是新统一平台还是传统平台,再备份对应平台的服务包与配置文件等数据,最后在目标服务器上压缩成tar.gz格式文件导出到电脑上。
...@@ -224,12 +224,19 @@ ...@@ -224,12 +224,19 @@
最后将/home/bakup目录压缩成tar.gz格式文件并导出,文件命名补充时间戳,导出完成后清理/home目录下的这个备份文件。 最后将/home/bakup目录压缩成tar.gz格式文件并导出,文件命名补充时间戳,导出完成后清理/home目录下的这个备份文件。
##### 容器信息收集(待实现): ##### 12、容器信息收集(✅ 已实现):
函数名称:Test-ContainerInformation 函数名称:Test-ContainerInformation
查询当前服务器上所有容器信息(包含未运行与运行中的信息),可以通过docker inspect来获取MAC地址、端口映射信息、启动文件位置。 查询当前服务器上所有容器信息(包含未运行与运行中的信息),可以通过docker inspect来获取MAC地址、端口映射信息、启动文件位置。
信息打印排版:先打印运行中的容器信息,再打印未运行的容器信息。 信息打印排版:先打印运行中的容器信息,再打印未运行的容器信息。
##### 定时任务查询(待实现): ##### 13、定时任务查询(待实现):
##### 14、上传修复脚本(待实现):
函数名称:Upload_the_repair_script
功能描述:函数只做上传脚本及脚本调用,上传当前目录下的issue_handler.sh脚本,将脚本上传到目标服务器,并且通过传入的修复函数,调用issue_handler对应的函数来修复。
例如:当前判断目标服务器的NTP服务存在异常,那么调用issue_handler脚本中的fix_ntp_config函数,脚本执行:./issue_handler.sh --action fix_ntp_config
##### 服务自检报告输出(✅ 已实现): ##### 服务自检报告输出(✅ 已实现):
将服务自检的所有操作步骤与结果输出到日志文件中!自检报告需要补充成md格式! 将服务自检的所有操作步骤与结果输出到日志文件中!自检报告需要补充成md格式!
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论