Docs
使用面板

AI 值守

让 AI 自己排查故障和问题,在你的服务器上执行诊断并实施你允许的修复;每一步都有记录,每个有风险的步骤都留给你决定。

值守员是一个自己排查问题的 AI:它查看监控数据,在服务器上执行诊断,在知道原因并且你允许时实施修复,然后检查结果并写出结论。每一步都有记录。

值守默认关闭。需要先设置好 AI 分析。

开启

打开 AI 分析 → 值守,开启 值守(或者使用 AI 分析 → 总览 上的开关)。

选择 AI 操作权限。默认的 只允许诊断 让它排查问题,但把每个修复都留给你。

如果希望它执行你批准的修复,注册一把通行密钥,并让你的服务器信任它。

沙盒诊断和批准后执行的修复需要服务器上的被控为 1.1.0 或更新的版本。被控会自动更新到主控的版本;AI 分析 → 值守 会列出 AI 能做的事受限的服务器。

什么时候启动

触发时机
故障确认了服务器或监控项的故障
巡检默认每 60 分钟一次(AI 分析 → 设置 → 巡检间隔)。先由程序检查,只有发现值得一看的情况时才唤醒 AI,所以平安无事的巡检不花任何费用。
漏洞出现紧急漏洞。值守员检查这个软件是否在运行、能不能从外面访问,准备好升级命令,再决定要不要发邮件给你。
你的任务你交给它一个任务
批准后检查你批准的操作已经执行,AI 检查结果

交给它一个任务

在 AI 分析 → 总览 或 AI 分析 → 值守 的输入框里描述任务,例如“查一下商城为什么晚上很慢”,选择 全部服务器 或某一台服务器,然后点 开始(或者按 Ctrl / ⌘ + Enter;按 Enter 是换行)。页面自动刷新时,你正在输入的内容会保留。

任务可以比自动排查运行得更久:最多 60 次检查、30 分钟。

任务的结果显示在面板里,不会发邮件。AI 做完以后,你可以接着对话。

风险排查:像“检查这台服务器有哪些风险”这样的任务会覆盖补丁、暴露的端口、SSH、登录失败、账号和 sudo、计划任务、进程和连接、Web 服务器、证书以及系统加固。最后给出一份风险排查结论:按严重程度列出每个发现,附上证据、修复方法以及由谁来做(AI 已完成、在面板里批准,或者由你亲自执行)。

它能在服务器上做什么

AI 想执行的每样东西都要经过主控检查,发送之前再检查一次,到了服务器上还要由 root 助手再检查一次。各个级别从最安全到最危险:

级别例子处理方式
只读固定的检查(服务状态和日志、失败的服务、系统错误、内核消息、磁盘空间、目录大小、大文件、内存、进程、监听端口、连接、Web 服务器配置测试、某个日志文件、可用更新、打开一个 URL、测试端口、SSH 设置、登录失败、防火墙规则、账号和 sudo、计划任务、证书、AppArmor / SELinux、内核安全设置、自动更新、容器和端口、打开的连接、DNS 查询、ping),以及 ls、cat、grep -r、tail、ps、ss、journalctl 或 systemctl status 这类单纯的只读命令立即执行。读取文件内容的命令以普通用户身份运行,所以只有 root 能读的文件看不到。
沙盒其他任何诊断:管道、循环、awk、sort、find … -exec grep、诊断脚本审查员同意后在沙盒里执行。审查员拿不准时,等你决定。
低风险启动、重启或重新加载普通服务;清理旧的 journal 日志或软件包缓存;轮转日志;清空巨大的日志文件审查员同意后执行,或者等你批准,取决于这项设置。同一个服务每小时最多重启 3 次,自动修复每天最多 20 次。每台服务器自己也有限制:同一个修复每小时 3 次,24 小时内最多 20 次(它的 agent.conf 里的 ai_auto_per_day)。
需要批准升级单个软件包、停止或禁用普通服务、结束进程总是等你点 批准执行,并用通行密钥签名。之后被控在一小时内执行且只执行一次完全相同的操作。
高风险重启服务器、安装全部更新、修改配置、任何涉及 SSH、网络、防火墙、VPN、Docker 或 3R Monitor 自身的操作、其他任何会改变系统的命令系统永远不会执行。它会列出来由你亲自执行,并附上 AI 的理由和审查员的意见。
恶意rm -rf、mkfs、用 dd 写入磁盘、curl … | sh、fork 炸弹、反弹 shell、读取或搜索密码和密钥、清空防火墙、停止 SSH 或监控无论怎么写(加 sudo、写完整路径、加引号、拆分参数)都会被拒绝:永远不会执行,连建议都不会给。任何批准都改变不了这一点。

升级软件包 升级的是真正安装的那些包:漏洞列出的是源码包(例如 perl 或 brotli),而服务器上装的是 perl-base 或 libbrotli1。升级前会先刷新软件包列表;什么都没改变的升级算作失败;升级后马上重新读取软件清单,所以修复了的漏洞几秒内就会消失。

沙盒

沙盒 级别的诊断:

  • 以临时的普通用户运行,文件系统只读,没有任何特权;
  • 最长运行 120 秒,内存最多 256 MB;
  • 输出中的密码和密钥会被去掉。

沙盒只能连到服务器本身,以及你在 服务器 → 设置 → AI 沙盒可以连的网段 中为这台服务器允许的网段,并且不能超出 agent.conf 中的本地上限 sandbox_networks_max(默认是内网网段)。其他一切都由内核拦截;内核无法过滤的地方,沙盒完全没有网络。

并不是所有事情都只要审查员同意就够了:脚本只能使用一份固定的只读工具清单。其他工具,以及读取用户主目录或邮件,都需要管理员用通行密钥批准。

沙盒需要服务器上有 systemd 236 或更新的版本,以及 D-Bus。没有的话,只执行固定的检查。

AI 操作权限

在 AI 分析 → 设置 → AI 操作权限 中选择:

选项含义
关闭:不在服务器上执行任何东西AI 只使用监控数据
只允许诊断 (默认)日志、状态、磁盘、进程、沙盒脚本……修复留给你
修复需要我批准诊断自动执行;每个修复都等你批准
低风险修复自动执行审查员同意后执行,有每小时和每天的上限。升级软件包、停止服务和结束进程总是等你批准。

不管选哪一项,AI 都永远不会执行高风险操作。每天自动修复次数(默认 20)限制自动执行的修复;超过之后,它们会等你批准。

每台服务器还会自己计数,这样就算主控被人控制了,也做不了更多:只经过审查员批准的修复,同一个每小时最多执行 3 次,24 小时内这类修复最多 20 次(agent.conf 里的 ai_auto_per_day)。超过以后服务器会拒绝,提示“这台服务器上的限制:……”。你自己批准的修复不受这个限制。

要排除某台服务器,在 服务器 → 设置 → AI 值守 中勾选 不允许 AI 在这台服务器上执行任何东西(包括只读诊断)。在服务器本身上,root 可以限制 root 助手接受哪些操作,被控无法改变这一点:

sudo 3rmonitor ai status   # 面板的 AI 可以在这台服务器上执行什么
sudo 3rmonitor ai off      # 什么都不执行
sudo 3rmonitor ai read     # 只允许只读诊断和沙盒诊断
sudo 3rmonitor ai on       # 也允许批准过的修复(默认)

等你处理

需要你处理的操作列在 AI 分析 → 总览 和 AI 分析 → 值守 的 等你处理 下,也列在对应的处理记录里。每一项都显示它要执行什么、为什么、级别以及审查员的意见。

状态你可以
等你批准批准执行:你用通行密钥(指纹、面容或 PIN)确认,服务器在一小时内执行且只执行一次完全相同的操作。或者 拒绝。
需要你亲自执行如果你同意,点 复制命令 自己执行,然后点 我已执行。或者点 忽略。

AI 做的封禁可以用 撤销 取消。

处理需要你的时候,AI 可以发邮件给你:处理结果,连同已经完成的修复、需要你处理的问题和等你批准的操作,放进合并的告警邮件。这算在 AI 每天的邮件封数里,所以也要看看面板里的 等你处理。

处理记录

AI 分析 → 值守 → 处理记录 列出每次处理:触发原因、执行了多少操作、有多少在等待或被拒绝,以及结果:

结果含义
处理中…仍在运行。点 停止 结束它。
待命:等你批准结论已经写好,有操作在等你批准
已修复 · 有改善问题解决了,或者有所好转
需要你处理有些事只有你能做
无需处理没有问题,或者没有能做的事
失败 · 已停止处理失败或被停止

打开一条处理记录,先看到结论,然后是 AI 做了什么:每次查询、命令和拒绝,以及它们的输出。

待命:AI 已经完成,但还有操作在等你批准时,它会马上写出结论。你批准了这些操作、它们执行完以后,AI 会回到同一条处理记录,检查结果,必要时继续处理,并更新结论(之前的结论保留在时间线里)。被拒绝或过期的操作只会在结论下方标注出来。

AI 会记住最近 30 天内同一台服务器或同一个问题的处理记录。

接着对话

你交给 AI 的任务,结论下面有一个 对话。接着问问题,或者告诉 AI 下一步做什么,点 发送(或按 Ctrl / ⌘ + Enter)。AI 带着这次处理的全部上下文(做过的检查和结果)回答,不用从头再来:

  • 它可以像任务里一样查数据、在服务器上检查;修复照常经过同样的检查和批准;
  • 回答显示在对话里,结论不变;
  • AI 还在做的时候你发了消息,它做完手上的事以后再回答;最多可以有 5 条消息等着回答。

AI 最后一次回复后 24 小时内都可以接着对话;输入框下面写着到什么时候为止。以下情况对话会提前关闭,显示“这个对话已经关闭:……”:

显示的原因
处理被停止了你点了 停止,或者 停止所有 AI 操作。点 停止 时会先问你,因为停止以后不能再接着对话。
到了时间、步数或 token 上限这个任务的检查次数、时间或 token 用完了
被拒绝的操作太多审查员或规则拒绝的操作太多
模型出错了模型返回了错误
对话太长,模型处理不了了内容太多,模型读不下了
距离 AI 最后一次回复已经超过 24 小时
AI 工作时主控重启了
这次处理是在支持接着对话之前做的1.1.1 之前的任务

之后要继续,就交给 AI 一个新任务。AI 自己发起的处理(故障、巡检、漏洞)不能接着对话。步数、时间和 token 都有上限;如果模型出错,会改用默认模型再试。

封禁 IP

只有在访问日志里有证据并且审查员同意时,值守员才能自己封禁一个公网 IP:默认 1 小时,最长 7 天,每小时最多 10 个、每天最多 50 个,到期自动解除。任何地址段都需要通行密钥批准。

这些地址永远不会被封禁,有批准也不行:白名单里的地址和受保护的地址、管理员登录时用的 IP、你的服务器和主控。每次封禁都会记录证据和批准人。

全部停止

停止所有 AI 操作(在 AI 分析 → 总览 和 AI 分析 → 值守 上)会把 AI 操作权限设为 关闭,停止正在运行的处理,取消排队中和等待中的操作,并关闭所有对话。关闭 值守 则不再开始新的处理。

AI 能做的事受限的服务器

AI 分析 → 值守 列出 AI 不能做所有事的服务器:

显示原因怎么办
受限:“被控 x.y.z:更新到 1.1.0 或更新的版本……”旧版被控只执行旧的只读检查和低风险修复升级主控;被控会自动跟着升级
受限:“这台服务器没有沙盒……”没有 systemd 236 或更新的版本,或者没有 D-Bus只执行固定的检查
什么都不执行被控仍以 root 运行,或者它的 root 助手没有在运行在服务器上执行 sudo 3rmonitor agent secure。见故障排查。

服务器详情页 系统 标签里的 被控 一行也会显示它的被控是怎么运行的。修复只会在信任主控签名钥匙的服务器上执行,你批准的修复还要求服务器信任你的通行密钥:见通行密钥。

安全机制

  • 被控不以 root 运行。从 1.1.0 起,它以普通用户 3rmonitor-agent 运行。AI 操作经过一个小小的 root 助手 3rmonitor-helper:它自己从主控获取每个操作,用同样的规则再检查一遍,核对批准及其签名,然后才执行。
  • 三道检查:在主控上检查,发送操作之前再检查一次,最后由服务器上的 root 助手再检查一次,它不相信主控给出的级别。
  • 服务器自己的次数限制:root 助手统计只经过审查员批准的修复,同一个修复每小时超过 3 次、或者 24 小时内超过 20 次就拒绝。
  • 审查员:另一个 AI,有自己独立的上下文,审查每个修复和每个沙盒诊断:是否必要、副作用、读取或修改了哪些文件、网络目标、离开服务器的数据、资源占用,以及试图绕过沙盒或拒绝的行为。来自日志、网页和命令输出的文字都只当作数据,永远不当作指令。多次被拒绝会让整个处理停止。
  • 签名的批准:你的批准用通行密钥对具体的操作签名,主控也会对每个操作签名,所以连主控也不能独自批准、修改或添加任何东西。见通行密钥。
  • 隐私:名称、IP 和域名以代号的形式发送给模型。

本页目录