日志与排障
排障时先用日志定位问题域,再按最小链路验证。不要同时修改多个外部服务配置,否则很难判断是哪一项修复了问题。
排障顺序
日志字段
日志条目应包含:
| 字段 | 含义 |
|---|---|
event | 事件名 |
group | 所属领域 |
method | 动作或方法 |
status | 结果 |
durationMs | 耗时,可能为 null |
noise | 是否为噪声日志 |
不适用的字符串字段使用 not_applicable。durationMs: null 表示不适用,不应显示为耗时 0。
日志视图
日志视图默认隐藏静态资源、前端和日志查看器自身请求。排查资源加载问题时,可以显式包含噪声日志。
详情抽屉应展示结构化字段,但不展示请求体。token、secret、password、hash、session 和 key 等字段应被脱敏。
按症状排查
页面打不开
docker compose ps检查容器。- 检查端口映射和反向代理。
- 查看
app启动日志。 - 确认
PUBLIC_BASE_URL和 HTTPS 配置。
登录失败
- 确认管理员是否已初始化。
- 检查
JWT_SECRET_KEY是否稳定。 - 检查浏览器来源是否被 CORS 允许。
- 查看认证相关日志。
AI 不可用
- 检查 API key 和 Base URL。
- 检查代理和网络出口。
- 检查模型名和账号权限。
- 用简单测试会议验证。
消息不采集
- 检查订阅是否启用。
- 检查来源地址或频道权限。
- 检查 listener 是否运行。
- 查看上次采集错误。
消息不触发会议
- 确认消息已入库。
- 检查过滤状态。
- 检查过滤决策是否为
meeting。 - 检查订阅团队绑定和会议队列。
会议卡住
- 检查会议状态。
- 如果是
queued,看 worker 和 Redis。 - 如果是
running,看 AI、工具调用和事件流。 - 修复配置后再重启会议。
行情为空
- 检查标的代码。
- 检查行情提供方和网络。
- 检查是否被限流。
- 对单个标的执行最小查询。
模拟交易异常
- 检查账户是否启用。
- 检查风险配置是否绑定。
- 检查标的行情。
- 查看订单拒绝原因。
日志等级约定
- 预期空操作、保护分支或重复抑制路径使用
level=info和status=skipped。 level=error只用于需要兜底、重试、操作员处理或调用方可见错误处理的失败。
故障记录模板
md
## 故障摘要
- 时间:
- 影响范围:
- 现象:
- 根因:
- 处理:
- 验证:
- 后续动作: