主题
安装部署
单文件部署:目标机零 Node、零 Docker、零外部数据库。Docker 形态适合标准化交付的环境。
1. 单文件 + systemd(推荐)
发行包是一个可执行文件,scp 到工控机后以 systemd 常驻:
bash
sudo useradd -r -s /sbin/nologin rulego
sudo mkdir -p /opt/rulego-edge /var/lib/rulego-edge
sudo cp edge /opt/rulego-edge/
sudo chown -R rulego:rulego /opt/rulego-edge /var/lib/rulego-edge
sudo cp rulego-edge.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now rulego-edge验证:
bash
systemctl status rulego-edge
curl -s localhost:9090/readyz # 就绪判定(采集心跳 + 存储可写)
curl -s localhost:9090/metrics # Prometheus 指标systemd 单元已内置看门狗联动:进程卡死时主动退出,由 systemd 拉起;配置损坏自动回退上一份可用配置。
串口与 GPIO 权限(按需):
bash
sudo usermod -aG dialout rulego # RS485 串口2. Docker
bash
docker compose up -d说明:
- host 网络是硬要求:SNMP 网段发现与 Modbus TCP 采集要直达局域网设备,端口映射模式不可用。仅 Linux 原生 Docker 支持
network_mode: host;Docker Desktop(macOS / Windows)下容器跑在 VM 里,接真设备请用 Linux 主机 - 数据持久化:
./data(bbolt 数据库、配置、AI 记忆),备份 / 迁移 = 拷走这个目录 - AI 模型:环境变量
EDGE_AI_LLM_URL / EDGE_AI_LLM_API_KEY / EDGE_AI_LLM_MODEL。不配也能跑:值守、告警、日报照常,AI 研判降级为模板卡 - 无 AI 档(小内存盒子):使用
noai变体 compose 文件 - 演示数据源:
--profile demo额外启动 modbus-sim(1502 端口正弦温度),配合界面「一键上岗(演示)」可看到演示员工与 3 天演示历史
3. 树莓派 / ARM
纯 Go 无 cgo,交叉编译产物直接可用。树莓派 4(1~2GB 内存)与 armv7 小盒子均实测通过;armv7 建议选无 AI 档位发行包。
| 发行档位 | 说明 |
|---|---|
| 默认 | 带界面,采集 + 规则 + 流算 + 告警 + AI 值守 |
| 无界面(headless) | 纯采集转发,省约 8MB,远程配置 |
| 无 AI(no_ai) | 去除智脑,适配小内存设备 |
4. 配置方式
优先级:命令行 flag > 环境变量 > -c 配置文件 > 内置默认。
常用项:
| 环境变量 | 默认 | 说明 |
|---|---|---|
EDGE_SERVER | :9090 | HTTP 监听地址 |
EDGE_DATA_DIR | ./data | 数据目录 |
EDGE_AUTH_TOKEN | 空 | 访问令牌。为空则不鉴权,生产必配 |
EDGE_MQTT_BROKER | 空 | 北向 MQTT broker;为空则只落本地 |
EDGE_MQTT_CA_FILE | 空 | 自签 CA 证书 PEM(内网自签 broker) |
EDGE_MQTT_INSECURE | false | 跳过证书校验(仅限受控内网调试) |
EDGE_POLL_WORKERS | 4×CPU | 采集 worker 池容量 |
EDGE_WATCHDOG_ENABLED | false | 卡死时是否主动退出(交进程管理器拉起) |
-c edge.json 读 JSON 配置文件,键为环境变量名去掉 EDGE_ 前缀(如 {"server":":9090","mqtt_broker":"tcp://..."});已设的环境变量不会被文件覆盖,文件缺失或格式非法直接启动失败——不静默忽略。
5. 升级与回退
- 升级 = 替换二进制重启;数据目录不动
- 配置变更留快照,启动失败自动回退上一份可用配置
- 迁移 / 备份 = 停机后拷贝数据目录