• Nginx日志分析和统计


    一、nginx的日志格式

    查看nginx.conf 文件,默认格式如下:

        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

    字段说明

    下面具体看下访问日志的内容:

    223.104.41.37 - - [05/Jul/2022:13:34:20 +0800] "GET /api/book/info?bookId=123 HTTP/1.1" 200 14632 "http://www.zzz.com.cn/archive?bookId=123" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"

    解释:

    远程主机IP地址        访问时间         时区        方法        资源        协议        状态码        发送字节   Referer        浏览器信息

    二、access.log 文件位置

    nginx.conf 中内容:
    access_log  /var/log/nginx/access.log  main;

    说明我们的日志位置在/var/log/nginx 下。

    三、日志分析:

    1、统计前5的访问IP

    1. # awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -5
    2. 7093 183.152.124.55
    3. 3719 218.108.36.18
    4. 1797 115.220.140.234
    5. 1545 112.10.236.137
    6. 1141 183.228.110.80

    2、统计指定某一天的访问IP

    1. # grep "18/May/2022" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -5
    2. 755 112.10.236.127
    3. 358 223.94.216.200
    4. 348 116.30.149.23
    5. 283 140.243.118.204
    6. 270 183.253.242.192
    7. # awk '/18\/May\/2022/ {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -5
    8. 755 112.10.236.127
    9. 358 223.94.216.200
    10. 348 116.30.149.23
    11. 283 140.243.118.204
    12. 270 183.253.242.192

    文件较大的时候,建议先grep再awk,这样速度快很多。

    3、统计指定资源

     处理第7个字段以'.html'结尾的行

    1. # awk '$7 ~ /\.html$/ {print $1,$7,$9}' /var/log/nginx/access.log
    2. 14.104.225.143 /web/common/success.html 200
    3. 219.153.191.189 /web/common/success.html 200
    4. 152.32.189.96 /mtja.html 200
    5. 152.32.189.96 /index.html 200
    6. 152.32.189.96 /login.html 200
    7. 152.32.189.96 /mindex.html 200

    4、过滤URL

    1. $ awk '{print $11}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -5
    2. 12133 "http://www.zzz.com.cn/translation"
    3. 7550 "http://www.zzz.com.cn/applicationAdd"
    4. 4255 "http://www.zzz.com.cn/search"
    5. 2565 "http://www.zzz.com.cn/request"
    6. 2257 "http://www.zzz.com.cn/order"

    5、统计流量

    1. $ grep "03/Jul/2022" /var/log/nginx/access.log | awk '{sum+=$10} END{print sum}'
    2. 54827188

    6、统计状态码

    1. $ awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
    2. 77065 200
    3. 2933 304
    4. 1519 400
    5. 148 405
    6. 106 206
    7. 65 499
    8. 9 173
    9. 5 408
    10. 2 504
    11. 2 404

  • 相关阅读:
    LSP 链路状态协议
    教你基于MindSpore用DCGAN生成漫画头像
    从单机到分布式微服务,大文件校验上传的通用解决方案
    伦敦现货黄金交易市场的历史与地位
    【大数据】es Elasticsearch 时间分组聚合查询
    分布式事务总结
    如何编辑pdf?推荐福昕高级pdf编辑器
    4、HTML——表格标签、表单标签
    数据中心蓄电池监控,这个技术太高级了!
    雷军3小时演讲感受
  • 原文地址:https://blog.csdn.net/icanlove/article/details/125616852