Files
AI-tianyan/DEPLOYMENT.md
master 78427b2e33 docs: add deployment guide for edge agent
- Prerequisites (hardware, software, versions)
- Step-by-step deployment instructions
- Configuration examples
- Troubleshooting table
- OTA update workflow
2026-05-08 17:12:36 +08:00

4.0 KiB
Raw Blame History

AI-tianyan 边缘部署操作指南

前置条件

项目 要求
硬件 Atlas 200I DK2 (Ascend 310B4) 或 Ascend 310B4 设备
OS Ubuntu 22.04 aarch64
Go 1.18+
Python 3.9+
CANN 6.2.RC2 (Ascend Toolkit)
云端 101.36.73.102 (API/MQTT/InfluxDB/OTA/ZLMediaKit)

步骤 1: 拉取代码

git clone http://101.36.73.102:3112/fyah/AI-tianyan.git
cd AI-tianyan

步骤 2: 转换 YOLO 模型 (.onnx → .om)

# 在 CANN 环境设备上执行
source /usr/local/Ascend/ascend-toolkit/set_env.sh

# 执行 ATC 转换
bash scripts/atc_convert.sh

# 或手动转换
atc --model=yolov8n.onnx \
    --framework=5 \
    --output=model/model.om \
    --soc_version=Ascend310B4 \
    --input_format=NCHW \
    --input_shape="images:1,3,640,640"

# 复制模型到指定位置
cp yolov8n.om model/model.om

步骤 3: 编译 Go 边缘代理

# 设置 Go 代理(国内环境)
export GOPROXY=https://goproxy.cn,direct

# 构建
bash scripts/build.sh
# 或使用 make build
# 输出: build/edge-agent

步骤 4: 安装部署

# 一键安装
bash scripts/install.sh
# 或 make install

# 安装脚本会:
# 1. 创建 /opt/tianyan-edge/{bin,python,config,systemd,staging,model}
# 2. 复制 edge-agent 到 /opt/tianyan-edge/bin/
# 3. 复制 infer_server.py 到 /opt/tianyan-edge/python/
# 4. 安装 Python 依赖 (opencv-python-headless, numpy)
# 5. 安装 systemd 服务文件
# 6. 启用并启动服务

步骤 5: 配置 edge.yaml

sudo vi /opt/tianyan-edge/config/edge.yaml

关键配置项:

device_uuid: 8541db9f77826e39605ef2c032f8fb93  # 设备唯一标识
edge_id: edge-demo-001
cloud_url: http://101.36.73.102:8004             # 云端 API
mqtt_broker: tcp://101.36.73.102:1883            # MQTT 消息
rtsp_urls:
  - http://101.36.73.102:8080/rtp/34020000002000000003_34020000001310000001.live.flv
infer_socket: /tmp/edge-infer.sock
infer_fps: 2                                     # 推理帧率
conf_threshold: 0.2                              # 检测阈值
ota_url: http://101.36.73.102:8087               # OTA 更新地址
version: 1.0.0

步骤 6: 启动服务

方式 A: systemd (推荐)

# 启动推理服务
sudo systemctl start edge-infer

# 启动边缘代理
sudo systemctl start edge-agent

# 设置开机自启
sudo systemctl enable edge-infer edge-agent

# 查看状态
sudo systemctl status edge-agent edge-infer
sudo journalctl -u edge-agent -f

方式 B: 手动启动

# 启动推理服务
bash -lc 'source /usr/local/Ascend/ascend-toolkit/set_env.sh && \
  NAMES_FILE=/root/AI-tianyan/model/names.txt \
  CONF_THRESHOLD=0.15 \
  python3 python/infer_server.py' &

# 启动边缘代理
./build/edge-agent -config config/edge.yaml

方式 C: 一键脚本

bash start.sh

步骤 7: 验证运行

# 检查进程
ps aux | grep -E 'edge-agent|infer_server|ffmpeg'

# 检查网络连接
ss -tunp | grep 101.36.73.102

# 检查 NPU 状态
npu-smi info

# 检查日志
sudo journalctl -u edge-agent -n 50
sudo journalctl -u edge-infer -n 50
tail -f logs/agent.log logs/infer.log

步骤 8: 配置 Telegraf 指标上报 (可选)

# Telegraf 已安装 (v1.21.4)
# 配置文件: /etc/telegraf/telegraf.conf
# 已配置上报到 InfluxDB (101.36.73.102:18086)

# 重启 Telegraf 使配置生效
sudo systemctl restart telegraf
sudo systemctl status telegraf

常见问题排查

问题 解决方法
acl.init failed 确认 set_env.sh 已执行,检查 LD_LIBRARY_PATH
model.om not found 重新执行 ATC 转换,确认路径正确
无法连接 MQTT 检查 mqtt_broker 地址和 edge_token
拉流失败 确认 ZLMediaKit 端口 8080 可达
编译失败 GOPROXY=https://goproxy.cn,direct go mod download

更新部署 (OTA)

# 云端推送新版本后edge-agent 自动检测并下载
# 也可手动更新:
git pull
make build
make install
sudo systemctl restart edge-agent edge-infer