美文网首页
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