如何统计日志中每个url的请求次数

2022-03-08  本文已影响0人  丿灬尘埃

以前上线经常关注日志文件中error的情况,那么对于这种简单的想查看上线瞬间是否有服务报错应该怎么操作呢。

如果日志文件名成为: app_20220308.log
查看上线过程中日志是否有error
tail -f app_20220308.log | grep error
会用到 tailgrep 2个命令
简单说下这2个命令吧

tail:用于查看文件的内容

grep: 命令用于查找文件里符合条件的字符串。

那么此时当你好好的ip1上观察日志情况的时,你老板来了,对你说,‘比卡丘,去,统计下昨天各个接口访问量是多少’,那么此时你可能默默的打开百度了,正好看到我的文章了,兄弟来,我们造作起来

先直接告诉你答案

grep  api  app_20220307.log | awk -F\" '{print $2}' | sort | uniq -c | sort -n -r

这句话的意思你,我要查询文件名为app_20220307.log中包含api的日志,对于每一行符合要求的数据,用进行分割,分割后取第二个字符,进行统计,然后对于其结果集,进行排序

咱们来一个命令一个命令解释下
grep: 上文已经说过了不在赘述了

akw 这个可是linux的三剑客之一,重头戏,压轴了

sor:用于将文本文件内容加以排序。sort 可针对文本文件的内容,以行为单位来排序。

//假如目前统计出来的结果是这样的
123  /api/url
567  /api/name
233 /api/age

那么 sort -n之后是

123  /api/url
233 /api/age
567  /api/name

uniq:用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。uniq 可检查文本文件中重复出现的行列。

awk:是一种处理文本文件的语言,是一个强大的文本分析工具。
具体语法为:

awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)

这个命令有兴趣可以自学下,比较强大,对于日常日志分析有很大帮忙
简单介绍下本文用到的一些基础

注意: 在没有-F 时,按照默认空格分割,各个$含义如下:
$0 就是整个记录行
$1 就是第一个字符
$4 就是第4个字符
现在可以搞定你老板的需求了,兄弟看你的了

上一篇下一篇

猜你喜欢

热点阅读