web-dev-qa-db-ja.com

最もリクエストの多いURLをapacheに表示

時間枠内でApacheから最もリクエストされたURLを表示する方法はありますか?過去2時間で最もリクエストされたURL。

このタイプのことはmod_statusで可能ですか、それともアクセスログを集約できますか?

2
Tom

私はちょうど見つけました apachetop それは仕事をしているようです。

3
Tom

試しましたか awstat ?ログファイルアナライザツールです。あなたが要求したように2時間以内にあなたに統計を提供できるかどうかはわかりません。

このようなコマンドを使用して、訪問したページとログファイル内のその数を確認することもできます。

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

時間枠は、ログファイルの内容によって異なります。これをheadtailなどの他のコマンドと組み合わせることができます。

3
Khaled

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 -
0