美文网首页
Nginx日志分析- AWK命令快速分析日志--封禁访问请求最多

Nginx日志分析- AWK命令快速分析日志--封禁访问请求最多

作者: 前浪浪奔浪流 | 来源:发表于2022-08-14 17:07 被阅读0次

Nginx日志常用分析命令示范(注:日志的格式不同,awk取的项不同。下面命令针对上面日志格式执行)

1.分析日志的方法

1)总请求数

cd /usr/local/nginx/logs/
wc -l  access.log |awk '{print $1}'
16625

2)独立IP数

awk '{print $1}' access.log|sort |uniq |wc -l
400

3)每秒客户端请求数 TOP5

awk '{print $6}' access.log|sort|uniq -c|sort -rn|head -5
   8766 "GET
   1854 "POST
      6 "CONNECT

4)访问最频繁IP Top5

awk '{print $1}' access.log|sort |uniq -c |sort -nr |head -5
   2838 27.184.246.180
   2268 172.26.189.214
    576 114.254.0.24
    332 223.72.43.2
    286 27.187.39.122

5)访问最频繁的URL TOP5

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

6)响应大于5秒的URL TOP5

awk '{if ($7 > 5){print $6}}' access.log|sort|uniq -c|sort -rn |head -5

7)HTTP状态码(非200)统计 Top5

awk '{if ($11 != 200){print $11}}' access.log|sort|uniq -c|sort -rn|head -5

8)分析请求数大于50000的源IP

cat access.log|awk '{print $NF}'|sort |uniq -c |sort -nr|awk '{if ($1 >50000){print $2}}'

9)访问次数最多的前十个IP

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10
   2937 27.184.246.180
   2296 172.26.189.214
    594 114.254.0.24
    332 223.72.43.2
    299 27.187.39.122
    174 218.12.19.65
    147 27.187.36.95
    146 27.186.124.88
    143 114.254.0.118
    125 101.18.141.71

sort -nr 按照数字进行降序排序
unqi -c 合并重复行,并记录重复次数。
sort:对IP部分进行排序
head -n 10:取排在前10位的IP

前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不知道哪里的ip屏蔽掉,如下面结果, 如 27.184.246.180 为不知道是哪的则需要屏蔽:

2、屏蔽IP的方法:

在/usr/local/nginx/conf/目录下面,新建屏蔽ip文件,命名为guolv_ip.conf,以后新增加屏蔽ip只需编辑这个文件即可。
加入如下内容并保存:
deny 27.184.246.180;
在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location语句块,需要注意相对路径,本例当中nginx.conf,guolv_ip.conf在同一个目录中。

include guolv_ip.conf;
保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的:

nginx -t
如果配置没有问题,就会输出:

the configuration file /opt/nginx/conf/nginx.conf syntax is ok
configuration file /opt/nginx/conf/nginx.conf test is successful
如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,重载 nginx 配置文件:

service nginx reload

3、注意:

屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问。

//屏蔽单个ip访问
deny IP;

//允许单个ip访问
allow IP;

//屏蔽所有ip访问
deny all;

//允许所有ip访问
allow all;

//屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8

//屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 124.45.0.0/16

//屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
deny 123.45.6.0/24

//如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
//那需要你在guolv_ip.conf中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;

单独网站屏蔽IP的方法,把include guolv_ip.conf; 放到网址对应的在server{}语句块,
所有网站屏蔽IP的方法,把include guolv_ip.conf; 放到http {}语句块。

相关文章

  • Nginx日志分析- AWK命令快速分析日志--封禁访问请求最多

    Nginx日志常用分析命令示范(注:日志的格式不同,awk取的项不同。下面命令针对上面日志格式执行) 1.分析日志...

  • NGINX日志分析

    Nginx日志分析 日志记录: 1.统计日志中访问最多的10个IP(shell中管道越少运行越快) 2.统计日志中...

  • awk分析nginx访问日志

    awk 简介 基本上来说,awk 可以从输入( 标准输入,或一个或多个文件 )中是否存在指定模式的记录( 即文本行...

  • access 日志分析

    log日志分析,Nginx 0.8.5版本access.log日志分析shell命令 大 | 中 | 小 [ 2...

  • 2020-03-24 Nginx访问日志

    1. Nginx访问日志介绍 Nginx软件会把每隔用户访问网站的日志信息记录到指定的日志文件里,供网站提供者分析...

  • centos7 yum安装goaccess

    goaccess是一个日志分析工具,能分析nginx的访问日志,能生成友好的html文件。 goaccess安装 ...

  • 91104-nginx failed(13:Permission

    问题背景 nginx 配置好以后 发现请求不能转发 问题分析 查看Nginx 日志,Linux 日志默认路径 ht...

  • nginx笔记

    出现错误分析步骤 查看日志 nginx命令 热加载nginx nginx -s reload 关闭nginx服务 ...

  • awk分析nginx日志

    用到了几个命令先记录下

  • 19.实战 - 日志分析

    参考 利用Shell进行Web日志分析 nginx或者apache日志统计前十访问的URI Linux比赛 - 实...

网友评论

      本文标题:Nginx日志分析- AWK命令快速分析日志--封禁访问请求最多

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