Codex 本机无死角巡查修复报告
生成时间:2026-05-24 10:50 CST;主机:AR / instance-20260423-0914;范围:本机生产服务 + US/TK/DE 只读巡查。
是否需要处理部分需要
本机 P1 已修;远程项需确认后写入
总体健康度中
本机高;远程 US 暴露面需复核
自动修复2 项
DR 脚本、CLIProxy 配置权限
验证结果通过
0 failed units;核心路由 200/401 正常
总体结论
本机核心服务、公开入口、Report Center、Usage Ledger、CLIProxyAPI、Hermes 多 profile、TencentDB memory 和主要本地项目均处于可用状态。巡查中发现并自动修复两个本机问题:DE 容灾备份脚本对 live SQLite 临时文件过敏导致定时任务失败,以及 CLIProxyAPI 配置文件权限偏宽。
远程 US/TK/DE 已按只读边界巡查。DE/TK 未发现 P0;US 存在 0.0.0.0:8317 Docker 监听和 fail2ban 缺失 sshd-ddos filter 的问题,属于需要确认后远程修复的项目。
已检查范围
| 模块 | 结果 | 关键证据 |
|---|---|---|
| 系统基础 | 正常 | Ubuntu 24.04.4,内核 6.17.0-1014-oracle;负载 0.25/0.17/0.16;内存可用 18GiB;根分区 44%;inode 8%;NTP active。 |
| systemd | 已清零 failed | 修复后 systemctl --failed 为 0。local-dr-backup.service 已不再处于 failed 列表。 |
| 核心服务 | active | Hermes default/worker/network/news/health/stock/sub、CLIProxyAPI、nginx、Report Center、Usage Ledger、Home CMS、cctb-codex、cctb-antigravity、cards/sub/upload/image/openrouter 均 active。 |
| 公开入口 | 可访问 | www.loveason.com/ 200;/panel/ 200;/v1/models 401;/usage 200;/reports/ 200;/reports-api/api/health 200。 |
| Hermes profiles | 正常 | 7 个 gateway active;profile config.yaml 均为 600;cron jobs 共 12 个,last_status 均为 ok。 |
| TencentDB memory | 正常 | 插件 symlink 指向 /opt/TencentDB-Agent-Memory;8420-8424 health 均 200;master/worker/network/stock/health 数据目录有近期记录。 |
| CLIProxyAPI | 正常 | 版本 v7.1.20;本地和公网未带认证访问 /v1/models 返回 401;面板自定义标记 priority/xAI/Grok/quota 均存在。 |
| Usage Ledger | 正常 | API 返回 3546 events / 889 sessions;默认全量;公网手动同步 /usage/api/sync 返回 200 且 ok=true。 |
| Nginx/证书 | 通过 | nginx -t 成功;证书有效期最短 61 天;私有路径仍包含 allowlist。存在 protocol options redefined 警告,不阻断加载。 |
| Report Center | 正常 | 服务 active;本地 /api/health 200;metadata 185 条;最近报告 2026-05-24 10:00 写入。 |
| 远程 US/TK/DE | 只读完成 | 三台均 0 failed units;资源和 nginx 语法可用;远程写操作未执行。 |
已直接修复的 P1 问题
| 问题 | 原因与影响 | 修复 | 验证 | 回滚 |
|---|---|---|---|---|
| DE 容灾备份失败 | restic 扫描 live SQLite sidecar 时遇到 /root/.hermes/kanban.db-shm 消失,导致 local-dr-backup.service exit=3;同时 systemd 环境缺少 HOME/XDG_CACHE_HOME 产生缓存告警。 |
在 /root/scripts/backup-to-de.sh 中设置 HOME/XDG_CACHE_HOME,并排除 *.db-shm、*.db-wal、*.sqlite*-shm、*.sqlite*-wal;同步当前 restic-excludes.txt。backup-to-gdrive.sh 同步设置缓存环境。 |
bash -n 通过;本地临时 restic 仓库 dry-run 证明 *.db-shm 被排除;systemctl --failed 清零。未手动触发真实 DE 备份,以遵守远程写入边界;下一次 timer 将做端到端验证。 |
/root/backups/codex-local-full-audit-repair-20260524T024339Z/backup-to-de.sh.bak 与 backup-to-gdrive.sh.bak |
| CLIProxyAPI 配置权限偏宽 | /root/cliproxyapi/config.yaml 为 644,且包含 API/auth/management 相关配置键;虽然位于 root 路径,仍应最小权限。 |
权限收紧到 600;备份目录权限设为 700,敏感备份文件设为 600。 | stat 显示 600;cliproxyapi.service active;本地 /v1/models 仍按预期返回 401。 |
/root/backups/codex-local-full-audit-repair-20260524T024339Z/cliproxyapi-config.yaml.bak |
已自动处理的低风险项
| 项目 | 处理 | 证据 |
|---|---|---|
| Hermes change inbox | 启动阶段已折叠到长期记忆和系统手册,并删除 inbox。 | /root/.hermes/HERMES_CHANGELOG_INBOX.md absent;长期记忆 195 行。 |
| Usage Ledger 手动同步疑似异常 | 未改代码;复核发现当前源码已包含必要导入,10:25 后服务已重启。执行本地和公网 POST 验证。 | 本地 POST 200/ok=true;公网 POST 200/ok=true;最新导入 2026-05-24 10:47:21 CST。 |
未自动修复但建议处理
| 优先级 | 项目 | 原因 | 建议 |
|---|---|---|---|
| P1 | US 0.0.0.0:8317 Docker 监听 | US 上 CLIProxyAPI/relay 类端口暴露在所有地址,Docker 可能绕过 UFW 规则;需确认这是预期公开服务还是残留暴露。 | 远程写操作需确认后处理。建议先在 US 本机确认容器用途、认证策略和云防火墙,再决定绑定 127.0.0.1 或加 nginx/安全组 allowlist。 |
| P1/P2 | Google Drive DR 备份长时间运行 | local-dr-gdrive-backup.service 已运行约 5 小时,日志出现 cloud quota rateLimitExceeded,当前未失败但下一次触发被占用。 | 不建议强杀。观察本轮是否完成;若持续超过备份窗口,调整 gdrive 频率或 rclone/restic 参数。 |
| P2 | US fail2ban sshd-ddos filter 缺失 | fail2ban active,但日志显示该 jail 被跳过。 | 远程确认后删除该 jail 或补齐 filter;当前 sshd jail 仍在工作。 |
| P2 | TK nginx server_name 冲突 | nginx -t 成功但提示 tkk.88665577.xyz 80 端口重复,某个 server 块会被忽略。 | 远程确认域名分工后合并或删除重复 server 块。 |
| P2 | Hermes Discord platform 噪音 | 多个 profile 日志出现 Discord 未配置 token 后 paused;Telegram 主链路未受影响。 | 若不使用 Discord,后续可显式禁用该 platform,减少日志噪音;涉及 profile 配置和 gateway 重启,未在本轮自动做。 |
可忽略项
nginx -t的protocol options redefined是兼容性警告,语法成功且服务已加载,不是 P0/P1。- Telegram Bad Gateway/TimedOut 出现在短时网络波动时段,gateway 均保持 active,没有 409 冲突证据。
- Report Center 公网
/reports-api/health返回 404,但正确路径/reports-api/api/health返回 200。 - TencentDB memory health 返回
embeddingService:false,但 vectorStore 正常且记录持续更新,当前不影响记忆读写。
远程 VPS 只读摘要
| 主机 | 健康度 | 证据 | 待处理 |
|---|---|---|---|
| US / 186.244.244.52 | 中 | Ubuntu 24.04.4;0 failed units;根分区 42%;nginx/fail2ban/docker active;SSH key-only。 | 0.0.0.0:8317 暴露需确认;fail2ban sshd-ddos filter 缺失。 |
| TK / 103.232.213.10 | 高 | Ubuntu 22.04.5;0 failed units;根分区 47%;nginx/xray/fail2ban active;SSH key-only。 | nginx 80 端口 server_name 冲突;UFW inactive 属于既有远程策略,未改。 |
| DE / 47.254.140.158 | 高 | Ubuntu 24.04.4;0 failed units;根分区 52%;nginx/xray/fail2ban/rest-server-local-dr active;rest-server 仅监听 127.0.0.1:8000。 | 未发现 P0/P1;UFW inactive 属于既有远程策略,未改。 |
备份与回滚路径
- 本轮备份目录:
/root/backups/codex-local-full-audit-repair-20260524T024339Z/,目录权限 700。 - DR 脚本回滚:还原
backup-to-de.sh.bak、backup-to-gdrive.sh.bak。 - CLIProxyAPI 配置回滚:还原
cliproxyapi-config.yaml.bak;备份文件权限 600。 - 文档同步:
/root/.codex/LONG_TERM_MEMORY.md和/root/SYSTEM_FULL_MANUAL.md已记录本轮稳定变更。
下一步建议
- 等 2026-05-24 12:28 CST 的
local-dr-backup.timer跑完后复核一次 DE 备份是否端到端成功。 - 确认 US
8317是否应该公网监听;若不是,安排远程收敛绑定或 allowlist。 - 观察 Google Drive DR 备份是否因 quota 长时间卡住,必要时调低频率或分层备份。
- 如不使用 Discord,安排一次 profile 配置清理并逐个重启 gateway。
- 后续维护 TK nginx 重复 server_name,消除 reload 警告。