Назад | Перейти на главную страницу

Показать наиболее запрашиваемый URL в apache

Есть ли способ показать наиболее запрашиваемый URL-адрес из apache за определенный период времени, например самый запрашиваемый URL за последние 2 часа.

Возможны ли такие вещи с mod_status, или я могу агрегировать журналы доступа?

Я только что нашел Apachetop который, кажется, выполняет свою работу.

Ты пробовал awstat? Это инструмент для анализа файлов журнала. Я не уверен, что он сможет предоставить вам статистику в течение двух часов, как вы просили.

Вы также можете использовать такую ​​команду для просмотра посещенных страниц и их количества в вашем файле журнала.

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

Сроки будут зависеть от содержимого файла журнала. Вы можете комбинировать это с другими командами, например head и tail.

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 -