debug
This commit is contained in:
@@ -36,6 +36,10 @@
|
||||
|
||||
- `docs/18_domainCheck_CentOS9一键复制部署与更新文档.md`
|
||||
|
||||
### 9. 临时海外控制面联调清单
|
||||
|
||||
- `docs/20_domainCheck_临时海外控制面联调清单.md`
|
||||
|
||||
## 二、文档阅读顺序
|
||||
|
||||
### 1. 先看总体方案
|
||||
@@ -53,6 +57,7 @@
|
||||
- `docs/16_domainCheck_多机检测与跨地域部署设计.md`
|
||||
- `docs/17_domainCheck_全流程部署实操手册.md`
|
||||
- `docs/18_domainCheck_CentOS9一键复制部署与更新文档.md`
|
||||
- `docs/20_domainCheck_临时海外控制面联调清单.md`
|
||||
|
||||
### 3. 如果要回溯历史需求与问题
|
||||
|
||||
|
||||
231
docs/20_domainCheck_临时海外控制面联调清单.md
Normal file
231
docs/20_domainCheck_临时海外控制面联调清单.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# domainCheck 临时海外控制面联调清单
|
||||
|
||||
适用场景:
|
||||
|
||||
- 暂时不使用正式海外机器
|
||||
- 先把大陆 `controller + worker` 对接到当前测试海外机
|
||||
- 先跑通“控制面 + 同步 + 观测”全链路,再切回正式海外环境
|
||||
|
||||
当前临时海外控制面:
|
||||
|
||||
- 节点编码:`overseas-control-01`
|
||||
- 节点角色:`overseas / control`
|
||||
- 机器 IP:`152.53.37.118`
|
||||
- 后台地址:`http://152.53.37.118/`
|
||||
- API 基址:`http://152.53.37.118:8100`
|
||||
|
||||
## 1. 当前目标拓扑
|
||||
|
||||
本次联调按下面的角色分工:
|
||||
|
||||
- 大陆 controller
|
||||
- 承担 API 控制面
|
||||
- 承担 Sync Agent
|
||||
- 可以兼跑本机 Worker
|
||||
- 大陆 worker
|
||||
- 只承担检测执行
|
||||
- 临时海外控制面
|
||||
- 只承担 API 控制与同步接收
|
||||
- 不承载本机 Worker
|
||||
- 不承载 Sync Agent
|
||||
|
||||
## 2. 临时海外控制面应有状态
|
||||
|
||||
在临时海外控制面机器上执行:
|
||||
|
||||
```bash
|
||||
bash domain-api/deploy/multi-region/check_temp_overseas_control.sh
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- `domaincheck-api` 为 `active (running)`
|
||||
- `domaincheck-worker` 为 `inactive (dead)` 或禁用
|
||||
- `runtime.status.data.node`
|
||||
- `code=overseas-control-01`
|
||||
- `region=overseas`
|
||||
- `role=control`
|
||||
- `runtime.status.data.worker.expected_on_this_node=false`
|
||||
- `runtime.status.data.sync_agent.expected_on_this_node=false`
|
||||
- `runtime.status.data.detect.phase_label=当前节点不承载`
|
||||
|
||||
## 3. 大陆 controller 切到临时海外控制面
|
||||
|
||||
在大陆 controller 上执行:
|
||||
|
||||
```bash
|
||||
sed -i 's#^SYNC_TARGET_API_BASE_URL=.*#SYNC_TARGET_API_BASE_URL=http://152.53.37.118:8100#' /etc/default/domaincheck-api
|
||||
sed -i 's/^SYNC_PUSH_ENABLED=.*/SYNC_PUSH_ENABLED=true/' /etc/default/domaincheck-api
|
||||
|
||||
systemctl restart domaincheck-api
|
||||
systemctl restart domaincheck-sync-agent
|
||||
systemctl restart domaincheck-worker
|
||||
sleep 3
|
||||
```
|
||||
|
||||
然后检查:
|
||||
|
||||
```bash
|
||||
curl -s http://127.0.0.1:8100/api/v1/runtime/readiness
|
||||
echo
|
||||
curl -s http://127.0.0.1:8100/api/v1/runtime/sync-summary
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- `runtime/readiness` 至少不是大陆本机配置错误导致的 `blocking`
|
||||
- `runtime/sync-summary.data.enabled=true`
|
||||
- `runtime/sync-summary.data.target_api_base_url=http://152.53.37.118:8100`
|
||||
|
||||
## 4. 大陆 worker 检查项
|
||||
|
||||
在大陆 worker 上执行:
|
||||
|
||||
```bash
|
||||
bash domain-api/deploy/multi-region/check_mainland_worker.sh
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- `NODE_CODE=mainland-worker-01`
|
||||
- `NODE_REGION=mainland`
|
||||
- `NODE_ROLE=worker`
|
||||
- `domaincheck-worker` 为 `active (running)`
|
||||
|
||||
如果大陆 controller 也兼跑检测,再执行:
|
||||
|
||||
```bash
|
||||
systemctl status domaincheck-worker --no-pager -l
|
||||
echo
|
||||
curl -s http://127.0.0.1:8100/api/v1/runtime/status
|
||||
```
|
||||
|
||||
预期:
|
||||
|
||||
- `worker.running=true`
|
||||
- `worker.expected_on_this_node=true`
|
||||
|
||||
## 5. 最短联调命令
|
||||
|
||||
### 5.1 在大陆 controller 上
|
||||
|
||||
```bash
|
||||
bash domain-api/deploy/multi-region/check_temp_link.sh http://127.0.0.1:8100 http://152.53.37.118:8100
|
||||
```
|
||||
|
||||
关注点:
|
||||
|
||||
- `push_sync` 返回 `code=0` 或幂等成功
|
||||
- 不再出现目标地址为空
|
||||
- 不再出现 `SYNC_PUSH_ENABLED=false`
|
||||
|
||||
关注点:
|
||||
|
||||
- `cluster` 中至少能看到:
|
||||
- `overseas-control-01`
|
||||
- 大陆 `mainland-controller-01`
|
||||
- 大陆 `mainland-worker-01`
|
||||
- `sync-summary` 中能看到来自大陆的接收记录
|
||||
- `readiness` 不再是“完全单节点海外态”
|
||||
|
||||
## 6. 后台页面应如何理解
|
||||
|
||||
打开:
|
||||
|
||||
- `http://152.53.37.118/`
|
||||
|
||||
在运行中心里看到下面这些内容时,属于正常:
|
||||
|
||||
- `本机 Worker:当前节点不承载`
|
||||
- `Sync Agent:当前节点不承载`
|
||||
- `当前检测阶段:当前节点不承载`
|
||||
- `代理运行态:不适用`
|
||||
|
||||
这不是故障,而是因为当前节点就是临时海外控制面。
|
||||
|
||||
真正应该关注的是:
|
||||
|
||||
- `集群节点`
|
||||
- `有效执行节点`
|
||||
- `同步状态`
|
||||
- `多机就绪度`
|
||||
|
||||
## 7. 判断“到底有几台 Worker 在工作”
|
||||
|
||||
如果页面上“在线 Worker 数”和“实际正在跑检测的节点数”看起来不一致,以数据库为准。
|
||||
|
||||
在大陆 controller 上执行:
|
||||
|
||||
```bash
|
||||
bash domain-api/deploy/multi-region/check_worker_participation.sh
|
||||
```
|
||||
|
||||
判断规则:
|
||||
|
||||
- `detect_worker_nodes`
|
||||
- 看谁在线
|
||||
- 看谁是 `worker_online=true`
|
||||
- 看谁 `detect_participating=true`
|
||||
- `detect_job_items`
|
||||
- 看任务到底被哪台节点 `claimed_by`
|
||||
- 这才是“当前真正干活的节点”
|
||||
|
||||
## 8. 常见误判
|
||||
|
||||
### 8.1 海外控制面显示“本机 Worker 不承载”
|
||||
|
||||
这是正常,不是故障。
|
||||
|
||||
### 8.2 页面显示“在线 Worker 1”,但你部署了 2 台大陆机器
|
||||
|
||||
先区分:
|
||||
|
||||
- “有效执行节点”是可承担任务的在线节点数
|
||||
- “当前参与检测节点”是当前真的在领任务、跑任务的节点
|
||||
|
||||
如果 controller 没兼跑检测,通常只会看到独立 worker 在真正执行。
|
||||
|
||||
### 8.3 controller 机器也开了 worker 服务,但没有领任务
|
||||
|
||||
这不一定是 bug,可能只是当前调度没有分到它。应以 `detect_job_items.claimed_by` 为准,不要只看服务在线。
|
||||
|
||||
## 9. 联调完成后的回滚
|
||||
|
||||
如果你后续要切回正式海外机器,在大陆 controller 上把目标地址改回正式值即可:
|
||||
|
||||
```bash
|
||||
sed -i 's#^SYNC_TARGET_API_BASE_URL=.*#SYNC_TARGET_API_BASE_URL=http://正式海外控制面IP:8100#' /etc/default/domaincheck-api
|
||||
systemctl restart domaincheck-api
|
||||
systemctl restart domaincheck-sync-agent
|
||||
sleep 3
|
||||
```
|
||||
|
||||
如果临时海外控制面不再使用,可在该机器上保留 `domaincheck-api` 供后续调试,也可以停掉:
|
||||
|
||||
```bash
|
||||
systemctl stop domaincheck-api
|
||||
```
|
||||
|
||||
## 10. 本次临时海外控制面结论
|
||||
|
||||
当前这台测试海外机已经整理为:
|
||||
|
||||
- 纯 `overseas-control`
|
||||
- API 正常
|
||||
- Worker 不承载
|
||||
- Sync Agent 不承载
|
||||
- 数据已清空并按首装态初始化
|
||||
- 可直接作为大陆 controller 的临时同步接收端
|
||||
|
||||
## 11. 配套脚本
|
||||
|
||||
- 临时海外控制面自检:
|
||||
- `domain-api/deploy/multi-region/check_temp_overseas_control.sh`
|
||||
- 大陆 controller -> 临时海外控制面联调检查:
|
||||
- `domain-api/deploy/multi-region/check_temp_link.sh`
|
||||
- 三机拓扑总览检查:
|
||||
- `domain-api/deploy/multi-region/check_temp_topology.sh`
|
||||
- 当前活跃任务由谁真正执行:
|
||||
- `domain-api/deploy/multi-region/check_worker_participation.sh`
|
||||
- 大陆 worker 本机自检:
|
||||
- `domain-api/deploy/multi-region/check_mainland_worker.sh`
|
||||
Reference in New Issue
Block a user