Linux服务器大量日志如何快速定位 在生产环境,定位问题,经常会遇到日志文件特别多的情况,经常会遇到日志比较难拿的情况,所以有什么方法可以快速拿日志?除了在代码里很好的
Linux服务器大量日志如何快速定位
在生产环境,定位问题,经常会遇到日志文件特别多的情况,经常会遇到日志比较难拿的情况,所以有什么方法可以快速拿日志?除了在代码里很好的打印关键日志信息外,也需要掌握Linux查看日志的一些实用方法,下面分享一些常用的日志定位方法
通过关键字查找
查看日志,我们可能经常会使用tail
、head
、cat
等命令,不过单纯使用这些命令是很难定位到日志的,所以需要结合其它命令一起使用,比如使用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、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行排查
来自官网的介绍:
官网链接:https://arthas.aliyun.com/doc/