news 2026/4/18 7:57:30

日志排查技巧:快速定位问题的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
日志排查技巧:快速定位问题的方法

日志排查技巧:快速定位问题的方法

线上出问题了,第一反应是什么?看日志!

但日志文件动辄几个G,怎么快速找到想要的信息?今天分享几个实用技巧。

实时查看日志

tail -f 实时跟踪:

tail-f /var/log/app/app.log

日志有新内容会实时显示,按Ctrl+C退出。

只看最后N行:

tail-100 app.log# 查看最后100行

从头看:

head-100 app.log# 查看前100行

grep搜索关键词

最常用的命令,搜索包含关键词的行:

grep"ERROR"app.log

常用参数:

# 忽略大小写grep-i"error"app.log# 显示行号grep-n"ERROR"app.log# 显示前后几行(上下文)grep-A5"ERROR"app.log# 后5行grep-B5"ERROR"app.log# 前5行grep-C5"ERROR"app.log# 前后各5行# 统计出现次数grep-c"ERROR"app.log

搜索多个关键词:

# 包含ERROR或WARNgrep-E"ERROR|WARN"app.log# 同时包含两个词grep"ERROR"app.log|grep"用户"

排除某些内容:

# 排除包含DEBUG的行grep-v"DEBUG"app.log

按时间筛选

日志太多,只看某个时间段的:

# 搜索某个时间点grep"2024-01-15 10:30"app.log# 搜索某个小时grep"2024-01-15 10:"app.log

配合awk更精确:

# 提取10:00到11:00的日志awk'/2024-01-15 10:/,/2024-01-15 11:/'app.log

less分页查看

文件太大,用less一页页看:

lessapp.log

常用操作:

  • 空格:下一页
  • b:上一页
  • /关键词:向下搜索
  • ?关键词:向上搜索
  • n:下一个匹配
  • N:上一个匹配
  • g:跳到开头
  • G:跳到结尾
  • q:退出

日志分析技巧

统计ERROR出现次数:

grep-c"ERROR"app.log

按错误类型分组统计:

grep"ERROR"app.log|awk'{print$NF}'|sort|uniq-c|sort-rn

找出请求最多的接口:

grep"GET\|POST"access.log|awk'{print$7}'|sort|uniq-c|sort-rn|head-10

找出最慢的请求:

# 假设日志格式包含耗时grep"耗时"app.log|sort-t'='-k2 -rn|head-10

多文件搜索

日志按日期分割,需要搜索多个文件:

# 搜索所有日志文件grep"ERROR"/var/log/app/*.log# 递归搜索目录grep-r"ERROR"/var/log/app/

实时监控+过滤

# 实时看ERROR日志tail-f app.log|grep"ERROR"# 实时看多个关键词tail-f app.log|grep-E"ERROR|Exception"# 实时监控多个文件tail-f app.log error.log

压缩日志处理

日志压缩了也能直接搜索:

# 搜索gz压缩文件zgrep"ERROR"app.log.gz# 查看gz文件内容zcat app.log.gz|less

实战案例

案例:找到某个用户的报错

# 第一步:找到用户ID相关的错误grep"ERROR"app.log|grep"用户ID:12345"# 第二步:看上下文grep-C10"用户ID:12345.*ERROR"app.log# 第三步:看这个时间段的完整日志grep"2024-01-15 10:3"app.log|less

案例:统计今天的错误类型

grep"$(date+%Y-%m-%d)"app.log|grep"ERROR"|\awk-F'ERROR''{print$2}'|\cut-d':'-f1|\sort|uniq-c|sort-rn

远程查看日志

服务器在远程,每次SSH上去看日志比较麻烦。

我的做法是用星空组网把电脑和服务器连起来,然后直接tail远程日志:

sshroot@10.26.1.5"tail -f /var/log/app/app.log"|grepERROR

或者用scp把日志拉到本地分析:

scproot@10.26.1.5:/var/log/app/app.log ./

不用跳板机中转,延迟低很多。

常用命令速查

场景命令
实时查看tail -f log
搜索关键词grep "keyword" log
搜索+上下文grep -C 5 "keyword" log
分页查看less log
统计次数grep -c "keyword" log
排除某些行grep -v "DEBUG" log
搜索压缩文件zgrep "keyword" log.gz

小结

日志排查核心技能:

  1. tail -f实时看
  2. grep搜索过滤
  3. less分页浏览
  4. 结合awk、sort做统计

多练几次就熟了,这些命令用得越熟,排查问题越快。

有问题评论区交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:43:37

前端获取IP地址方法总结,零基础入门到精通,收藏这篇就够了

前端获取IP地址有多种方法,可以通过第三方API、WebRTC、服务器代理等方式实现。以下是几种常见的方法及其代码实例。 使用第三方API获取IP地址 第三方API是最简单的方式,通常免费且无需复杂配置。常用的API包括ipify、ipapi等。 fetch(https://api.ip…

作者头像 李华
网站建设 2026/4/18 6:29:05

桌面一直显示“正在启动”!

一次典型的 Data 分区未真正清空导致的启动死锁案例 一、问题概述(Problem) 设备刷入新固件后: 开机一直停留在「手机正在启动」界面 无法进入桌面 adb 可正常连接 系统无明显崩溃(无 FATAL EXCEPTION) Recovery 可进入,但: 无音量键 无法选择 Wipe data/factory …

作者头像 李华
网站建设 2026/4/18 6:27:15

38、Windows 8高级诊断工具全解析

Windows 8高级诊断工具全解析 1. 索引选项 Windows 8索引是一个包含所有文件及其内容的数据库。若该数据库损坏,会导致Windows 8的搜索功能无法正常运行。 - 操作步骤 :在开始屏幕上搜索“indexing”,然后点击“Settings”搜索结果,打开“Indexing Options”对话框。在…

作者头像 李华
网站建设 2026/4/18 5:44:28

‌智慧校园平台性价比评估指南:实用思路与落地方法‌

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/4/18 5:44:18

PCSK9抗体:如何引领血脂管理疗法的技术革命与临床突破?

一、PCSK9靶点的发现为何是血脂管理领域的里程碑?自二十世纪七十年代他汀类药物问世以来,其在降脂治疗领域长期占据主导地位。然而,前蛋白转化酶枯草溶菌素9(PCSK9)的发现开启了血脂管理的新纪元。该蛋白通过结合低密度…

作者头像 李华
网站建设 2026/4/17 6:08:35

NeurIPS 2025最佳论文:Gated Attention,用极小代价换来大模型性能飞跃!

简介 本文介绍Qwen团队提出的Gated Attention机制,通过在Value后添加数据依赖的门控信号,解决Transformer注意力多动问题。该机制使模型能选择性关注重要信息,过滤噪音,提升数值稳定性和隐式稀疏化。参数量增加不到1%却带来显著性…

作者头像 李华