深色模式
审计日志
每一次 AI 工具调用、每一次审批裁决、每一次凭据 Reveal、每一次危险命令拦截都写入审计。可按工具 / 服务器 / 决策过滤、CSV 导出、跳转敏感库联动查看。
进入
主界面左侧导航 → 审计。
双层审计库
| 层级 | 路径 | 范围 |
|---|---|---|
| 全局 | <app data>/reeve.db | 所有项目 + 非项目使用 |
| 项目 | <project>/.reeve/audit.db | 仅本项目 |
页面顶部 仅看当前项目 Toggle 切换视图。
记录字段
每行包含:
| 字段 | 说明 |
|---|---|
| 时间戳 | ISO 8601 |
| 工具 | ssh_exec / sftp_read / db_query 等 |
| 服务器 | 别名 |
| 来源 | 哪个 MCP Token / 内置对话 |
| 参数 | 命令 / SQL / 路径(已脱敏) |
| 结果 | 输出预览(已脱敏) |
| 决策 | auto / approved / denied / blocked |
| 决策原因 | 触发的策略 / 黑名单规则 / 技能正则 |
| 审批者 | 人工决策的 username(如有) |
| 项目 ID | 关联的项目 |
决策类型
| 决策 | 含义 |
|---|---|
| auto | 策略自动放行(信任 / 白名单命中 / 元工具) |
| approved | 人工审批通过 |
| denied | 人工或自动拒绝 |
| blocked | 危险黑名单 / 敏感路径 / 技能 dangerous_commands 拦截 |
| cancelled | 用户取消或 5 分钟超时自动拒 |
视图模式
顶部 Tab:
行列表
经典审计表格,分页 50 行/页,按时间倒序。
批次视图
按"一次 AI 工具调用产生的一批"分组卡片:
- 一次
ssh_exec_multi一卡片 - 一次 Runbook 执行一卡片
- 卡片头:触发时间 + 涉及服务器数 + 总决策
- 展开看每条单独决策
过滤
工具栏:
- 关键字搜索:LIKE 跨 tool / params / result
- 工具类别:ssh_ / db_ / sftp_ / other / vault_access / approval
- 服务器:选服务器别名
- 决策:仅看 blocked / denied / approved 等
- 时间范围:今天 / 最近 7 天 / 最近 30 天 / 自定义
- 仅看当前项目:Toggle
行操作
行内按钮:
导出
工具栏 导出 CSV 按钮:
- 全字段 + 当前过滤范围
- 适合月度报告 / 合规审计
保留策略
设置 → 审计保留:
- 默认 90 天
- 可改 0~999 天(0 = 永久保留)
- Sweeper 每 24h 清理过期行
- 保留时长缩短不立即清,等下次 sweeper
脱敏处理
审计行不存凭据明文:
- 命中脱敏规则的字段保留
[REDACTED:xxx] - 明文 AES-GCM 入
sensitive_vault,审计行存指针 - 用「跳转敏感库」按钮可看到对应的 vault 条目
跳转敏感库联动
审计行 → 跳转敏感库:
- 过滤敏感库只显示与本审计相关的 vault 条目
- 一键 Reveal / 转凭据
- 完整证据链:审计 ⇄ 敏感库
典型用法
"AI 上周到底跑了什么"
- 工具类别 = ssh_ + sftp_
- 时间范围 = 最近 7 天
- 来源 = Claude Code
- 按时间正序查看
"为什么这条命令被拦"
- 关键字搜命令
- 看决策原因
- 跳转到对应的黑名单规则 / 技能 dangerous_commands
"把上次的运维流程固化"
- 选中相关行
- 打包为 Runbook
- 编辑保存到项目空间
故障排查
| 症状 | 排查 |
|---|---|
| 没看到记录 | 检查保留策略是否过期清理 |
| 跳转敏感库为空 | 命令可能没命中脱敏规则 |
| CSV 导出失败 | 过滤范围太大,缩短时间 |
| 项目审计为空 | 项目 ID 不匹配,检查 .reeve/project.json |