【已解决】怎么统计nginx日志中访问ip排名?

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-08-07 23:38
  • 2325人已阅读
简介 有时候,我们想要统计网站访问的ip以及每个ip访问的次数及可以按照ip访问次数的大小排序,使用什么命令呢?要统计Nginx日志中访问IP的排名,可以按照以下步骤进行操作:打开Nginx的访问日志文件,默认路径为/var/log/nginx/access.log,你可以使用其他任意位置的日志文件。可以使用grep命令找出所有的IP地址,然后使用sort命令进行排序,最后使用uniq-c命令统计重复的

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

有时候,我们想要统计网站访问的ip以及每个ip访问的次数及可以按照ip访问次数的大小排序,使用什么命令呢?

要统计Nginx日志中访问IP的排名,可以按照以下步骤进行操作:

打开Nginx的访问日志文件,默认路径为/var/log/nginx/access.log,你可以使用其他任意位置的日志文件。

可以使用grep命令找出所有的IP地址,然后使用sort命令进行排序,最后使用uniq -c命令统计重复的IP数量,例如:

grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log | sort | uniq -c

命令说明:请将日志文件修改成自己的实际地址。

运行后的效果图:

c752c31ffda6c88eb3b3452f19b096fa.png

从图中,我们可以看出,不是按照访问次数排序的。

如果你想要实时的访问统计,可以使用tail -f命令实时监控Nginx日志文件的变化,例如:

tail -f /var/log/nginx/access.log | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | sort | uniq -c

使用上面命令,这样,命令会不断地输出最新的访问IP排名。

如果按照每个ip访问次数,从大到小排序,则可以使用下面命令。

要将访问IP按照访问次数进行排序,你可以使用sort命令的-n选项进行数字排序,同时使用-r选项进行逆序排序。在上述命令的基础上进行修改如下:

grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log | sort | uniq -c | sort -nr

运行后的效果如下图:

71fa2bc23ca90393eb9d785d790ee3c3.png

经过上述修改后,命令会首先使用uniq -c命令统计每个IP地址的访问次数,然后使用sort -nr命令对访问次数进行逆序排序,输出结果中访问次数最多的IP地址将位于列表的顶部。

通过排序后,我们就可以将疑似盗链的ip,过滤掉。

TopTop