痛点
密钥散落到每台 Mac 则轮换与审计成本陡增;无队列则多节点竞态让读者看不清终态;探针、限流、构建各发一条则告警疲劳。收敛为单出站、幂等与合并运维帖即可。
单网关对照表
| 维度 | 单网关加队列 | 每节点直连 |
|---|---|---|
| 轮换 | 改一处秘密文件 | 滚动多台与流水线 |
| 出站 | 白名单单主机名 | 池内逐台放行 |
| 一致性 | 模板加去重 | 易重复刷屏 |
准备 Zulip bot
管理员在集成里创建入站 Webhook,绑定流与主题,复制 HTTPS 地址(等同长期令牌,勿入库勿贴群)。写入网关如 /etc/openclaw/secrets.d/zulip/build-status.url,0440,见 最小权限。截图位:集成页流、主题、地址区打码导出。
用服务用户探针(可先沙箱主题):
sudo -u openclaw-notify -i
export ZULIP_INCOMING_WEBHOOK_URL='https://你的域/api/v1/external/…'
curl -sS -w "\nhttp_code:%{http_code}\n" -X POST "$ZULIP_INCOMING_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
--data-binary '{"content":"**OpenClaw 探针** — 网关出站正常"}'
字段名须与 Zulip 样例一致。轮换:建新集成换新文件、重载、探针、再吊销旧地址。
网关出站白名单
仅一台网关对 Zulip POST;构建机只写队列。防火墙允许网关网段访问主机 443,对构建网段同主机名拒绝以失败闭合。代理终结 TLS 时对齐信任库,日志不落全量 URL。截图位:策略行写清允许与拒绝两段虚拟网。
dig +short your-org.zulipchat.com
openssl s_client -connect your-org.zulipchat.com:443 -servername your-org.zulipchat.com </dev/null | head -n 5
消息模板
节点上报终态字段:工作流、状态、分支、短提交、运行链接、节点标识、供应方运行号;失败附有界摘录(约五至十五行、无密钥)。网关映射到 Zulip 常用 content,控制体积防 400。超时对齐 限流与会话。
**持续集成** `ios-nightly` → **失败** · `main` @ `a1b2c3d`
**节点** `meshmac-pool-3` · **运行** [#1842](https://ci.example/runs/1842)
**摘录**
\`\`\`
error: no space left on device
\`\`\`
截图位:网页端流、主题与折叠代码块。
失败重试与幂等键
合并健康探针告警
探针、队列深度、投递成功率勿各刷一条;越阈时发一条运维帖,前缀如运维标签,路由事故流,冷却约五至十五分钟。切换演练见 故障转移,防双网关双写。
TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
BODY=$(printf '%s' "{\"content\":\"**[运维探针]** ${TS}\"}")
/usr/bin/curl -fsS -m 15 -X POST "$ZULIP_INCOMING_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
--data-binary "$BODY" \
|| logger -t openclaw-zulip-probe "probe_failed"
可引用基线:摘录约三百汉字内附链接;重试五次封顶;验收含探测成功、仅终态入队、白名单仅网关、轮换含吊销、合并冷却不刷屏。
公开页
加节点不加密钥副本
免登录对比套餐与节点,帮助里看远程登录,专栏收齐多通道 HowTo。