15分钟把LiteLLM LLM网关部署上生产:从Compose启动到密钥签发验证

📅 2026/8/24 16:37:51
15分钟把LiteLLM LLM网关部署上生产:从Compose启动到密钥签发验证
15分钟把LiteLLM LLM网关部署上生产从Compose启动到密钥签发验证【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm团队同时调用 OpenAI、Anthropic、Bedrock 等多家模型服务时密钥、格式、成本各管一摊。LiteLLM 用一个容器就能把 LLM 网关立起来统一 OpenAI 格式入口、100 模型直通、内置成本跟踪与密钥权限。这篇文章面向第一次负责生产部署的工程师用 Docker Compose 走完容器拉起 → 模型接入 → 监控 → 发密钥的完整链路全程以验证结果为准。M0 环境体检确认运行时、端口与两个密钥部署前先确认环境避免服务起来后再回头改Docker 20.10 与 Docker Compose v2宿主机 4000代理、5432数据库、9090监控端口空闲至少 1GB 可用磁盘镜像与 TSDB 数据可访问上游模型厂商 API 的网络出口克隆仓库并生成密钥文件git clone https://gitcode.com/GitHub_Trending/li/litellm cd litellm # 生成盐密钥用于加密落库的 API key并写入 .env SALT$(python3 -c import secrets; print(secrets.token_urlsafe(32))) cat .env EOF LITELLM_MASTER_KEYsk-1234 LITELLM_SALT_KEY$SALT EOF cat .env # 验证两行均已生成且非空注意LITELLM_SALT_KEY决定数据库中 API 密钥的加密一旦变更历史签发的密钥全部无法解密。请只生成一次存入密码管理工具LITELLM_MASTER_KEY同理换成强随机串。M1 用Docker Compose一键拉起LiteLLM代理与PostgreSQL仓库根目录的docker-compose.yml已编排好三个服务litellm 代理、Postgres 16 数据库、Prometheus。直接启动docker compose up -d docker compose ps预期结果三个容器均为runninglitellm 配置了健康检查启动 40 秒后开始探测db与litellm最终显示(healthy)✅。再用存活接口确认curl -s http://localhost:4000/health/liveliness # 预期输出{status:healthy}注意compose 默认把 5432 与 9090 映射到宿主机。生产环境请删除这两条 ports 映射或改绑内网地址只对外暴露 4000。M2 挂上最简模型配置并验证网关可达在根目录写一份只保留必要字段的config.yamlmodel_list: - model_name: gpt-4o-mini # 业务侧使用的名称 litellm_params: model: openai/gpt-4o-mini api_key: os.environ/OPENAI_API_KEY # 从环境变量读取不落盘 - model_name: claude-3-5-sonnet litellm_params: model: anthropic/claude-3-5-sonnet-latest api_key: os.environ/ANTHROPIC_API_KEY把厂商密钥追加进.env然后在docker-compose.yml的 litellm 服务下取消 volumes 与 command 两段的注释挂载配置并传入--config/app/config.yaml重建代理echo OPENAI_API_KEYsk-xxx .env echo ANTHROPIC_API_KEYsk-ant-xxx .env docker compose up -d litellm验证分两步模型注册与界面登录。curl -s http://localhost:4000/v1/models -H Authorization: Bearer sk-1234 | python3 -m json.tool # 预期data 列表中能看到 gpt-4o-mini 与 claude-3-5-sonnet浏览器打开http://localhost:4000/ui用主密钥登录进入 Teams 页面即可管理团队、成员与预算M3 接入可观测性并核对成本指标compose 中的 prometheus 服务按prometheus.yml每 15 秒抓取一次代理指标目标litellm:4000。先制造一次真实请求再核对指标链路curl -s http://localhost:4000/chat/completions \ -H Authorization: Bearer sk-1234 -H Content-Type: application/json \ -d {model:gpt-4o-mini,messages:[{role:user,content:ping}]}验证方式打开http://localhost:9090分别查询litellm_total_requests与litellm_total_cost。预期请求计数增加 1成本出现非零累计值。若为空先执行curl -s http://localhost:4000/metrics | grep litellm_确认代理侧确实在暴露指标再排查抓取配置。M4 向团队签发受限API密钥并验证作用域主密钥只用于管理面业务一律使用受限密钥。签发一个限定模型、预算与有效期 7 天的密钥curl -s http://localhost:4000/key/generate \ -H Authorization: Bearer sk-1234 -H Content-Type: application/json \ -d {models:[gpt-4o-mini],max_budget:10,duration:7d,metadata:{owner:team-a}} # 预期返回{key:sk-litellm-...,expires:2026-08-30T...}验证作用域用新密钥调用gpt-4o-mini应成功改用claude-3-5-sonnet调用应被拒绝不在 models 白名单内。UI 的 Audit Logs 页面会记录密钥的创建、轮换与删除操作方便事后追责。注意轮换密钥时直接签发新密钥并通知业务方切换即可无需重启网关旧密钥可设置过期时间后自然失效。M5 故障兜底日志定位、水平扩展与备份排障从两命令入手docker compose logs -f litellm跟踪日志docker compose ps确认各服务状态。常见故障对照现象优先排查litellm 长时间 unhealthy等满 40 秒启动宽限期再看日志是否卡在数据库连接模型调用 401/500厂商密钥未写入 .env或 model_name 与 model_list 不一致端口冲突修改 compose 中宿主机侧端口映射流量上来后横向扩展docker compose up -d --scale litellm3注意多实例部署时限流、用量统计与健康检查协调依赖共享 Redis配置项general_settings.coordination_redis未配置会导致各实例数据割裂。数据库备份建议纳入定时任务docker compose exec db pg_dump -U llmproxy litellm backup_$(date %Y%m%d).sql head -1 backup_$(date %Y%m%d).sql # 验证文件以 pg_dump 注释头开头至此 LiteLLM LLM 网关的最小生产闭环已完成。下一步在 UI 中为各团队配置预算与成员并把/metrics接入 Grafana 与告警规则。参考入口docker-compose.yml服务与读副本、健康检查的完整定义、prometheus.yml抓取间隔与目标调整、docker/README.md需要定制镜像构建时的入口。【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考