您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

Linux中的日志分析利器:ail grep awk

时间:2023-12-11 13:49:10  来源:微信公众号  作者:FrenziedJavaLand

一个日志查询分析的例子

项目发布上线后,接下来需要做什么?开Party,庆祝项目上线。但是Party开到一半,服务运行出了点问题。领导要你马上调查原因并给出合适的解决办法。项目才刚上线,日志监控系统都还没来得及完善。你该怎么处理?

Linux中的日志分析利器:ail grep awk

登录服务器,查询日志文件定位相关日志,并分析原因。所以在linux服务器上进行日志查询,成为了必备的技能。

于是你登上了服务器,找到了对应服务的日志文件,输入了:

tAIl -f <xx-service>.log

但这只能看最新的日志输出,不能看到过去的某个时间点的日志,或者根据某些特定的字符进行筛选。

于是你输入了命令:

tail -n 20000 <xx-service>.log | grep "ERROR" -A 50 -B 50

查看了最近20000行中出现ERROR的日志并包括其前50行和后50行。

一顿操作后你调查出了具体原因,并给出了问题的解决方法。但是你想调查一下问题出现的频次:

tail -n 2000 <xx-service>.log | grep 'ERROR' | awk '{count++;} END {print "error count:", count}'

随后你分析出了出现问题的更深层次的原因,并出具了根本原因分析报告。

在不具备完善的ELK日志收集分析系统的情况下,日志查询分析只能依靠Linux基础的日志查询分析工具:tail, grep, awk等命令。

tail命令

tail命令用于查看日志文件,常见用法如下:

显示文件的最后10行:

tail <file name>

显示文件的最后200行:

tail -n 200 <file name>

显示文件第200行开始到末尾的内容:

tail -n +200 <file name> 

循环读取文件:

tail -f <file name>

更多tail命令相关的信息,可以通过tail --help命令查看。

grep命令

grep命令用于在一个或多个输入文件中,搜索与正则匹配的行,并将匹配的行标准输出。

在日志查询中,通常用来将tail的输出结果进行过滤日志,常见用法如下:

(1) 显示最近2000行日志中,包含Error(区分大小写)的日志行如包含SystemError,InputError, Error等单词的行

tail -n 2000 <file name> | grep 'Error' 

(2) 显示最近2000行日志中,包含Error单词(区分大小写)的日志行:

tail -n 2000 <file name> | grep -w 'Error' 

-w表示匹配单词。

(3) 如果不区分大小写,则可以用以下命令:

tail -n 2000 <file name> | grep -wi 'Error'

-i参数则表示不区分大小写。

(4) 如果需要显示不包含Error的日志行,则可以用以下命令:

tail -n 2000 postman.log | grep -wiv 'Error'

-v表示对匹配的条件取反.

(5) 如果需要进行正则匹配则可以加入-e参数,-E参数则表示扩展正则匹配

tail -n 2000 postman.log | grep -e '.*Error.*'  
tail -n 2000 postman.log | grep -E '.*Error.*|.*error.*'

(6) -A参数可以包含匹配行的前n行,-B参数则包含匹配行的后n行,上文的提到的命令

tail -n 20000 <xx-service>.log | grep "ERROR" -A 50 -B 50

则表示匹配包含ERROR字符的行,以及前50行和后50行。

更多grep命令相关的信息,也可以通过grep --help命令查看。

awk命令

awk是一个文本处理工具,主要用于数据扫描,过滤,统计汇总等。

awk基本语法则是:

awk '<pattern> {<action>} <pattern> {<action>}...'

上面提到的一个关于awk的命令则是统计了一下日志中出现ERROR字符的行数。

tail -n 2000 <xx-service>.log | grep 'ERROR' | awk '{count++;} END {print "error count:", count}'

更简单的实现方式则可以通过awk的内置变量实现,如列出ls命令输出的结果行数:

ls | awk 'END{print NR}'

END是awk中的一个关键字,后面接的代码块只会在读取完所有数据记录最后执行一次。与之相反的则是BEGIN,后面接的代码块只会在读取数据记录前执行一次。

awk是一个十分强大的文本分析工具,如果有日志分析需求,awk足以应对日常所需。更多关于awk的教程可以自行在网上搜索相关资料,或者查看官网教程:https://www.gnu.org/software/gawk/manual/html_node/index.html

总结

总之,基于linux的日志查询分析,结合tail、grep、awk这三个命令的运用,就完全满足日常的日志分析需求了。tail控制日志查找范围,grep进行关键词筛选,awk用于分析统计。



Tags:Linux   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08  Search: Linux  点击:(3)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  Search: Linux  点击:(13)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  Search: Linux  点击:(6)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25  Search: Linux  点击:(9)  评论:(0)  加入收藏
Linux发行版 Ubuntu 迎更新 界面设计灵感来自 Windows 11
近日,一位第三方开发者推出了一款名为“Wubuntu”的特殊Linux发行版。这款系统源自主流的Ubuntu版本,但在界面设计上却借鉴了微软最新的Windows 11风格,甚至在其中融入了微软标...【详细内容】
2024-02-27  Search: Linux  点击:(41)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27  Search: Linux  点击:(47)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  Search: Linux  点击:(49)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01  Search: Linux  点击:(74)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  Search: Linux  点击:(65)  评论:(0)  加入收藏
如何使用PHP SSH2模块执行远程Linux命令
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。下面我将为大家详细介绍一下该扩展的...【详细内容】
2024-01-26  Search: Linux  点击:(98)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(3)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(13)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(6)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(9)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(51)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(47)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(49)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(74)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(65)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(84)  评论:(0)  加入收藏
站内最新
站内热门
站内头条