运维与管理¶
系统维护¶
服务启动/停止命令
方法1:用户可通过管理页面启停司南系统,详细操作方法参考“司南状态页面”中的相关说明。
方法2:重新拉起镜像,详细操作方法参考“2.5 服务启动与验证”章节内容。
数据库备份与恢复
司南服务所使用的mysql和MongoDB数据库都由用户自行配置,用户可根据自身需求选择合适的数据库备份方案。
用户权限管理
详细操作方法参考“用户管理”中的相关说明。
系统升级流程
详细操作方法参考“司南状态页面”中的相关说明。
故障排除¶
常见问题及其解决方案列表。
问题列表:
任务停留在 “Sent”(已发送)状态
可能原因: 与测控系统断开连接。
解决方案: 检查网络连接并重启测控服务。
数据库连接失败
可能原因: Redis 未运行。
解决方案: 执行 systemctl start redis。
编译失败
可能原因: 语法错误。
解决方案: 检查提交任务的线路格式。
页面加载缓慢
可能原因: 缓存堆积。
解决方案: 清除浏览器缓存或服务器端缓存。
部署问题答疑¶
本节汇总系统部署过程中常见问题及对应解决方案,便于快速排查与定位。
PilotOS服务异常&司南授权校验服务暂时不可访问¶
问题现象
执行完司南部署,访问 http://< 服务器 IP>:10020=页面,点击验证时提示PilotOS服务异常和司南授权校验暂时不可访问。
问题可能原因
IP配置错误
MySQL表结构未初始化或初始化错误
MongoDB连接错误
排查步骤
根据Config.json中配置,依次检查配置的MySQL连通性、MongoDB连通性,下述命令需在宿主机中执行:
IP配置检查
检查config.json中配置的数据库IP,不可将IP配置为127.0.0.1,因镜像内为单独环境,配置127.0.0.1即将数据库配置为镜像内而非宿主机,需配置为宿主机IP。
检查 MySQL 连通性
本步骤分为服务器端检查和客户端检查,确保 MySQL 服务正常运行且远程可访问。
(1)服务器端检查
# 1. 检查 MySQL 服务状态 sudo systemctl status mysql # 若未启动则启动服务 sudo systemctl start mysql # 2. 检查 MySQL 监听端口和地址 ss -lntp | grep 3306 # 注意:如果只绑定 127.0.0.1,则不允许远程访问 # 3. 检查配置文件 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # 核查以下内容: # bind-address = 0.0.0.0 # 支持远程访问 # skip-networking # 应注释或确保未启用 # 4. 检查防火墙是否允许 3306 sudo ufw status sudo ufw allow 3306/tcp # 5. 登录 MySQL 检查用户权限 mysql -u root -p # 查看用户及可访问主机 SELECT User, Host FROM mysql.user; # 确保需要远程访问的用户 Host 为 '%' 或客户端 IP # 查看数据库权限 SHOW GRANTS FOR '<用户名称>'@'<客户端IP或%>';
(2)客户端检查
# 确认客户端与服务器网络通畅 ping <MySQL服务器IP> # 尝试连接 MySQL mysql -h <MySQL服务器IP> -P 3306 -u <用户名称> -p # 查看数据库是否存在初始化时配置的数据库 SHOW DATABASES; # 进入目标数据库 USE <你的数据库名>; # 查看表状态,确保初始化成功 SHOW TABLE STATUS; # 终端应显示类似 "26 rows in set",否则初始化失败
若客户端上述未展示26张表,则需重新执行数据库初始化步骤。
MongoDB 数据库部署与权限配置(在MongoDB服务器上执行下述操作)
(1)检查 MongoDB 服务状态
sudo systemctl status mongod sudo systemctl start mongod
(2)检查或创建 Pilot 数据库
mongosh show dbs use Pilot db.init.insertOne({init: 1})
(3)创建访问 Pilot 数据库的用户
use Pilot db.createUser({ user: "username", pwd: "password", roles: [ { role: "readWrite", db: "Pilot" } ] })
(4)开启身份认证机制
编辑配置文件: .. code-block:: bash
sudo nano /etc/mongod.conf
添加内容: .. code-block:: yaml
- security:
authorization: enabled
重启服务: .. code-block:: bash
sudo systemctl restart mongod
(5)配置远程访问权限
修改配置文件: .. code-block:: yaml
- net:
bindIp: 0.0.0.0
开放防火墙端口(未开启防火墙忽略): .. code-block:: bash
sudo ufw allow 27017/tcp
(6)远程连接测试
mongosh "mongodb://pilotUser:StrongPassword123!@服务器IP:27017/Pilot?authSource=Pilot"
验证方法
确认MySQL和MongoDB连通性后,需重启司南镜像: 在pilotos-4.0文件夹中执行以下命令重启司南镜像服务:
sudo docker compose down
sudo python3 AutoDeploy.py start
重启之后,再次访问 http://< 服务器 IP>:10020,验证许可证,如仍未解决上述问题,请通过官网联系运维人员。
许可证验证服务器连接出错,请检查网络¶
问题现象
点击验证许可证时提示**Cannot connect to the license verification server**。
问题原因
访问司南许可证验证服务器需本机可连接公网,出现此问题为本机网络问题,请检查本机网络是否正常。
验证方法
确认本机可连接网络后,在镜像内执行下述命令验证本机可访问司南许可证验证服务器,首先执行第一步进入司南镜像,之后通过curl工具测试连通性。
sudo docker exec -it pilotos-server bash
curl -v -k -X POST https://qcloud.originqc.com.cn/api/license/authLicense.json -H "Content-Type: application/json" -d '{"test":1}
如连接正常,服务器会返回如下信息:
{"success":false,"code":60001,"message":"License不合法,请输入正确的License","obj":null}