safesight-control/docs/debug-third-party-api.md

123 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 客户现场调试指南 — 第三方接口联调
## 接口清单
| 接口 | 地址 |
|------|------|
| Token | `POST http://180.51.12.2/api/appsys/sso/httpheader/login/v1?username_=szls` |
| 告警推送 | `POST http://180.51.12.2/api/edge/edgecallmanages/vi-alarm/v1` |
| MinIO | `http://180.51.12.2:9000` |
---
## 第一步:确认三个接口可达
在能访问 `180.51.12.2` 的机器上执行。
### 1. Token 接口
```bash
curl -s -X POST \
"http://180.51.12.2/api/appsys/sso/httpheader/login/v1?username_=szls"
```
预期返回 JSON`responseBody.token` 有值。
### 2. 告警推送接口
把上一步拿到的 token 替换 `TOKEN_VALUE`
```bash
curl -s -X POST \
"http://180.51.12.2/api/edge/edgecallmanages/vi-alarm/v1" \
-H "Content-Type: application/json" \
-H "X-Access-Token: TOKEN_VALUE" \
-d '{"tenantCode":"32","channelNo":"test","alarmContent":"test","alarmTime":"2026-01-01 00:00:00","picInfo":[],"videoInfo":[]}'
```
预期返回 200。
### 3. MinIO 存储
```bash
curl -s "http://180.51.12.2:9000"
```
预期返回 MinIO XML 响应。
---
## 第二步:查看 Edge-Server 日志
在 Edge 设备上执行。
### 查看启动时加载的第三方地址
```bash
journalctl -u safesight-edge-server --no-pager \
| grep -E "ExternalApiAction initialized|HttpAction initialized"
```
预期看到 `token_url=http://180.51.12.2/...``msg_url=http://180.51.12.2/...`
如果 IP 不是 `180.51.12.2`,说明管理端下发的配置未更新。
### 实时跟踪告警和接口调用
```bash
journalctl -u safesight-edge-server -f \
| grep -E "alarm.*trigger|ExternalApi|token|send ok|send failed"
```
---
## 第三步:触发告警,观察完整链路
找人走到摄像头前触发告警,观察日志。
正常流程:
```
[alarm] trigger event_id=xxx rule=unknown_face
[ExternalApiAction] token fetched successfully
[ExternalApiAction] send ok http=200 event_id=xxx
```
异常对照:
| 日志 | 对策 |
|------|------|
| 没有 `[alarm] trigger` | 检查阈值、摄像头、RTSP |
| 无 `token fetched successfully` | 回到第一步验证 token 接口 |
| `send failed http=401` | token 过期,检查 SSO 账号 |
| `send failed http=500` | 第三方内部错误,找客户排查 |
| 日志里完全没有 `ExternalApiAction` | 管理端集成服务未启用 external_api |
| `minio upload failed` | 检查 MinIO 凭据和 bucket |
| `curl_easy_perform` 错误 | Edge 到 180.51.12.2 网络不通 |
---
## 第四步:验证 Agent 本地告警
```bash
journalctl -u safesight-edge-agent --no-pager -n 200 \
| grep -i "alarm\|report"
```
---
## 快速诊断
```bash
journalctl -u safesight-edge-server --no-pager -n 500 \
| grep -E "ExternalApi|HttpAction|alarm.*trigger|token|send ok|send failed"
```
---
## 管理端配置检查
1. 登录管理端 → 资产管理 → 第三方服务
2. 确认告警服务和对象存储地址为 `180.51.12.2`
3. 如有修改,保存后重新下发设备配置