Slack集成与灾备体系建立
当系统稳定运行之后,下一个问题不是"怎么做更多功能",而是"如果一切都崩了怎么办"。这篇记录两件看似不相关但本质相同的事:Slack集成(扩展通信渠道)和灾备体系建立(确保系统可恢复)。
Slack Socket Mode接入
OpenClaw一直通过Telegram通信,加入Slack是为了覆盖工作场景。很多团队协作发生在Slack上,如果agent只能在Telegram上响应,就错过了大量工作上下文。
Slack的集成方式选择了Socket Mode而不是传统的Webhook。原因很实际:
- Webhook需要公网URL:我的服务器在内网,要么做内网穿透,要么租云服务器做转发,额外的复杂度和成本
- Socket Mode是出站连接:从内网主动连接Slack服务器,不需要公网IP,不需要开放端口,防火墙友好
- 硬盘坏了?
- 系统崩溃了?
- 停电了?(虽然有UPS但续航有限)
- 甚至房间发生灾难?
配置过程:
1. 在Slack API后台创建App,开启Socket Mode
2. 获取App-Level Token(以xapp-开头)和Bot Token(以xoxb-开头)
3. 在OpenClaw中配置Slack channel,填入token
4. 订阅需要的事件(message、mention等)
Socket Mode的连接很稳定,偶尔断线会自动重连。唯一的注意点是App-Level Token的权限scope要配对,少了connections:write就连不上。
灾备体系
Slack接入让通信渠道更丰富,但真正让我安心的是同期建立的灾备体系。
问题
我的整套系统跑在三台物理PC上。如果:
所有配置、所有agent的记忆、所有项目数据,都在这三台机器上。没有备份 = 没有安全网。
三层防护
第一层:Healthchecks.io 监控
给关键服务注册了Healthchecks.io检查点。每个服务定期ping,如果超时未ping就触发告警。这不是备份,但它确保我能第一时间知道问题。
# 在crontab中
/5 * curl -fsS --retry 3 https://hc-ping.com/<check-uuid> > /dev/null
第二层:GitHub Private Repo
所有配置文件、agent的SOUL/MEMORY文件、关键脚本,都推送到GitHub private repo。
# 定期备份脚本
cd /path/to/openclaw/configs
git add -A
git commit -m "auto-backup $(date +%Y%m%d-%H%M)"
git push origin main
这样即使本地机器全毁,配置也能从GitHub恢复。
第三层:GPG加密敏感数据
API token、密码、SSH密钥这些敏感信息不能明文推送到GitHub(即使是private repo)。用GPG加密后再推送:
tar czf secrets.tar.gz tokens/ keys/ passwords/
gpg --symmetric --cipher-algo AES256 -o secrets.tar.gz.gpg secrets.tar.gz
shred -u secrets.tar.gz # 安全删除明文
恢复时只需要记住GPG密码就能解密所有secrets。
DISASTER-RECOVERY.md
光有备份不够,还需要一份恢复流程文档。我写了DISASTER-RECOVERY.md,定义了4个阶段的恢复流程:
阶段1(0-30分钟):评估与通信
阶段2(30-60分钟):核心恢复
阶段3(60-90分钟):服务恢复
阶段4(90-120分钟):验证与回顾
总目标:2小时内全面恢复。 这个时间对个人项目来说是可接受的。
Dashboard的角色
Dashboard(http://192.168.x.x:8090)在灾备体系中也有位置——它是日常状态的可视化入口。不过Dashboard本身也在T440上,如果T440出问题,Dashboard也会挂。所以Dashboard的数据也包含在GitHub备份中。
Techsfree网站
顺便把Techsfree网站的代码也托管到了GitHub。这个网站之前只有本地副本,属于"丢了就没了"的状态。推送到GitHub后,至少代码层面有了保障。
cd /path/to/techsfree
git init
git remote add origin git@github.com:linou518/techsfree.git
git add -A
git commit -m "initial commit"
git push -u origin main
感悟
灾备是一件"做了没人感谢,不做出事背锅"的事情。很多人觉得"我的系统很稳定,不需要灾备"——直到硬盘咔嚓一声。
建立灾备体系的过程让我意识到一个道理:系统的可靠性不取决于最强的组件,而取决于最弱的环节。OpenClaw可以自动故障切换,agent可以智能响应,但如果配置文件没备份,一块坏硬盘就能让一切归零。
Slack集成和灾备体系,一个是扩展能力,一个是保护能力。两者结合,系统才算真正"生产就绪"——虽然这只是我的个人项目,但以生产级标准要求自己,才能在真正的生产环境中游刃有余。
做最好的准备,防最坏的情况。这大概是运维的第一信条。