在 apache 中显示请求次数最多的 URL

在 apache 中显示请求次数最多的 URL

有什么方法可以显示一段时间内 apache 请求最多的 URL,例如过去 2 小时内请求最多的 URL。

使用 mod_status 可以实现这种事情吗?或者我可以聚合访问日志吗?

答案1

你试过了吗统计分析?它是日志文件分析工具。我不确定它是否能按照您的要求在两小时内为您提供统计数据。

您还可以使用这样的命令来查看日志文件中访问过的页面及其计数。

$ awk {'print $7'} /var/log/apache2/access.log | sort | uniq -c

时间范围取决于日志文件的内容。您可以将其与其他命令(如head和 )结合使用tail

答案2

我刚刚发现阿帕奇这似乎可以完成这项工作。

答案3

goaccess 是我最喜欢的完成这项任务的工具https://goaccess.io/

   WORKING WITH DATES
       Another useful pipe would be filtering dates out of the web log

       The following will get all HTTP requests starting on 05/Dec/2010 until the end of the file.

              # sed -n '/05Dec2010/,$ p' access.log | goaccess -a -

       or using relative dates such as yesterdays or tomorrows day:

              # sed -n '/'$(date '+%d%b%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

       If we want to parse only a certain time-frame from DATE a to DATE b, we can do:

              # sed -n '/5Nov2010/,/5Dec2010/ p' access.log | goaccess -a -

相关内容