LiteLLM数据库持久化,用量、密钥

LiteLLM 作为 LLM API 网关,默认情况下代理的密钥、调用用量和日志如果只放在内存,一重启就全部丢失。
本文围绕 LiteLLM 数据库持久化,介绍如何将用量、密钥、日志写入 PostgreSQL,让生产环境在重启、扩容后依然保留完整数据。
零基础用户按步骤即可完成。

为什么生产环境不能只靠内存存储

LiteLLM 在开发模式或未显式配置数据库时,很多状态会驻留在进程内存里。
这意味着你创建的虚拟 API Key、每次请求的 token 消耗、调用日志,代理一重启就全部清零。
对于生产环境,密钥突发丢失会导致调用方 401,用量记录缺失会影响成本核算,日志不落地也无法审计排查。
所以把这三类数据持久化到独立数据库,是上线前必须做的一件事。

先准备好 PostgreSQL 数据库和连接信息

建议使用独立的 PostgreSQL 实例,不要复用业务库。
以 PostgreSQL 15+ 为例,先在数据库服务器上执行:

CREATE DATABASE litellm;
CREATE USER litellm WITH PASSWORD 'your_strong_password';
GRANT ALL PRIVILEGES ON DATABASE litellm TO litellm;

记下连接地址,例如:postgresql://litellm:your_strong_password@127.0.0.1:5432/litellm
如果数据库在远程服务器,请将 127.0.0.1 替换为实际 IP,并确保防火墙放行 5432 端口。

配置 LiteLLM 接入数据库

推荐通过环境变量 DATABASE_URL 设置连接串。
在 LiteLLM 启动目录下新建 .env 文件:

DATABASE_URL=postgresql://litellm:your_strong_password@127.0.0.1:5432/litellm

如果你习惯用 config.yaml,可以在配置文件中添加:

database_url: postgresql://litellm:your_strong_password@127.0.0.1:5432/litellm

database_connection_pool: true
database_connection_pool_limit: 20

连接池参数用于避免高并发下不断新建数据库连接,pool_limit 可根据实例规格调整,一般 10-30 即可。
配置完成后,用指定配置文件启动:

litellm --config config.yaml

首次启动时,LiteLLM 会自动创建所需的业务表,包括 API 密钥表、SpendLogs 用量日志表、模型配置表等。
注意启动用户必须具备建表权限,否则会报权限错误。

检查密钥、用量、日志是否真正落库

服务正常运行后,用 psql 登录数据库确认表已生成:

psql "postgresql://litellm:your_strong_password@127.0.0.1:5432/litellm" -c "\dt"

常见表名包含 LiteLLM_VerificationTokenLiteLLM_SpendLogsLiteLLM_ProxyModel 等。
继续执行几条查询:

SELECT * FROM "LiteLLM_VerificationToken" LIMIT 5;
SELECT * FROM "LiteLLM_SpendLogs" ORDER BY "startTime" DESC LIMIT 5;

如果创建了新的 API Key 并调用一次模型,再重复上面的查询,能看到对应记录,说明密钥和用量日志已经持久化到数据库,重启 LiteLLM 后数据依然存在。

持久化配置常见坑与避坑建议

数据库连接不上时,先检查 DATABASE_URL 是否包含正确密码和 IP,并确认用户有权限访问库。
使用云数据库时,记得在白名单中加入 LiteLLM 所在服务器的出口 IP。

连接池参数不是越大越好,pool_limit 设置过高可能超过数据库最大连接数,导致“too many connections”。
如果代理实例较多,建议按实例数量均分连接数。

时区问题也容易出现。
SpendLogs 里的时间字段默认按 UTC 存储,业务看板如果按本地时间展示,需要自行转换,不要认为是数据错乱。

生产环境中务必定期备份数据库,尤其是包含历史用量和密钥信息的表。
你可以使用 pg_dump 做全量备份,或部署流复制实现高可用。

写在最后

按上述步骤完成 LiteLLM 数据库持久化后,你可以通过查询表确认密钥、用量、日志全程可追溯。
若遇到表未创建、连接超时等问题,优先检查 DATABASE_URL 字段、数据库用户权限和连接池参数。
不同 LiteLLM 版本对配置项的支持略有差异,建议以你的实际部署版本对应的官方文档为准。

分享到:
上一篇
如何统计每个用户token消耗,输入输出分开统计数据库设计
下一篇
Ollama禁止外网访问的几种正确配置方式
1
系统公告

机房迁移升级通知

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