跳到正文

请求日志与审计日志 ​

请求日志用于回答“谁在什么时间调用了哪个接口,结果怎样”。它与保存 Token 和点数的用量账本分开。

记录的内容 ​

类别字段
请求时间、方法、路径、请求 ID
结果HTTP 状态码、耗时、响应字节数
来源账号、网页或 API 渠道、IP、User-Agent
模型已关联的模型 ID 与展示名称
错误可获得的错误码

请求日志不保存完整请求正文、上游响应正文或全部 HTTP Headers。不要期望在这个页面直接查看原始提示词或上游完整 JSON。

Token、点数等消费信息到用量页面查看。进程日志可提供网络、数据库与探测相关的补充信息。

定位失败请求 ​

先按发生时间与模型过滤,再根据状态或错误码缩小范围。也可以从模型页面的错误入口跳转到请求日志。

  • 401:核对调用方认证;如果错误来自上游,再检查服务商凭据。
  • 429:区分本实例的额度或并发限制与上游限流。
  • 5xx:结合进程日志检查连接、超时或上游响应问题。

HTTP 流式响应开始后,状态码可能已经发出。不能只凭 200 判断整次生成一定成功,应结合错误码和用量记录中的结果。

写入时间与保留 ​

请求结束后才进入日志队列,正在生成的长请求不会马上出现在列表里。后台批量写入,可能有短暂延迟。

当前实现最多保留约 200,000 条请求记录,并分批修剪更早的数据。队列拥塞或写入失败时可能丢失条目,后台提供丢弃数量供排查。

health.retain_days 控制模型探测数据,不是请求日志的保留天数。请求日志也不是不可删除、保证无遗漏的审计存储。

需要长期保留时 ​

将进程日志与数据库备份纳入自己的保留计划。发生问题后及时保存有关时间范围的信息,避免历史记录被正常修剪。

管理员审计日志 ​

审计日志回答“哪位管理员在什么时候改了什么”。它和请求日志、安全事件分开保存:请求日志记的是流量,安全事件记的是系统对账号做出的决定,审计日志只记管理员的操作。

记录的内容 ​

  • 后台的每一次写操作(新增、修改、删除、执行),不论成功、失败还是因权限不足被拒绝。被拒绝的尝试也会记在发起人名下。写入超过五秒仍未完成的记录会被丢弃,只写进进程日志。
  • 查看他人对话列表或对话内容这两类读操作。其余读操作不记录。
  • 在终端(网页终端或 SSH)里执行的管理命令。它们走的是同一组后台接口,来源会标为“网页终端”或“SSH 终端”。
  • 已安装插件的后台接口同样会被记录,未翻译的操作按“方法 + 路径”显示。

每条记录包含:时间、操作人及其角色、操作、操作对象(账号、用户组、服务商、模型会记下当时的名称)、状态码、耗时、来源、IP、客户端,以及请求内容。 修改设置和编辑账号时,还会记下每个字段的旧值和新值。

敏感信息 ​

请求内容写入前会先打码:字段名中带 password、secret、token、key 等词的值,以及被声明为密钥的设置项,一律替换为 ***。 密钥类设置被修改时,只记录“已更改”,不记录新旧值。上传的内容(Logo、登录背景、头像的图片数据,插件包)只记录长度或类型和大小,不保存内容本身;过长的文字只保留前 512 个字符。

权限与保留 ​

  • 查看审计日志需要单独的“审计日志”权限(audit),日志权限不包含它。超级管理员默认可以查看。
  • 记录默认保留 180 天,由后台例行清理任务删除过期记录。保留时长(audit.retention_days)只有超级管理员能改,范围 30 到 3650 天。
  • 后台和接口都不提供删除单条记录的方式。能直接操作数据库的人仍然可以改写这张表(admin_audit),需要防篡改时请把数据库备份纳入自己的保留计划。

在终端中查看 ​

audit list --outcome failed
audit list --actor alice --limit 20
audit show <id>
audit actions

Obsidian Arc · 自托管 AI 工作空间