故障排查
本页按故障类型提供排查思路,帮助定位启动失败、权限错误、策略拦截、上游错误和托管连接问题。
本指南帮助你诊断运行中的 AISIX 网关为什么没有按预期工作。请按顺序执行检查,直到明确失败层级,再根据对应章节决定下一步操作。
快速排障
修改配置前,请先从运行时路径开始检查。
先检查监听器健康状态:
curl -i "http://127.0.0.1:3000/livez"
在自托管模式下,使用 Admin Key 检查 Admin 监听器和配置健康状态:
curl -i "http://127.0.0.1:3001/livez"
curl -sS "http://127.0.0.1:3001/admin/v1/health" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}"
使用应用实际使用的同一个调用方 API Key 验证模型发现:
curl -sS "http://127.0.0.1:3000/v1/models" \
-H "Authorization: Bearer ${AISIX_API_KEY}"
然后向失败端点发送一次真实请求。例如,使用调用方 API Key 检查 OpenAI 兼容聊天路径:
curl -sS "http://127.0.0.1:3000/v1/chat/completions" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "Say hello."
}
]
}'
根据响应状态、错误类型和关联响应头选择下一步检查。
| 信号 | 下一步检查 |
|---|---|
| 监听器健康检查失败。 | 进程、监听器绑定、启动配置和 TLS。 |
| 自托管模式下 Admin 健康状态过期或不可用。 | etcd 可达性、快照新鲜度和配置 watch 健康状态。 |
| 模型发现没有显示预期别名。 | 调用方 API Key 访问权限、模型类型和配置可见性。 |
| 真实代理请求在上游调度前失败。 | 调用方认证、模型访问、安全护栏、限流或预算。 |
| 真实代理请求到达服务提供方后失败。 | 服务提供方密钥、base URL、上游模型 ID、配额、故障或出站网络路径。 |
请求关联方面,chat completions 响应使用 x-aisix-call-id。许多直接代理端点,包括 Messages、Responses、rerank、audio 和 passthrough,使用 x-aisix-request-id。精确响应头范围请参见响应头与错误码。
验证配置可见性
当资源最近刚创建或更新,或代理表现得像仍在使用旧配置时,请执行这一步。
| 信号 | 检查项 | 处理方式 |
|---|---|---|
| 进程启动失败。 | etcd 端点、网络可达性、TLS 证书路径、文件权限和启动配置语法。 | 修复启动配置或 etcd 连接后重启网关。 |
| Admin 写入成功,但代理流量仍使用旧资源。 | 自托管模式下 Admin 健康检查中的快照新鲜度。 | 快照更新后验证最终代理路径;参见配置传播。 |
| 模型发现缺少新别名。 | 调用方 API Key 允许列表、模型类型和快照新鲜度。 | 修正模型或调用方 API Key,然后再次查询模型发现。 |
| 错误提到缺少服务提供方密钥或未知资源。 | 服务提供方密钥、模型和调用方 API Key 引用。 | 按顺序创建或修正依赖资源,然后发送真实代理请求。 |
在自托管部署中,etcd 是网关控制面的一部分。如果 etcd 不可用,服务提供方密钥、模型别名、调用方 API Key、策略和导出器等动态资源将无法正确加载。
验证调用方访问与策略
当 AISIX 在调用服务提供方前拒绝请求,或不同调用方 API Key 的模型发现结果不一致时,请执行这一步。
| 信号 | 检查项 | 处理方式 |
|---|---|---|
| 认证错误。 | 应用发送的是明文调用方 API Key,而不是存储哈希或上游服务提供方密钥。 | 更新应用密钥或认证请求头。 |
| 权限或模型访问错误。 | 请求的模型别名是否被调用方 API Key 允许。 | 将别名加入调用方 API Key,或请求已允许的模型。 |
| 内容策略错误。 | 已启用安全护栏、各护栏运行阶段,以及触发的 prompt 或响应内容。 | 视情况调整 prompt、安全护栏规则或失败开放行为。 |
| 限流或预算错误。 | 重试提示、API Key 限制、模型限制、共享策略、托管预算状态和副本本地计数器。 | 等待重试窗口、提高限制或调整匹配策略。 |
精确代理错误信封、状态码和重试响应头请参见代理错误与重试。