如何在nginx access.log中找到最常用的用户代理

时间:2014-04-08 17:24:55

标签: nginx log-analysis

为了对抗僵尸网络攻击,我试图分析一个nginx access.log文件来查找哪些用户代理是最常见的,以便我可以找到罪犯并拒绝它们。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

在您的访问日志中尝试这样的操作,替换访问日志的路径,同时请记住,某些日志文件会被压缩并且会创建一个新文件

sudo awk -F" " '{print $1}' /var/log/nginx/access.log | sort | uniq -dc

修改

抱歉,我刚注意到您需要用户代理而不是IP

sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc

要对升序追加| sort -nr进行排序,并限制为10追加| head -10

所以最后的总行数是

sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc | sort -nr | head -10

答案 1 :(得分:1)

获取用户代理

sudo awk -F'"' '/GET/ {print $6}' /var/log/nginx-access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn


awk(1) - selecting full User-Agent string of GET requests
cut(1) - using first word from it
sort(1) - sorting
uniq(1) - count
sort(1) - sorting by count, reversed