news 2026/3/7 21:48:27

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

作者头像

张小明

前端开发工程师

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/3/5 0:23:37

Dify平台提示词调试功能提升AI输出质量实测

Dify平台提示词调试功能提升AI输出质量实测 在当前大模型技术飞速发展的背景下,企业对AI应用的期待早已超越“能说会道”的初级阶段,转向稳定、可控、可维护的生产级系统。然而现实是,许多团队仍困于“调Prompt靠猜、改逻辑全靠重写”的手工模…

作者头像 李华
网站建设 2026/3/5 9:16:45

前端性能优化之大文件上传,零基础入门到精通,收藏这篇就够了

前端开发者必知的AI核心概念与技术栈全解析 前言 随着AI技术的快速发展,前端开发者需要了解和掌握相关的AI概念和技术栈,以便更好地将AI能力集成到前端应用中。本文将系统性地总结前端开发者需要了解的AI核心概念、技术栈和实际应用场景。 一、AI基础…

作者头像 李华
网站建设 2026/3/6 16:58:24

37、Windows 8 安全与诊断实用指南

Windows 8 安全与诊断实用指南 1. 密码最佳实践 在当今数字化时代,密码安全至关重要。不同长度和字符组合的密码,其被破解的时间差异巨大。以下是不同字符数量和类型的密码被计算机破解所需的时间: | 字符数量 | 仅数字 | 大写或小写字母 | 大小写字母混合 | 数字、大小写…

作者头像 李华
网站建设 2026/3/4 1:26:10

蛋白质丙酰化修饰在代谢调控与疾病研究中的进展与应用

一. 蛋白质丙酰化:一种新兴的赖氨酸酰化修饰蛋白质翻译后修饰是调控蛋白质功能、细胞信号转导和基因表达的关键机制。近年来,除了广泛研究的乙酰化、磷酸化和泛素化外,赖氨酸丙酰化作为一种新型酰化修饰逐渐引起关注。丙酰化是指在蛋白质赖氨…

作者头像 李华
网站建设 2026/3/7 19:50:18

C# + LiveCharts 工业监控界面,实时数据可视化实战

前言C# 开发中是否曾为一个既美观又实用的工业监控系统而苦恼?传统 WinForm 在现代 UI 需求面前已显力不从心,而企业对数据可视化的要求却日益提升。本文将带大家使用 WPF LiveCharts 技术栈,开发一套专业级、高颜值、高性能的工业监控界面。…

作者头像 李华