美文网首页
Nginx日志生产环境实用

Nginx日志生产环境实用

作者: 阿当运维 | 来源:发表于2020-08-19 16:58 被阅读0次

通过 Nginx 日志,可以简单分析 WEB 网站的运行状态、数据报表、 IP、 UV(uniquevisitor)、 PV(page view)访问量等需求,如下为常用需求分析:(awk的$多少是看日志中所需要的字段的位置)

1.过滤出2020,8,19日11:00到11:03分这个时间段的 访问日志

sed -n "/19\/Aug\/2020:11:00/,/19\/Aug\/2020:11:03/"p shoutao_acc.log
image.png
  1. 在上面的基础上 统计这时候 有多少IP访问了网站。(sort 排序 uniq 去重 -c 显示出现的次数)
# sed -n "/19\/Aug\/2020:11:00/,/19\/Aug\/2020:11:05/"p shoutao_acc.log|awk '{print $1}'|sort -r|uniq -c|wc -l
59

3.筛选出指定时间访问了网站的IP列表以后,找出出现次数大于2次的IP
(首先在 uniq -c以后打印出来就是 次数 IP 。这时候在用awk使用判断if $1也就是代表次数>=2的就打印出来IP)

 1 223.73.203.215
 1 223.104.63.187
 3 221.4.34.214
[root@iZ25nlvvt0jZ nginx]# sed -n "/19\/Aug\/2020:11:00/,/19\/Aug\/2020:11:05/"p shoutao_acc.log|awk '{ print $1}'|sort -r|uniq -c|awk '{if($1>=2) print $2}'

4.统计 Nginx 服务器总 PV 量。(一共被访问了多少次)

cat  access.log |wc -l

6.截止目前为止访问量前 20 的 IP 列表(sort -n 升序,sort -r降叙)

awk '{print $1}' shoutao_acc.log|uniq -c|sort -r|head -n20
      8 223.104.102.206
      7 49.4.43.17
      6 139.226.74.73
      5 223.104.102.206
         。。。。。

7.分析 Nginx 访问日志早上 9 点至中午 12 点的总请求量。(时间根据自己的日志时间格式去做就好)

sed -n "/2016:09:00/,/2016:12:00/"p access.log
awk '/2017:09:00/,/2017:12:00/' access.log|wc –l

8.分析 Nginx 访问日志状态码 404、 502、 503、 500、 499 等错误信息页面,打印错误出现次数大于 20 的 IP 地址。(9代表日志中用awk以空格分隔 状态码 的那一段,1是IP,这个要看日志输出的格式)

awk '{if ($9~/502|499|500|503|404/) print $1,$9}' access.log|sort|uniq

9.分析 Nginx 访问日志访问最多的页面

awk '{print $7}' access.log |sort |uniq -c|sort -nr|head -20

10.分析 Nginx 访问日志请求处理时间大于 5 秒的 URL,并打印出时间、 URL、访客IP。

awk '{if ($NF>5) print $NF,$7,$1}' access.log|sort -nr|more

总结:在输出的日志内容中,充分利用好sed ,awk,进行筛选,切割所想要的部分,再配上awk的判断if,最后将输出结果在按需求进行排序,去重,统计,要注意顺序。(再哪段输出结果中)在进行排序去重不要搞混

相关文章

网友评论

      本文标题:Nginx日志生产环境实用

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