当前位置: 首页 > news >正文

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

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

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

但日志文件动辄几个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做统计

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

有问题评论区交流~

http://www.cnnetsun.cn/news/81684.html

相关文章:

  • Dify平台提示词调试功能提升AI输出质量实测
  • Java JDK下载+安装+配置环境(详细教程含图片),小白收藏这篇就够了
  • 前端性能优化之大文件上传,零基础入门到精通,收藏这篇就够了
  • 37、Windows 8 安全与诊断实用指南
  • 蛋白质丙酰化修饰在代谢调控与疾病研究中的进展与应用
  • C# + LiveCharts 工业监控界面,实时数据可视化实战
  • 在数字中国建设大潮中,科技管理部门如何借助靶向的知识产权智能运营平台解决客户流失率高,达成重塑差异化服务优势,最终重塑健全长效运营机制?
  • 如何确保服务器的安全性
  • 获取JD商品详情数据 get_item_pro
  • 提权学习之旅—Windows操作系统如何提升权限,网络安全零基础入门到精通实战教程!
  • Directus:重新定义企业数据管理的开源革命
  • RAX3000M刷机终极指南:从零开始玩转OpenWrt系统
  • 软件产品设计中用户体验提升的主要问题分析
  • Typst数学排版终极指南:告别对齐困扰,打造完美公式
  • 22、企业环境下迁移 Windows 应用到 Linux 及瘦客户端计算的全面解析
  • 24、探索瘦客户端计算与Linux桌面资源
  • IT66122FN-300:低功耗发射器,配备HDMI 1.4 3D
  • uniapp+springboot微信小程序民宿预订管理系统设计与实现_337b01q6_论文
  • 第135篇:美国APT的苹果手机“三角测量“行动是如何被溯源发现的
  • 高效节能的工业动力核心:西门子罗宾康高压变频器LDZ14501000.070
  • CosyVoice语音合成实战指南:从零到一掌握微调全流程
  • 使用 Coze MCP 插件 + curl 调用工具生成高质量提示词示例
  • 5个Apache Weex渲染性能提升技巧:终极优化指南
  • 271. Java Stream API - 理解 Java Stream 的流水线模型:中间操作 vs 终端操作
  • 生成对抗网络:从代码到创意的商业变现指南
  • 【R与Python函数调用适配全攻略】:掌握跨语言协作的5大核心技术
  • R与Python库版本同步实践全解析(20年专家亲授避坑手册)
  • 心法利器[147] | Agent,是大模型落地的殊途同归
  • 金融风险管理实战(R语言蒙特卡洛模拟大揭秘)
  • 帮我推荐短视频seo电话