凌晨 3 点的报警:我是怎么 5 秒定位根因的

0 阅读3分钟

凌晨 3 点的报警:我是怎么 5 秒定位根因的

如果你做过运维或者后端开发,大概率经历过这种场景。

凌晨 03:12

手机突然震动。

【监控报警】

服务:payment-service
告警:ERROR 日志激增

你从睡梦中醒来,第一反应通常是:

系统是不是挂了?

于是你打开电脑,开始排查。


一、值班工程师的日常

很多工程师都经历过类似的值班夜晚。

典型流程通常是这样:

第一步

打开日志系统:

ELK
Loki
Kibana

第二步

输入关键词:

ERROR
Exception
Timeout

第三步

开始翻日志。

看到的通常是这样:

2026-03-08 03:12:01 ERROR GlobalExceptionHandler
java.lang.RuntimeException: payment timeout

往下翻:

2026-03-08 03:12:02 ERROR GlobalExceptionHandler
java.lang.RuntimeException: payment timeout

再往下:

2026-03-08 03:12:03 ERROR GlobalExceptionHandler
java.lang.RuntimeException: payment timeout

几百行日志。

问题来了:

到底发生了什么?

二、值班工程师真正关心的三件事

其实值班工程师只需要判断三件事:

1 是否系统故障?

还是只是:

业务异常

2 是否影响用户?

例如:

服务是否不可用
请求是否失败

3 是否需要立即处理?

可能需要:

马上修复

也可能只是:

观察

但这些信息通常都藏在日志里。


三、为什么排查日志这么慢

原因其实很简单。

1 日志太多

线上系统一旦出现异常,很容易产生:

几百行甚至上千行日志

2 信息太杂

一段异常日志通常包含:

ERROR
StackTrace
框架日志
业务日志

真正有用的信息可能只有 一两行


3 需要人工总结

工程师必须从日志中提取:

异常类型
根因
影响范围

然后才能做出判断。


四、如果日志可以自动总结呢?

我一直在想一个问题:

日志 → 能不能自动生成结论?

所以我做了一个开源工具:

Incident Community

它做的事情非常简单:

上传日志 → 自动生成事故报告

五、AI 自动分析结果

例如一段日志:

BusinessException: 该业务功能已绑定流程

系统生成的事故报告:

🚨 Incident Report

Service: xfxk-oa-server
Environment: production

Severity: P3

Root Cause
BusinessException triggered by business rule.

Impact
No system failure detected.

Recommendation
No immediate action required.

核心信息只有两句话:

结论:业务异常
动作:无需处理

值班工程师 5 秒就能判断情况


六、事故复盘也能自动生成

系统还可以生成完整事故报告:

# Incident Report

## Incident Summary
Service: payment-service  
Environment: production  

## Root Cause
Database connection timeout.

## Impact
Payment requests failed for 3 minutes.

## Recommendation
Increase database connection pool size.

支持导出:

Markdown
HTML
PDF

方便:

事故复盘
团队知识库
技术博客

七、为什么做这个项目

很多团队每天都在重复做一件事:

翻日志
写事故报告

如果这些事情可以自动化:

排查效率会提高很多

所以我做了这个项目:

Incident Community


八、项目地址

开源项目:

github.com/LukeGitHub-…


核心功能:

日志上传分析

支持:

日志文件
文本日志

自动异常识别

识别:

Exception
Error
Timeout
Database errors

自动生成事故报告

报告包含:

事故概述
根因分析
影响范围
修复建议

多格式导出

支持:

Markdown
HTML
PDF

九、总结

很多线上事故排查的时间,其实都花在:

翻日志

如果日志可以自动生成结论:

排查效率会提高很多

如果你也经历过:

凌晨被报警吵醒
翻几百行日志
不知道问题严不严重

可以看看这个项目:

github.com/LukeGitHub-…

如果觉得有帮助,欢迎给一个 ⭐ Star。