Linux服务器大量日志如何快速定位

356 阅读2分钟

Linux服务器大量日志如何快速定位

在生产环境,定位问题,经常会遇到日志文件特别多的情况,经常会遇到日志比较难拿的情况,所以有什么方法可以快速拿日志?除了在代码里很好的打印关键日志信息外,也需要掌握Linux查看日志的一些实用方法,下面分享一些常用的日志定位方法

通过关键字查找

查看日志,我们可能经常会使用tailheadcat等命令,不过单纯使用这些命令是很难定位到日志的,所以需要结合其它命令一起使用,比如使用grep命令定位关键字

cat  log.log | grep "关键字" 
tail  log.log | grep "关键字" 
grep -i "关键字" log.log
sed -n '/关键字/p' 5003.logs > 1.logs

通过时间范围查找

对于时间节点比较确定,可以通过时间段来定位我们需要的日志,可以使用 grep或者sed命令

grep '11:00:00 18:00:00' catalina.out
sed -n '/2022-09-27 14:44/,/2022-09-27 14:54/p' catalina.out > 1.logs

分页查询日志

大量的日志也可以通过分页查询,使用more或者less命令,使用空格键进行翻页

cat -n test.logs  |more

如图所示,按空格键进行翻页 在这里插入图片描述 附录常用操作:

1.全屏导航 ctrl + F - 向前移动一屏 ctrl + B - 向后移动一屏 ctrl + D - 向前移动半屏 ctrl + U - 向后移动半屏 2.单行导航 j - 向前移动一行 k - 向后移动一行 3.其它导航 G - 移动到最后一行 g - 移动到第一行 q / ZZ - 退出命令

通过行数定位日志

第一步,使用grep定位关键字,cat -n打印对应的行数

 cat -n test.log | grep "关键词"

在这里插入图片描述

第二步,通过行数,查找前后的日志

# 查看行数2后面的日志
cat -n catalina.out|tail -n +2

如图,就是查找第三行、第二行后面的数据 在这里插入图片描述 查找前100行数据

cat -n test.logs |head -n 100

在这里插入图片描述 查看日志文件除了最后10行的所有数据

head -n -10 test.logs

通过Arthas排查问题

Arthas是阿里开源的一款线上问题排查平台,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行排查

来自官网的介绍: 在这里插入图片描述

官网链接:arthas.aliyun.com/doc/ 在这里插入图片描述