Nginx日志分析

nginx日志信息 意义 列数
$remote_addr 客户端IP 1
$time_local 请求时间 4
$request 请求的内容 7
$status 状态码 9
$body_bytes_sent 请求内容的大小 10

Nginx日志统计

  1. 统计网站的PV量

    # 统计 2020年6月9日 的PV量
    pi@raspberrypi:/usr/local/nginx/logs $ grep '09/Jun/2020' access.log | wc -l
    17
    # 统计 2020年6月9日12点到15点 的pv量
    pi@raspberrypi:/usr/local/nginx/logs $ awk '$4>="[09/Jun/2020:12:00:00" && $4<="[09/Jun/2020:15:00:00"' access.log | wc -l
    14
  2. 统计 2020年6月27日 一天内访问最多的5个IP

    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{ips[$1]++} END{for(i in ips){print i, ips[i]}}' shuaiguoer.com.log | sort -k2rn | head -n5
    43.227.136.44 117
    47.240.21.20 114
    81.68.128.209 98
    43.227.138.118 31
    147.78.65.160 8
  3. 统计 2020年6月27日 访问大于10次的IP
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{ips[$1]++} END{for(i in ips){if(ips[i]>10){print i, ips[i]}}}' blog.shuaiguoer.com.log
    43.227.138.118 166
    43.227.136.44 287
    123.178.166.39 12
    65.154.226.109 42
  4. 统计 2020年6月27日 访问最多的3个页面
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{urls[$7]++} END{for(i in urls){print i, urls[i]}}' shuaiguoer.com.log | sort -k2rn | head -n3
    /tieba/do.php?donnot_sign_multith&in_thread&pw= 212
    /favicon.ico 99
    / 46
  5. 统计 2020年6月27日 每个URL访问内容的总大小
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{size[$7]+=$10} END{for(i in size){print i,size[i]}}' shuaiguoer.com.log | sort -k2rn | head 
    /favicon.ico 53866
    / 35051
    /tieba/do.php?donnot_sign_multith&in_thread&pw= 31368
    /wp-login.php?action=register 1972
    /1002Shuai-%E5%BF%85%E7%84%B6%E7%9A%84%E5%B7%A7%E5%90%88%EF%BC%81 1752
    /build 1096
    /mailx/ 694
    /install.php 548
    /.well-known/acme-challenge/_5MOCeYu-i_q2bPqQHYgxxbD98qdeHaCAM0t1b7a39U 348
    /robots.txt 292
  6. 统计 2020年6月27日 每个IP访问状态码数量(取前10)
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{ip_code[$1"   "$9]++}END{for(i in ip_code){print i,"  "ip_code[i]}}' shuaiguoer.com.log | sort -k1rn | head 
    192.241.226.178   301   1
    179.43.169.182   200   2
    147.78.65.160   404   8
    118.31.111.216   404   1
    104.248.124.93   200   1
    101.91.62.89   404   1
    101.89.239.120   200   1
    81.68.128.209   301   26
    81.68.128.209   404   72
    77.75.78.171   404   1
  7. 统计 2020年6月27日 IP访问状态码为404的及出现次数
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/{if($9=="404"){ip_code[$1"   "$9]++}}END{for(i in ip_code){print i,"  "ip_code[i]}}' shuaiguoer.com.log | sort -k3rn | head 
    47.240.21.20   404   114
    43.227.136.44   404   93
    81.68.128.209   404   72
    43.227.138.118   404   18
    147.78.65.160   404   8
    66.249.79.179   404   2
    101.91.62.89   404   1
    118.31.111.216   404   1
    61.129.6.174   404   1
    61.151.178.174   404   1
  8. 统计前一分钟的pv量
    [root@shuai wwwlogs]# date=`date -d '-5 minute' +%d/%b/%Y:%H:%M`; awk -v date=$date '$0 ~ date{i++} END{print i}' shuaiguoer.com.log 
    2
  9. 统计 2020年6月29日 20:00 ~ 21:00,访问状态码是404的ip和次数
    [root@shuai wwwlogs]# awk '$4>="[29/Jun/2020:20:00:00" && $4<="[29/Jun/2020:21:00:00" {if($9=="404"){ip_code[$1"   "$9]++}} END{for(i in ip_code){print i,"  "ip_code[i]}}' shuaiguoer.com.log
    219.139.135.2   404   1
    147.78.65.160   404   2
    116.202.13.69   404   1
  10. 统计 2020年6月29日 各种状态码数量
    [root@shuai wwwlogs]# awk '/27\/Jun\/2020/ {code[$9]++} END{for(i in code){print i,code[i]}}' shuaiguoer.com.log
    301 29
    304 18
    200 30
    404 313
Last modification:July 23rd, 2020 at 03:36 pm
如果觉得我的文章对你有用,请随意赞赏