前阵子我把一台机房闲置的2U服务器翻出来,装好了KeyarchOS,然后花了两天时间把OpenClaw部署上去,让它正式上岗当数据中心的“AI管家”。这个消息在运维群里发出去之后,不少朋友都在问:OpenClaw到底是什么?和普通脚本监控有什么区别?为什么要把底座选在KeyarchOS上?今天就把这次从选型到上线的完整过程拆开讲讲,包括我看重的设计思路、实际部署步骤,以及那些官方文档里根本不写的坑。
先说结论:如果你手头有一台还过得去的服务器,不想每天半夜被告警电话吵醒,又希望把巡检、日志初筛、告警分级这些重复人工活交出去,那OpenClaw这类开源agent框架非常适合你。它的核心价值不是“聊天”,而是让大模型真正接管一部分运维执行链路。这篇文章会以KeyarchOS为系统底座,配合本地模型部署OpenClaw,把它打造成一个能7x24小时值守的AI助理,覆盖定时巡检、告警响应、日志分析、自动通知等场景。
1. 在动手之前,先想清楚“AI管家”到底管什么
1.1 数据中心的7x24小时困局
先说说我为什么需要这么个东西。做数据中心运维的朋友应该都有同感:监控告警是不分白天黑夜的,但人是需要睡觉的。凌晨两三点磁盘写满、某个服务挂掉、内网拨测失败,这些事不会挑时间。以前的处理流程是——监控平台发短信、打电话,值班同事迷迷糊糊爬起来,先看告警短信,再登录跳板机,看一眼服务器状态,然后判断到底要不要叫醒其他人。运气好十分钟能定位,运气不好折腾到天亮。
这不是个例。巡检也一样,每天固定时间看CPU、内存、磁盘、服务状态,看来看去都是那几张图,但不看又不行。日志分析更磨人,应用报错、登录失败、端口异常,都得翻日志慢慢比对。这些事情有一个共同点:重复、耗时、规则相对固定,但偶尔又会出现需要一点“判断力”的变种情况。纯靠脚本硬编码,维护成本高得吓人;纯靠人肉盯,又扛不住7x24这个前提。
所以当我看到OpenClaw这类agent框架时,第一反应就是:这玩意儿能替我把这些活接过去。它不只是一个“会聊天的AI”,而是一个能调用工具、执行命令、读取文件、对接API的智能体。给它一个任务目标,它能自己规划步骤,调用合适的工具,把活干完,再给你一份结论。这恰好就是数据中心值班助理该有的样子。
1.2 OpenClaw为什么适合当“管家”
OpenClaw本质上是一个开源的AI助理框架,核心特点是让大语言模型具备工具调用能力。你可以把它理解成给大模型装上了手和脚:它不再只是坐在那里陪聊,而是能真的去碰你的服务器、读你的日志、执行你的脚本、调你的监控接口。配合本地部署的大模型之后,整个链路可以完全跑在内网,敏感数据不出机房,这对数据中心这种场景来说太重要了。
市面上类似的工具其实不少,WorkBuddy、ClawdBot、Dify这些我也都看过。我的实际感受是,OpenClaw最打动我的地方有三点。第一,它足够轻,部署方式灵活,单机跑一个服务就能上手,不一定要搭一整套平台;第二,它的会话文件机制很清晰,和我的定时巡检、日志分析这些场景贴合得特别好;第三,它支持对接各种外部工具和平台,比如Teams、Obsidian、常见的监控系统Webhook,扩展成本很低。相比之下,有些工具更偏“知识库问答”,有些更像“低代码工作流”,和真正的agent式执行还是有点区别。
你可能会问:这些东西用脚本写不一样吗?定时脚本也能巡检、也能发告警啊。对,但脚本最大的问题在于“不能理解”。磁盘占用率85%和95%,脚本只会按阈值分别触发,但一个负责任的助理会去看是什么进程在涨、有没有临时文件可以清、最近有没有部署变更。OpenClaw这类agent的价值,正好体现在这种需要一点“临场判断”的地方。它做得不一定每次都完美,但能把80%的常见情况消化掉,把真正值得人工介入的20%交给你。
1.3 底座选KeyarchOS的逻辑
说完Agent,再说说为什么底座选了KeyarchOS。数据中心里的系统选型,和家里装个Ubuntu玩完全是两个逻辑。在机房环境里,稳定性是第一位的,其次是生命周期和兼容性。以前机房有很大一部分服务器跑的是CentOS 7,老话说“稳定压倒一切”,CentOS 7也确实陪着我们扛了很多年。但老系统终归有淘汰的一天,新项目必须要考虑新的服务器操作系统底座。
KeyarchOS是我综合考虑之后的方案。它是面向数据中心场景打造的企业级Linux发行版,内核和用户态软件都针对服务器环境做了大量调优和验证,对主流x86架构服务器硬件的兼容性做得不错。最关键的一点是它对迁移场景支持比较友好,有配套的迁移工具,可以从旧系统平滑过渡,不用从头手工折腾应用环境。对运维人员来说,这种“换底座不伤筋动骨”的体验非常重要。
另外从实际部署感受来说,KeyarchOS的软件源、包管理习惯都沿用了主流Linux的生态习惯,各种运维工具、监控组件、Python/Node.js运行时在上面装起来都顺畅,不需要额外再去适配。做agent部署最怕的就是系统环境特殊、依赖装不上,KeyarchOS没有给我添这个乱。
2. 硬件与系统准备:把地基打牢
2.1 对硬件和系统的最低要求
先给你一个参考配置,这是我自己测试时的底线配置。我最早是在一台4核8G的虚拟机里试跑的,后来才迁移到独立的2U物理机上。OpenClaw本身不算吃资源,真正的资源大头在本地大模型推理上。如果你打算用云端API,那配置可以很低;但只要你想让模型完全跑在内网,8G内存就只是起步,16G甚至32G才比较舒服。
| 项目 | 最低配置 | 推荐配置 | 说明 |
|---|---|---|---|
| CPU | 4核 | 8核及以上 | 模型推理和Agent执行并行时更稳 |
| 内存 | 8GB | 16GB以上 | 8B左右量化模型约需6-8GB,加上系统余量 |
| 系统盘 | 40GB | 120GB SSD | 系统、依赖、日志分开 |
| 数据盘 | / | 500GB HDD/SSD | 存放会话记录、日志缓存、模型文件 |
| 网络 | 千兆内网 | 千兆内网 | 模型下载、监控数据拉取都走内网 |
我强烈建议系统盘和数据盘分开挂载。系统盘只放KeyarchOS和基础软件,数据盘放OpenClaw的会话文件、日志、模型缓存。这样一方面避免日志把系统盘写满,另一方面后续迁移、备份都方便。你不想某天半夜因为一个日志文件把系统盘撑爆,导致整个Agent服务直接挂掉吧。
2.2 KeyarchOS安装的几个细节
KeyarchOS安装过程和大多数Linux发行版差不多,用ISO引导,按步骤选时区、分区、设置root密码就行。这里有几个我自己踩出来的细节,值得你注意。第一,分区的时候建议LVM。别嫌麻烦,LVM的好处是后面扩容不用重新分区,agent跑起来日志和会话文件只会越来越多,软链到单独的数据盘后,LVM依然可以帮你灵活调整大小。第二,安装时勾上“开发工具”组件,后面编译安装Node.js模块或者Python依赖会省很多事。第三,swap一定要给。尤其跑本地大模型,内存偶尔吃紧的时候,swap就是最后一根救命稻草。我一开始没给swap,结果模型加载到一半就OOM,后来老实加了16G swap。
装完系统后的第一件事,把软件源配置好,然后做一次dnf update。键型OS的源在安装时一般会给,但还是确认一下。另外建议把firewalld和selinux先保持默认开启,等OpenClaw整个跑通了再决定要不要对具体端口做放行。数据中心环境安全无小事,别图省事一上来就setenforce 0。后面我会单独说安全加固的事。
还有一个容易被忽略的点:时间和时区。数据中心服务器一般都有NTP同步,但要确保装完系统后时区设置正确,并且NTP服务已经启用。AI管家要按点巡检、打日志时间戳,如果系统时间和真实时间差了十几分钟,后面排查问题会非常痛苦。
2.3 安装OpenClaw需要的运行时
OpenClaw的部署方式比较灵活,我这次用的是基于Node.js的安装方式,所以先要把Node.js环境搞定。KeyarchOS的默认源里带的Node.js版本可能不是最新的,我建议直接装Node.js 20 LTS版本。可以用nvm管理,也可以从NodeSource的源安装,看个人习惯。我直接用nvm装到指定用户目录下,好处是不影响系统全局环境,后续升级版本也干净。
除此之外还会有一些依赖工具,比如git、make、gcc,因为个别npm包需要编译原生模块。如果不想折腾这些,OpenClaw也有Docker部署方式,一条命令就能跑起来。我理解很多人喜欢Docker,隔离性好、不污染宿主机。但我在数据中心场景里更倾向于用systemd托管裸进程,后面会详细说原因。
需要的Python环境也可以顺带装上,因为后面做一些日志分析的辅助脚本会用到。KeyarchOS预装的Python 3版本够用,如果有特殊依赖,建议用venv虚拟环境,别直接往系统Python里塞包。
2.4 创建专用服务账户与目录规划
这里是我个人非常坚持的一点:OpenClaw这个Agent进程,绝对不要用root账户跑。倒不是说不信任这个工具,而是作为运维人员,你给Agent的权限边界,就应该等于它执行操作的能力边界。如果它直接用root跑,一旦prompt被恶意构造或者工具调用出了偏差,影响面是不可控的。
所以我先在系统里创建了一个专用账户:
useradd -r -s /sbin/nologin -d /home/openclaw openclaw mkdir -p /opt/openclaw mkdir -p /var/lib/openclaw mkdir -p /var/log/openclaw chown -R openclaw:openclaw /opt/openclaw /var/lib/openclaw /var/log/openclaw按我的习惯,程序主体放/opt/openclaw,会话数据和状态放/var/lib/openclaw,日志统一走/var/log/openclaw。这套布局完全照着Linux FHS的标准习惯来,好处是目录职责清晰,备份的时候只需要挑/var/lib/openclaw这一个目录,排查问题时日志集中,不会满服务器乱找。后期如果想做logrotate轮转,配置起来也顺手。
数据目录规划好后,我把数据盘挂载到/var/lib/openclaw对应的存储路径下,并用/etc/fstab设置了开机自动挂载。这里特别提醒一下挂载参数,我给数据盘加了noatime选项,减少不必要的磁盘写操作,对SSD寿命和性能都有好处。
3. OpenClaw部署实操:从安装到跑起来
3.1 安装方式怎么选
OpenClaw的安装方式,我实际体验下来主要有两条路:Docker容器方式和npm直接安装方式。两种我都试过,最后生产环境选的是npm直接安装+systemd托管,原因有几个。
Docker方式确实方便,docker run一条命令拉起来就能用,环境隔离也做得好。但在数据中心长时间运行时,Docker会引入镜像更新、容器日志管理、网络模式配置这些额外维护项。而且当它需要调用宿主机上的监控脚本、访问特定目录时,还得考虑挂载和权限映射,反而多绕了一层。
npm安装的方式更直接。先在/opt/openclaw下初始化项目,然后通过npm把OpenClaw的包装进去。装好之后,命令行里会多出一个openclaw命令,可以用来启动交互会话、跑一次性任务、查看当前agent状态。初次启动会生成一个配置文件目录,不同版本的默认路径略有差异,但一般都在用户主目录下,或者.openclaw文件夹里。
安装命令大致是这样的流程:
cd /opt/openclaw npm init -y npm install openclaw # 看一下CLI是否可用 npx openclaw --version装完后记得用openclaw init生成初始配置。这个初始化步骤会问你打算用哪个模型服务商、模型名称是什么、API地址在哪里。输入完之后,配置文件就自动生成好了。我用的模型是本地Ollama,所以填的是http://127.0.0.1:11434这种内网地址。
不同版本之间的命令行入口和配置字段可能有点差异,这个以你拿到的官方文档为准。如果跑的时候提示命令不存在,先看看node_modules/.bin下有没有对应的可执行文件。常见的问题多半是Node.js版本过低或者npm没装全。
3.2 本地模型接入方案
OpenClaw本身不提供模型能力,它需要接一个大语言模型作为“大脑”。这里有两个选择:接云端API,或者接本地部署的模型。
我做数据中心这个场景时,首选是本地模型。原因很简单:机房数据敏感,日志里可能带着客户信息、内网IP、甚至是业务账号痕迹,我不希望这些内容出内网。本地部署模型之后,OpenClaw和模型之间走的是内网HTTP请求,流量完全可控。我选的是Ollama这个本地推理框架来跑模型,部署起来简单,模型管理也直观。
部署Ollama本身不复杂,官网给了一键脚本,装完后通过ollama pull拉取模型即可。模型选择上,我试过几款开源模型,最终选了一个8B级别的量化版本。不是说越大越好,8B在单机16G内存条件下,推理速度和效果达到了一个比较平衡的状态,响应够快,日常指令理解、日志总结、巡检判断这些任务都够用。
配置OpenClaw时几个关键项这样填就行:
model_provider: ollama base_url: http://127.0.0.1:11434 model: "你的模型名称" api_key: "ollama"内网访问就不需要什么鉴权,api_key填个占位符就行。但如果你要跨机器访问Ollama,建议加一层简单的访问控制,别让任何内网主机都能往模型服务提交请求。毕竟推理服务也会吃CPU内存,被扫到了容易变成内网性能炸弹。
这里再强调一次,如果项目允许数据出域,用云端API当然更省事、效果也更好。但“效果更好”和“适合你的场景”是两码事。数据中心AI管家的核心是可靠和可控,本地模型就算能力弱一点,它也绝对不会把你的日志“带出去”。这层安心感是用什么都换不来的。
3.3 定义AI管家的“岗位说明书”
OpenClaw部署好之后,最重要的一步不是写代码,而是给Agent写一份“岗位说明书”。你可以把它理解成系统提示词,但这个提示词的质量直接决定了后续所有任务的执行效果。
我的做法很简单,用自然语言说清楚三件事:你是谁、你要干什么、你绝对不能干什么。下面是我实际用的初始提示词,你可以直接参考:
你是数据中心运维助理,负责7x24小时的日常巡检、日志分析和告警处置。 每次巡检请依次检查系统负载、内存、磁盘空间、关键服务状态和网络连通性。 发现异常时,先说明影响范围,再给出处置建议,必要时可以执行已授权的修复操作。 所有写操作,包括删除文件、重启服务、修改配置,执行前必须征得管理员确认。 所有回答请使用中文,并附上你得出结论所依据的命令或日志来源。这份“岗位说明书”里最核心的是最后一条:所有写操作必须二次确认。AI判断确实比脚本灵活,但灵活也意味着偶尔会“过度发挥”。有一次我测试的时候,让它帮我“清理临时文件”,它直接把自己会话目录里的历史记录给清了一部分。从那以后,我就把“写操作必须确认”写进了所有Agent的提示词里。
工具的开放边界也要提前想好。我给了Agent只读命令的自动执行权限,比如df、free、top -b -n1、ps aux、tail这类;写操作只开放了少数几个特定脚本,并且每个脚本都做了参数白名单。这个思路和给员工发门禁卡类似:默认什么门都不开,按需授权,而不是全都开着再靠自觉。
3.4 用systemd托管成开机自启服务
OpenClaw跑起来之后,接下来要做的是保证它“一直活着”。数据中心AI管家要是服务进程半夜自己挂了,那比没人值守还尴尬。所以我用systemd写了一个服务单元,把它托管起来,实现开机自启、崩溃自动拉起。
下面是我实际的unit文件,位置在/etc/systemd/system/openclaw.service:
[Unit] Description=OpenClaw AI Agent Service After=network-online.target ollama.service Wants=network-online.target [Service] User=openclaw Group=openclaw Environment="HOME=/home/openclaw" Environment="PATH=/usr/local/bin:/usr/bin:/bin:/opt/node/bin" WorkingDirectory=/opt/openclaw ExecStart=/usr/local/bin/openclaw serve Restart=on-failure RestartSec=15 TimeoutStartSec=120 LimitNOFILE=65535 [Install] WantedBy=multi-user.target最关键的参数是Restart=on-failure配合RestartSec=15。这意味着进程非正常退出后15秒会自动再拉起,不用人干预。LimitNOFILE=65535是给进程打开文件数上限,agent跑久了,会话文件、日志文件句柄数会上来,默认1024不够用。
写完unit文件后,执行:
systemctl daemon-reload systemctl enable openclaw.service systemctl start openclaw.service systemctl status openclaw.service然后确认一下日志输出:
journalctl -u openclaw.service -f以后所有排查都走journalctl,不用再翻文件。如果你发现启动时OpenClaw一直在等什么,多半是环境变量没配好,比如HOME路径不对、PATH里没有Node的bin目录。systemd环境比手动shell严格很多,很多在终端里能跑的命令,放到systemd里就报command not found,其实就是PATH少了东西。
4. 把“管家”变成生产力:7x24场景实战
4.1 定时巡检与日报自动生成
Agent跑起来之后,先让它干的第一件正经事,就是每日定时巡检。OpenClaw的定时任务可以自己配置,也可以用cron在外面调。我用的是cron在外面调,理由很简单:运维环境里cron的可靠性已经验证了很多年,而且日志在系统日志里,排查方便。
我在/etc/cron.d/openclaw-daily里放了两条任务:
0 8 * * * openclaw /usr/local/bin/openclaw "请执行今日巡检并生成日报,发送到值班群" >> /var/log/openclaw/cron-daily.log 2>&1 0 20 * * * openclaw /usr/local/bin/openclaw "请执行晚间巡检,重点检查磁盘增长和异常登录记录" >> /var/log/openclaw/cron-night.log 2>&1为了让巡检任务更稳定,我还给它准备了一个巡检脚本目录,里面放了几个针对性的检查脚本,比如磁盘预测、关键端口探测、服务健康检查。OpenClaw执行巡检时,会先调用这些脚本拿到数据,再结合模型做上下文判断,最后生成日报。
这份日报我让它统一输出成Markdown格式,然后通过后面的通知渠道发到值班群。内容包括:今日CPU峰值、磁盘增长Top3、异常日志摘要、需要关注的风险项。实测下来,每天到点群里就会收到一份结构清晰的日报,比翻监控大屏看半天高效多了。
4.2 告警接入与自动处置
光有定时巡检还不够,告警必须实时响应。数据中心现有的监控平台一般都有Webhook能力,我用的机房监控是Zabbix,就在Zabbix的告警动作里加了一条规则,把告警内容POST到OpenClaw本地的一个Webhook接收地址。
OpenClaw收到告警后,会根据告警类型做不同处理。比如磁盘空间告警,它会先看这个盘的当前占用率,再查最近3小时的大文件增长情况,如果有可安全清理的临时文件,而且清理脚本在白名单里,它就会自动触发清理,并回写一条处理记录。如果是服务异常告警,它会先做健康检查,确认服务真的挂了,再按预案执行重启,重启后等待一段时间再看服务是否恢复。
我这里要特别提醒你:自动处置一定要有“熔断机制”。OpenClaw调用处置脚本时,脚本本身要做状态判断。比如重启服务这个操作,如果24小时内同一个服务已经重启超过3次,就直接放弃自动处理,升级成人工工单。这个保护逻辑是写在脚本里的,Agent本身不知道你设了这个阈值,但它再聪明,也没有状态机的记忆力,这种确定性的事还得交付给代码来做。
4.3 日志分析里的“第二双眼”
日志分析是我觉得最有惊喜感的部分。以前排查一个应用卡顿,得先登录服务器,翻应用日志、系统日志、可能的数据库慢查询日志,来回比对。现在我把这些日志的读取权限都交给了OpenClaw,它可以直接用tail、grep、journalctl这些工具去拉日志片段,然后自己整理因果关系。
有个实际案例。某天业务系统偶发响应慢,传统排查方式需要抓时间点,运气不好要盯一天。我把问题描述给OpenClaw,它先看了系统负载,发现CPU不高、内存正常,于是转去看应用日志,发现大量连接池获取超时,进一步检查数据库连接数,发现连接泄漏。整个过程它自己做了好几层跳转,最后给出一份分析报告,时间线理得清清楚楚。
这类“多步推理”就是Agent相比普通脚本的最大优势。脚本是按写死的逻辑走的,一步对不上基本就废了;但Agent能根据中间结果动态调整下一步操作,像值班老手一样随机应变。
当然,AI的分析不是每次都对,特别是遇到冷门故障时,它给的结论可能沾边但不精准。所以我定的规矩是:Agent的日志分析结论只作为“第一判断”,重要故障必须以它给出的证据链为准做二次确认。它的价值在于把排查范围从几十台服务器缩小到一两台,把几小时的日志检索缩短到几分钟,这已经足够赚回部署成本了。
4.4 多平台通知与远程协作
AI管家干得再好,最后都得“汇报”。OpenClaw本身支持对接多种协作平台,我实际接入了Teams和飞书。配置方式都差不离,在对应平台建一个自定义机器人,拿到Webhook地址,然后填进OpenClaw的通知配置里。
Webhook的推送逻辑很简单,就是构造一个JSON请求,把消息发到群聊。我让OpenClaw把所有告警通知、日报结论、异常提示都通过Webhook推送到值班群。这样做的好处是,值班同事可以不登录服务器,在手机上就能随时了解机房状态。遇到需要远程指挥的场景,直接在群里给Agent下一句话的任务,它自己就会去执行。
这里有个小技巧,通知消息里加一个“置信度”字段很有用。OpenClaw在输出告警判断时,我会要求它自己评估这个结论有多确定。如果置信度不高,通知里会标注“建议人工复核”,值班同事看一眼就知道哪些要处理、哪些仅供参考。这个字段在模型不确定的时候能帮你过滤掉大量无效关注。
5. 运行半年后我踩过的坑
5.1 session file locked报错排查
这个坑必须是第一个写。我的OpenClaw跑了两周左右,有天早上发现服务没响应,打开日志一看,满屏都是类似agent failed before reply: session file locked (timeout 60000ms)的报错。中文意思就是“Agent无法回复,会话文件被锁,等待超时60秒”。
这个报错我排查了挺久。一开始以为是磁盘满了,查了一下不是。后来才发现,问题是系统里同时跑起了两个OpenClaw实例。我自己的systemd服务还活着,但因为之前测试时手动在前台也起过一个实例,两个进程同时操作同一个会话文件,系统就用文件锁把后面的操作卡住了,直到超时。
解决的办法是彻底清理进程,保证只有一个实例在运行:
ps aux | grep openclaw # 找到多余的进程 kill -9 PID # 检查锁文件,必要时清理 find /var/lib/openclaw -name "*.lock" -exec rm -f {} \; systemctl restart openclaw.service之后我调低了systemd服务里的TimeoutStartSec,并且给OpenClaw的运行目录加了一个flock保护,确保即使有人再手动启动,也会因为拿不到锁而退出。这个教训总结成一句话:AI管家这种服务,一定要保证单实例运行,多个实例同时碰会话文件,轻则卡死,重则把会话历史写坏。
5.2 Agent长时间运行的内存增长问题
第二个坑是内存。OpenClaw跑了一个月后,我注意到RSS内存占用慢慢攀升,从启动时的几百MB涨到了2GB多。原因有两块:一是会话历史不断增加,长对话上下文全部保留在内存里;二是Node.js进程本身的堆内存没有及时释放。
我的处理方案有几条。第一,在OpenClaw配置里开启了会话历史自动归档,超过一定天数的对话会从活跃会话移到归档文件,不再常驻内存。第二,给Node.js设置内存上限,在systemd的环境变量里加上NODE_OPTIONS="--max-old-space-size=4096",让它到阈值就主动GC。第三,每天凌晨定时重启一次服务,趁无人使用的时候把进程内存清理干净。
一开始我觉得每天重启一次是不是太频繁了,但实际跑下来发现,凌晨4点重启对业务毫无影响,反而让系统长期保持清爽状态。如果不想重启,也可以定期用命令清理会话缓存,但对我来说,计划内重启是最省心的兜底方案。
5.3 本地模型与Agent的配合问题
OpenClaw和Ollama配合的时候,常见的坑也有不少。最典型的是并发问题。Agent一次任务里可能连续调用好多次模型推理,Ollama默认只能串行处理,一个请求没结束,下一个请求就会排队。遇到复杂任务时,排队时间叠加起来,Agent就像陷入“思考瘫痪”一样,半天不回复。
这个问题的排查思路是看Ollama的日志,确认请求是否在排队。解决办法有两个方向:一是增大Ollama的并发处理数,但前提是CPU和内存扛得住;二是让OpenClaw减少工具调用的次数,把多步骤操作整合成一次模型请求。我实际采用了后者,把一些固定流程比如巡检写成脚本,让模型调用脚本而不是让它一步一步自己敲命令,效果立竿见影。
还有一次遇到模型推理特别慢,排查了半天发现是模型被加载成了CPU跑,而且Ollama默认占用了所有CPU核心,把系统卡到假死。后来我限制了Ollama的CPU核心数,给它只分配了4个核心,系统其他服务才恢复正常。数据中心里跑推理,一定要学会给模型“上锁”,设置它最多能占用多少资源,不能让它吃掉整台机器。
5.4 安全加固与备份清单
最后说说安全。AI管家挂着系统权限跑,安全上要比普通服务更上心。我按下面这个清单做了加固,给你参考。
| 检查项 | 我采取的措施 |
|---|---|
| 运行用户 | 使用专用账户openclaw,禁止root运行 |
| 网络暴露 | 只在本地回环地址监听Webhook,不直接暴露到机房网段 |
| 防火墙 | firewalld仅放行SSH和必要的Webhook入口,其余默认拒绝 |
| API密钥 | OpenClaw调用接口的密钥用环境变量注入,不写进配置文件 |
| 配置文件权限 | 配置目录设为仅属主可读写,chmod 700 |
| 数据备份 | 每天定时备份/var/lib/openclaw到独立备份存储,保留7天 |
要特别强调的是,不要因为嫌麻烦就把Agent服务直接暴露出内网。Webhook入口放在回环地址上,有需要时通过Nginx反向代理对外暴露,并且加一层简单的Token校验。这些都不是复杂操作,但每一层都能挡住至少一类“顺手牵羊”的风险。
备份这事更不能省。OpenClaw的会话文件里保存着它处理过的告警记录和巡检历史,这些是很有价值的运行资产。我每天凌晨跑一个rsync,把整个数据目录同步到备份盘上,轮转保留7天。出问题时可以快速回滚到任意一天的状态,避免了“AI管家失忆”这种尴尬局面。
最后再分享一个我实际运行中的体会。养这个“AI管家”大半年,最明显的变化不是省了多少人力,而是人终于可以把精力放到真正需要判断的事情上了。巡检有人管、告警有人接、日志有人看,剩下的时间我能腾出来做容量规划、做架构调优,而不是整天盯着监控屏刷新。如果你也想在数据中心里尝试类似的方案,我的建议很简单:先把权限边界卡死,再让AI干最简单的巡检,跑顺了再逐步放权。毕竟,AI管家这个岗位,招进来容易,但“管教”好了才能真的省心。