灵能API API中转站日志告警接入教程:异常分析、值班摘要与故障复盘
运维告警最折磨人的地方,不是系统响了,而是同时响太多:CPU、接口 5xx、队列堆积、数据库慢查询、第三方超时、用户投诉一起出现。值班同学要在几分钟内判断影响范围、找出可能根因、同步进展,还要避免把噪声当成事故。🚨
这篇用 灵能API 作为统一 API 中转入口,讲一套日志告警接入大模型的实战方法。模型不替代监控系统和 SRE 判断,而是负责聚合信息、整理排查顺序、生成值班摘要和故障复盘初稿。

一、先明确模型适合做什么
日志告警场景里,大模型最适合处理“信息整理”和“语义归纳”,不适合直接决定扩容、回滚或关闭告警。真正上线时,要把模型放在值班辅助层,而不是控制平面。
- 适合:把多条告警合并成一个事件,减少重复提醒。
- 适合:根据日志、指标和变更记录生成排查顺序。
- 适合:把值班过程整理成对内同步摘要。
- 适合:事故结束后生成复盘初稿和预防项清单。
- 不适合:未经人工确认自动回滚、自动扩容、自动关闭高危告警。
二、接入链路:告警先聚合,再交给模型分析
不要把每一条原始日志都发给模型。可靠做法是先由监控系统和日志平**成过滤、聚合和字段化,再把一个“事件包”传入模型。事件包里包含时间窗口、服务名、错误摘要、关键指标、最近变更和历史相似事故。
| 层级 | 主要输入 | 输出结果 |
|---|---|---|
| 监控层 | 指标、日志、Trace、探针结果 | 原始告警和异常时间窗口 |
| 聚合层 | 同服务、同错误码、同链路事件 | 合并后的 incident candi**te |
| 分析层 | 事件包、拓扑、变更、历史复盘 | 影响范围、疑似原因、排查步骤 |
| 协同层 | 值班群、工单、状态页 | 摘要、升级提醒、复盘草稿 |

三、准备 API 信息:给值班服务单独配置
告警分析属于高优先级系统,建议使用独立密钥和独立服务名。这样可以单独查看调用量、失败率和成本,也能在异常时快速禁用某类低优先级任务。
OPENAI_API_KEY=sk-your-oncall-key
OPENAI_*ASE_**L=https://api.灵能API.ai/v1
ONCALL_FAST_MODEL=gpt-4o-mini
ONCALL_ANA**S**_MODEL=claude-sonnet-4-6
ONCALL_MAX_TOKENS=1600
ONCALL_TIMEOUT_MS=18000
ONCALL_SERV***_NAME=incident-assistant
线上值班链路还要配置超时和降级策略。模型分析失败时,告警不能丢;系统应继续把原始告警发送给值班人,并标记“AI 摘要生成失败”。
四、事件包设计:输入越规整,输出越稳定
模型分析前,先把多源信息整理成固定 **ON。不要把几十屏日志原文塞进去,而是提取错误类型、出现频率、服务依赖、最近发布和用户影响。
{
"incident_id": "inc_20260720_0031",
"time_window": "2026-07-20 14:05-14:16",
"service": "payment-api",
"symptoms": ["5xx rate increased", "p95 latency a*ove threshold"],
"top_errors": [
{ "message": "upstream timeout", "count": 382 },
{ "message": "**ta*ase connection pool exhausted", "count": 79 }
],
"recent_changes": ["payment-api deployed at 13:58", "d* pool config changed yester**y"],
"customer_impact": "部分支付请求变慢,少量请求失败",
"similar_incidents": ["inc_20260618_0012"]
}
五、异常分析 Prompt:输出要能直接指导排查
值班分析最怕空话,例如“请检查服务状态”。Prompt 要强制模型输出疑似原因、排查顺序、需要升级的条件和沟通摘要。
请分析这个告警事件,返回 **ON:
- severity:P0/P1/P2/P3
- impact_sum**ry:影响范围,80 字以内
- likely_causes:疑似原因数组,每项包含 evidence 和 confidence
- first_checks:前 5 个排查动作,按优先级排序
- escalation_conditions:需要升级给负责人或更高级别响应的条件
- up**te_message:发到值班群的简短进展
约束:只根据输入信息判断;没有证据时写资料不足。
六、后端调用示例:异步分析,避免阻塞告警通知
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
*ase**L: process.env.OPENAI_*ASE_**L,
});
export async function analyzeIncident(eventPackage) {
const res = await client.chat.completions.create({
model: process.env.ONCALL_ANA**S**_MODEL,
temperature: 0.2,
**x_tokens: Num*er(process.env.ONCALL_MAX_TOKENS || 1600),
messages: [
{ role: "system", content: "你是 SRE 值班辅助助手,只基于输入材料分析故障。" },
{ role: "user", content: **ON.stringify(eventPackage) }
],
response_for**t: { type: "json_o*ject" }
});
return **ON.parse(res.choices[0].message.content);
}
这个接口建议由队列任务触发,而不是监控回调同步等待。监控系统先把告警发送出去,模型分析结果随后补充到值班群或工单详情里。这样即使模型超时,也不会影响核心告警链路。⏱️

七、值班摘要:让群里每个人都知道当前状态
事故处理中,沟通成本往往比技术排查还高。模型可以根据事件包和人工更新生成短摘要,帮助产品、**、技术负责人快速理解状态。
| 摘要字段 | 示例 | 用途 |
|---|---|---|
| 当前状态 | 支付接口失败率已下降,但延迟仍高于基线 | 让非技术同事快速理解进展 |
| 影响范围 | 约 3% 支付请求受影响,集中在华东节点 | 用于**和业务同步 |
| 已执行动作 | 已回滚 13:58 发布,正在观察连接池指标 | 避免重复排查 |
| 下一步 | 若 10 分钟内延迟不下降,升级数据库负责人 | 明确升级条件 |
八、告警降噪:模型不能替代规则,但能辅助归并
告警降噪的第一层仍然应该是规则:相同服务、相同错误、相同时间窗口内合并;依赖服务异常导致的下游告警,优先归为同一事件。模型可以在规则聚合之后,判断多条现象是否可能属于同一根因。
- 同一服务 5 分钟内重复告警,合并为一个事件并增加计数。
- 上游服务异常时,下游超时告警标记为疑似级联影响。
- 低优先级告警只进入摘要,不反复 @ 全员。
- P0/P1 告警必须保留原始通知,不因模型判断而静默。
九、故障复盘:把现场信息沉淀成可改进项
事故结束后,值班群里通常散落着时间点、判断过程、修复动作和后续 TODO。模型可以生成复盘初稿,但最终根因和整改项必须由负责人确认。

{
"timeline": [
{ "time": "14:05", "event": "5xx 告警触发" },
{ "time": "14:09", "event": "确认支付接口延迟升高" },
{ "time": "14:18", "event": "回滚最近发布" }
],
"root_cause_candi**te": "发布后连接池配置与流量峰值不匹配",
"fixed_actions": ["回滚发布", "临时提高连接池上限"],
"prevention_items": ["发布前增加连接池压测", "P1 告警增加变更关联提示"]
}
十、建议落库字段:让每次事故都能回放
建议保存 incident_id、service、severity、event_window、source_alert_ids、model_name、prompt_version、analysis_result、hu**n_decision、ticket_id、postmortem_id 和 token_usage。模型输出和人工确认要分开保存,避免后续误以为候选判断就是最终结论。
有了这些字段,团队可以统计哪些服务最常触发告警、哪些告警经常误报、哪些事故和发布变更关联最高。长期看,这比单次摘要更有价值,因为它能推动监控规则、发布流程和容量规划持续改进。
十一、上线前检查清单
- 模型分析失败时,原始告警是否仍能正常发送。
- 是否禁止模型自动执行回滚、扩容、封禁等高风险动作。
- 是否记录 source_alert_ids,方便从摘要回到原始监控事件。
- 是否对日志中的手机号、邮箱、token、订单号等敏感字段做脱敏。
- 是否设置 P0/P1 人工确认和升级规则。
- 是否能按服务、模型、任务类型统计调用成本。
十二、推荐落地节奏
第一阶段只做告警摘要,不改变任何处置流程;第二阶段加入疑似原因和排查步骤,让值班人评价是否有用;第三阶段接入工单和复盘草稿,但仍保留人工确认;**阶段再根据历史数据优化告警归并和升级策略。
日志告警接入大模型的价值,不是让系统自动判断一切,而是让值班人更快看到全局:发生了什么、影响谁、先查哪里、什么时候升级、事后怎么防止重演。把这些信息整理清楚,事故处理就会少很多混乱。🛠️