跳到主要内容

审计日志

审计日志页面包含两个 Tab:LLM 请求日志(默认)和 管理操作日志

最后更新:2026-03-10


Tab 1:LLM 请求日志(默认展示)

记录所有通过 One API 网关的模型调用请求,用于费用追踪和异常排查。

数据来源

One API 的 callback.py 在每次请求完成后写入 oneapi.logs 表。

筛选条件

  • 搜索:实例名 / 用户 email / 模型名 / 错误信息(模糊匹配)
  • 模型:下拉选择(claude-sonnet-4-6, gpt-4o, gemini-2.5-flash 等)
  • 状态:success / error
  • 日期范围:开始日期 → 结束日期

表格字段

字段说明
时间请求时间戳(ISO 8601,含时区)
实例OC 实例名 或 admin-token(管理后台直接调用)
用户Portal 用户 email(子 Key 绑定的用户),无则显示
模型实际调用的模型 ID
ProviderOne API 路由到的 Provider channel(如 ch-1, ch-2)
Tokens总 token 数(input + output)
费用本次请求费用(USD)
状态success / error

数据库

CREATE TABLE oneapi.logs (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
request_id VARCHAR(100),
instance_name VARCHAR(100),
user_email VARCHAR(200),
model VARCHAR(100) NOT NULL,
provider VARCHAR(50),
tokens_in INT DEFAULT 0,
tokens_out INT DEFAULT 0,
cost DECIMAL(10,6) DEFAULT 0,
status VARCHAR(20) DEFAULT 'success',
error_message TEXT,
duration_ms INT DEFAULT 0,
oneapi_token_name VARCHAR(100),
created_at DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3),
KEY idx_instance (instance_name),
KEY idx_model (model),
KEY idx_created (created_at),
KEY idx_status (status)
);

API

GET /api/v1/llm-request-logs?instance=oc-ai-jp-2-02&model=claude-sonnet-4-6&status=success&start=2026-03-09&end=2026-03-10&q=soosoogoo&limit=50&offset=0

返回:

{
"code": 0,
"data": {
"total": 8,
"list": [
{
"id": 1,
"created_at": "2026-03-09T16:07:21+09:00",
"instance_name": "oc-ai-jp-2-02",
"user_email": "[email protected]",
"model": "claude-sonnet-4-6",
"provider": "ch-1",
"tokens_in": 5,
"tokens_out": 6,
"cost": 0.001,
"status": "success"
}
]
}
}

Tab 2:管理操作日志

记录所有后台管理操作,确保操作可追溯、可审计。

操作类型

操作类型说明示例
auth.login登录/登出Google OAuth 登录、密码登录
instance.create实例创建创建 OC 实例
instance.update实例变更修改模型、配置
instance.delete实例删除软删除实例
instance.health健康检查异常连续失败、自动恢复
key.create密钥创建创建主 Key / 子 Key
key.sync密钥同步同步子 Key 到实例
key.delete密钥停用停用子 Key
user.create用户管理创建 Portal 用户
user.update用户变更更新权限、分配实例
server.action服务器操作重启容器、采集指标
config.change配置变更修改 openclaw.json、auth-profiles
task.failed任务失败任务队列执行失败
shrimp.claim捕虾场操作用户捕获虾、回收实例

日志级别

级别说明触发场景
INFO正常操作登录、创建、同步成功
WARN需关注健康检查失败、自愈触发、预算接近上限
ERROR错误任务失败、SSH 超时、Key 验证失败

筛选条件

  • 操作类型:下拉选择
  • 操作人:下拉选择(管理员 + System)
  • 级别:INFO / WARN / ERROR
  • 日期:单日选择

数据库

CREATE TABLE admin_audit_logs (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
operator VARCHAR(100) NOT NULL COMMENT '操作人 email 或 System',
action VARCHAR(50) NOT NULL COMMENT '操作类型',
level VARCHAR(10) DEFAULT 'INFO' COMMENT 'INFO/WARN/ERROR',
target VARCHAR(200) COMMENT '操作目标',
detail TEXT COMMENT '操作详情',
ip VARCHAR(50) COMMENT '操作者 IP',
user_agent VARCHAR(500),
created_at DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3),
KEY idx_action (action),
KEY idx_operator (operator),
KEY idx_level (level),
KEY idx_created (created_at)
);

API

GET /api/v1/audit-logs?action=auth.login&operator=小妹&level=ERROR&date=2026-03-10&limit=50&offset=0

导出

GET /api/v1/audit-logs/export?start_date=2026-03-01&end_date=2026-03-10&format=csv

保留策略

  • 两类日志均默认保留 90 天
  • 可通过环境变量 AUDIT_RETENTION_DAYS 配置
  • 过期数据由 cron job 每日清理