程序员如何做「日志分析」:不是看日志,是找线索
日志是系统的眼睛。
但大多数人的日志只是"存着",从来没有被分析过。
一、为什么要分析日志
1. 问题排查
出问题了,日志能告诉你哪里出了问题。
2. 性能分析
慢在哪里?瓶颈在哪?日志能告诉你。
3. 用户行为
用户怎么用你的系统?日志能告诉你。
4. 安全监控
谁在访问?有没有异常?日志能告诉你。
二、日志分析的方法
1. 关键词搜索
grep / grep -E
找出包含关键词的行。
2. 模式匹配
用正则提取特定格式的日志。
如:提取所有错误日志、提取某个用户的请求。
3. 统计分析
统计某个字段的出现频率。
如:哪个接口报错最多?哪个用户的请求最多?
4. 链路追踪
根据请求 ID 串联所有日志,看完整的请求链路。
三、日志分析的步骤
1. 确定目标
要查什么问题?找什么信息?
2. 确定时间范围
缩小范围,减少数据量。
3. 确定关键词
用什么关键词过滤?
4. 分析结果
看日志内容,找线索。
5. 得出结论
根据日志内容判断原因。
四、日志分析的常用命令
# 搜索关键词
grep "error" app.log
# 多关键词
grep -E "error|fail" app.log
# 显示上下文
grep -C 3 "error" app.log
# 统计出现次数
grep "error" app.log | wc -l
# 提取特定字段
awk '{print $5}' app.log
# 按字段统计
cat app.log | awk '{print $7}' | sort | uniq -c | sort -nr
# 实时监控
tail -f app.log
# 按时间范围
sed -n '/2024-01-01 10:00:00/,/2024-01-01 11:00:00/p' app.log
五、日志分析的工具
1. 命令行
grep、awk、sed——熟练掌握,效率翻倍。
2. ELK(Elasticsearch + Logstash + Kibana)
日志收集、存储、搜索、可视化。
3. Loki
轻量级日志系统,适合 Prometheus 生态。
4. Sentry
应用异常日志收集。
六、一句话总结
日志分析 = 确定目标 + 确定时间 + 确定关键词 + 分析结果,命令行工具 + ELK/Loki。