【已解决】怎么统计nginx日志中访问ip排名?
- 工作小总结
- 时间:2023-08-07 23:38
- 2325人已阅读
简介
有时候,我们想要统计网站访问的ip以及每个ip访问的次数及可以按照ip访问次数的大小排序,使用什么命令呢?要统计Nginx日志中访问IP的排名,可以按照以下步骤进行操作:打开Nginx的访问日志文件,默认路径为/var/log/nginx/access.log,你可以使用其他任意位置的日志文件。可以使用grep命令找出所有的IP地址,然后使用sort命令进行排序,最后使用uniq-c命令统计重复的
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
有时候,我们想要统计网站访问的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
命令说明:请将日志文件修改成自己的实际地址。
运行后的效果图:
从图中,我们可以看出,不是按照访问次数排序的。
如果你想要实时的访问统计,可以使用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
运行后的效果如下图:
经过上述修改后,命令会首先使用uniq -c命令统计每个IP地址的访问次数,然后使用sort -nr命令对访问次数进行逆序排序,输出结果中访问次数最多的IP地址将位于列表的顶部。
通过排序后,我们就可以将疑似盗链的ip,过滤掉。