美文网首页
Linux使用awk命令进行日志分析

Linux使用awk命令进行日志分析

作者: 皮蛋馅儿 | 来源:发表于2020-04-07 16:40 被阅读0次

AWK是一种处理文本文件的语言,可以对数据分析并生成报告,是一个强大的文本分析工具。
简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
这里主要介绍的是利用awk进行日志分析,比如QPS高峰和低峰等

基本用法:
假设app.log日志内容如下:

127.0.0.1 - - 2020/04/07+16:21:01 "GET /index/abc" 200
127.0.0.1 - - 2020/04/07+16:21:01 "GET /index/abc" 200
127.0.0.1 - - 2020/04/07+16:21:02 "GET /index/aaa" 200
127.0.0.1 - - 2020/04/07+16:21:03 "GET /index/bbb" 404

实例:

# 每行按空格或TAB分割,输出文本中的1、4项
 $ awk '{print $1,$4}' app.log
 ---------------------------------------------
127.0.0.1 2020/04/07+16:21:01
127.0.0.1 2020/04/07+16:21:01
127.0.0.1 2020/04/07+16:21:02
127.0.0.1 2020/04/07+16:21:03

# 根据时间去重和统计(uniq -c)求QPS值,并排序(sort -n从小到大,sort -r从大到小)
$ cat app.log | awk '{print $4}' | uniq -c | sort -n
 ---------------------------------------------
1 2020/04/07+16:21:02
1 2020/04/07+16:21:03
2 2020/04/07+16:21:01(代表当前时间点请求的QPS最高是2)

# 如果要具体到某个API接口,比如abc接口
$ cat app.log | grep 'abc' | awk '{print $4}' | uniq -c | sort -n
 ---------------------------------------------
2 2020/04/07+16:21:01

加我微信公众号:\color{red}{皮蛋馅儿},定期更新文章,一起学习哦~

相关文章

网友评论

      本文标题:Linux使用awk命令进行日志分析

      本文链接:https://www.haomeiwen.com/subject/wjenphtx.html