第 8 篇 / 共 8 篇
08|PVE 日志诊断、分级巡检、变更审批与回滚闭环
知识分类:故障处理与运维制度|2026-10-17 整理|技术知识已交叉核对;监控计划、故障修复或权限整改未据此实施。
一、以现象—证据—原因假设—验证方式记录故障
PVE 故障至少分成七层:①供电硬件,②主机启动/内核,③存储与挂载,④物理网络/桥接,⑤PVE 服务/API,⑥VM/CT 客体,⑦应用级服务。先判断故障层,再决定要看哪些日志;不能把每个问题都归咎于 Token 或 OpenClaw。
| 现象 | 首先保留的证据 | 常见方向 |
|---|---|---|
| Web 页面不可达 | 本地控制台、链路状态、服务监听 | 网络路由、pveproxy、证书 |
| VM/CT 无法启动 | 任务日志、配置、存储、内核错误 | 镜像不可达、设备冲突、权限、内存 |
| 容器目录突然为空 | 挂载源、findmnt、外置盘状态 | 外部存储离线或错误挂载 |
| 审计 API 返回 401 | 认证状态、请求路径、时间 | Token 格式/失效/禁用 |
| 审计 API 返回 403 | ACL 路径、用户与 Token 权限 | 缺少具体端点权限 |
审计执行 allowlist miss | 精确指令、执行器配置、参数 | 执行层策略拒绝 |
EACCES | 脚本/目录元数据、进程身份 | Unix 文件与执行权限 |
日志不直接等于结论。例如 EACCES 不代表 PVE API 403,白名单拒绝也不意味着 PVE 系统没有运行。所有结论要附时间、环境与排除证据。
二、只读故障核查
以下在人工授权的宿主环境运行,不是让审计容器拥有执行这些命令的权限:
systemctl --failed
systemctl status pveproxy pvedaemon pvestatd --no-pager
journalctl -p warning -b --no-pager -n INSTANCE
pvesm status
qm list
pct list
findmnt
journalctl 和服务输出可能出现 IP、用户名、请求路径与敏感信息,采集后应在受控位置先脱敏。日志检索要限定单次范围及字节量,避免把整个宿主 journal 长时间导出给 AI。
三、可审计的监控策略
内部手册曾提出“状态每 5 分钟、错误日志每 30 分钟、备份每日、ACL 与配置差异每周、恢复演练每月或季度”的候选周期。这些是尚待资源评估和审批的计划,不应写为已部署运行。对家庭服务器而言,可优先部署低负载的只读被动巡检、失败聚合与告警;减少重复通知并防止日志激增。
计划接口可限制:固定节点与实例白名单;只接收明确的 GET;时间窗口选择一种确定合同;记录条数、单行字节和总输出上限;超限显式截断;遮蔽 Authorization、Cookie、Token、口令、邮箱、内网地址和其他可识别信息。监控执行器与 PVE API 凭据分别封装,不让“查看日志”变成“任意远程执行”。
四、风险分级与停工条件
| 等级 | 典型场景 | 处理原则 |
|---|---|---|
| P0 阻断级 | 数据丢失风险、管理入口全断、密钥泄漏 | 停止变更,保全证据,走应急响应 |
| P1 高风险 | 改网络/ACL/宿主存储、禁用 SSH、宿主重启 | 备份+双恢复路径+审批+窗口 |
| P2 中风险 | 增加只读插件命令、修改白名单或定时器 | 版本差异、测试和审批后部署 |
| P3 低风险 | 只读盘点、脱敏日志离线分析 | 记录证据、不扰动生产 |
停工条件包括:无法证明备份可恢复;管理与物理救援入口不可用;操作目标仍不确定;影响主路由但没有窗口;出现未排除的越权/令牌异常;找不到回滚责任人。
五、七步变更闭环
- 申请:记录故障现象、影响面、风险级别。
- 采证:只读快照、版本、配置原值和日志脱敏摘要。
- 准备:准确对象、已验证备份、原配置、脚本校验和。
- 审批:单次授权只覆盖具体文件/实例、预定维护窗口。
- 执行:按逐条步骤变更;禁止顺带升级、重启或修改无关设备。
- 验收:检查旧功能、只读边界、路由、存储与应用服务。
- 回滚/归档:出现异常立即停,按逐项差异恢复,记录最终状态。
无 Git 基线的系统也可以通过“时间戳 + 配置哈希 + 加密备份 + 审批单 + 验收记录”形成可追溯管理。若未来使用 Git,只提交脱敏脚本和文档;密钥、实际证书、完整主机配置及原始敏感日志必须排除。
六、现场应急优先级
管理面失联时,应先通过本地控制台判断宿主存活和网络是否断链,不要远程盲改防火墙、清空配置或重启全部路由 VM。日志显示存储离线时暂停写入下载目录,不能直接 mkdir 冒充已挂载存储。审计插件失败则停用新任务并保留原 inventory/guest-config 能力,不能放宽全部命令限制。
关联资料与验证依据
- 内部资料:《PVE 安全整改中文操作手册》(2026-10-17)及历史只读审计故障记录。
- 官方:https://github.com/proxmox/pve-docs/blob/master/pveum.adoc
- 官方:https://pve.proxmox.com/pve-docs/api-viewer/
- 官方:https://www.proxmox.com/en/downloads/proxmox-virtual-environment/documentation/proxmox-ve-admin-guide-for-8-x
结论:自动化只能生成有证据的诊断建议;生产写操作永远进入独立审批与回滚闭环。
2026-10-17 第二阶段核验补充(发布前确认)
- 2026-10-16 已有部分只读 API 固定 GET 成功的现场记录;本轮 CT106 SSH 和知识库只读挂载连通,知识库索引 timer active;不能由此推定节点日志 API、命令 allowlist 或全部监控已正式上线。
EACCES、HTTP 401/403、执行器allowlist miss必须分层解释。此次EACCES源于 SSH 会话无权读取服务.env,没有采取提权措施。- 2026-10-16 记录出现备份排程以及隔离恢复演练的实际变更,但本文所列日常监控候选周期仍不得笼统写成“已运行”。