自建AI中转站日志审计追踪API调用记录

自建AI中转站日志审计与API调用追踪实操教程

自建AI中转站(例如 One API、New API 等)聚合多个大模型接口后,日志审计成为排查问题、追踪调用记录的关键环节。
很多新手部署后却发现找不到调用日志,或者日志不记录关键时刻。
本文从零开始,以最常见的中转站项目为例,按步骤讲清楚如何开启日志、追踪每次API调用,以及避开常见的坑。

适用场景与准备条件

本文操作主要面向已经部署好 AI 中转站(假设使用 One API 及其派生项目)的用户。
你需要满足:

  • 中转站服务正常运行(可通过域名或 IP 访问管理面板);
  • 拥有服务器 SSH 访问权限(或宝塔面板等可视化终端);
  • 了解项目配置文件所在路径(一般位于项目根目录下的 config.json.env 文件)。

如果还没有部署中转站,建议先完成基础搭建再回来开启日志审计。

第一步:开启日志记录功能

大多数自建中转站默认只记录错误日志,要追踪每一次API调用,需要手动开启访问日志或审计日志。

1. 通过配置文件开启

登录服务器,进入你的 One API 项目目录(例如 /opt/one-api),编辑 config.json 文件:

cd /opt/one-api
vim config.json   # 或使用 nano config.json

找到与日志相关的配置项,修改或添加以下内容:

"log": {
  "log_enable": true,
  "log_type": ["access", "error"],
  "access_log_path": "./logs/access.log",
  "error_log_path": "./logs/error.log"
}

说明:

  • log_enable 设为 true 开启日志;
  • log_type 加入 "access" 表示记录每次 API 请求;
  • 日志文件路径建议放在项目目录下的 logs/ 文件夹。

保存退出后重启服务生效:

# 如果使用 systemd
systemctl restart one-api
# 或 pm2 管理
pm2 restart one-api

2. 通过管理面板开启(部分版本支持)

登录中转站管理后台(通常是 http://你的域名/admin),进入「系统设置」→「日志设置」:

  • 勾选「启用访问日志」;
  • 选择要记录的事件(推荐全选);
  • 点击「保存」并「重启服务」。

第二步:实时追踪API调用记录

日志开启后,可以通过以下方法实时查看调用流水。

使用 tail 命令监控最新日志

# 进入日志目录
cd /opt/one-api/logs
# 实时输出最新 20 行,并持续刷新
tail -f access.log

每当你通过中转站调用一次大模型(例如 ChatGPT),终端会立刻打印一行类似:

2025-06-28 14:23:45 [POST] /v1/chat/completions token: sk-xxxxxx user: test@example.com model: gpt-4o status: 200 latency: 1250ms

这行记录包含了请求时间、接口路径、用户令牌、邮箱、模型名、响应状态和耗时。

按用户或 Token 过滤日志

如果用户量较大,可以用 grep 提取某个用户的调用记录:

grep "user@example.com" access.log
# 或根据 token 前缀
grep "sk-xxxx" access.log

避坑指南:日志不记录或记录不全

新手经常遇到以下问题,导致审计失败:

  • 忘记重启服务:修改配置后必须重启才能生效。
  • 日志路径不存在:提前手动创建 logs/ 目录,并确认运行用户(如 www-data)有写入权限:
  mkdir -p /opt/one-api/logs
  chown -R www-data:www-data /opt/one-api/logs
  • 只开了错误日志:需要将 log_type 同时包含 "access" 才能记录每一次调用。
  • 磁盘爆满:日志文件会持续增长,建议在服务器上配置日志轮转(logrotate)。快速添加轮转规则:
  # 创建文件 /etc/logrotate.d/one-api
  /opt/one-api/logs/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
  }

效果验证:确认日志审计正常工作

完成以上步骤后,执行一次模拟调用:

curl https://你的中转站域名/v1/chat/completions \
  -H "Authorization: Bearer 你的测试Token" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello"}]}'

然后立刻查看 access.log

tail -n 1 /opt/one-api/logs/access.log

如果看到包含你测试Token的请求记录,说明日志审计已成功启用。
后续你可以定期将日志导出用于流量分析、计费核对或安全审计。

常见问题解答

Q:我的中转站不是 One API,也能用这些方法吗?
A:大部分自建中转站(如 New API、Midjourney Proxy 等)的配置逻辑相似,核心都是修改 log 相关配置或环境变量,请参考你项目的官方文档确认具体配置项。

Q:访问日志中不记录用户邮箱,只显示 token 怎么办?
A:这是正常的设计,避免泄漏用户信息。你需要根据 token 在数据库中反查用户,或者开启更详细的审计记录(部分项目支持记录用户ID)。

Q:日志文件一天就几个GB,如何清理?
A:使用上文提到的 logrotate 轮转即可,也可以按天分割日志,保留最近 7 天。

如果你正在管理自建AI中转站,建议先按本文开启日志审计,再根据实际用户量调整日志级别和轮转策略,这样既能追踪API调用记录,又不会影响服务器性能。
遇到日志异常时,优先检查配置文件和目录权限。

分享到:
上一篇
住宅机器闲置显卡部署多模型中转服务
下一篇
AI中转站并发报错503故障完整排查
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意