回答:
必要な情報はすべてログにあるため、AWStatsなどのログアナライザーを確認する必要があります。もう1つのオプションは、Googleアナリティクスを使用することです。
ログを分析するための大まかな例を次に示します。これは、ログファイルがコマンドラインから報告するトラフィックのMB数を示すために使用できます。
cat /var/log/apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'
Awstatsはこれを行う1つの方法ですが、おそらく最良ではありません
すばらしいApacheログメカニズムと、あまり知られていない%Iおよび%Oフラグを使用することをお勧めします。
形式を定義します。
LogFormat "%t%a%v%U%q%I%O" IOFormat
メインのhttpd.confで使用します:
CustomLog /var/log/apache2/all-bw.log IOFormat
値はおそらくすべてのヘッダー情報を考慮しているわけではありませんが、VirtualHostトラフィックを正確に把握するためには非常に正確です。
perlスクリプトを使用してログをスキャンし、n分(たとえば5)ごとに仮想ホストごとに集計し、これをcactiに送信します。
これらのフラグはmod_logioによって提供されます。mod_logioはおそらくApacheに組み込まれています(私のDebianのApache用)。
Apacheでawstatsを使用することにした場合、そのまま使用すると、サーバー全体の帯域幅の合計が表示されます。
仮想ホストごとに帯域幅を確認するには、vloggerをインストールすることをお勧めします。
Vloggerは実際には、個別のディレクトリ/ファイルで設定する仮想ホストごとにApacheアクセスログ情報を収集します。
たとえば、Apacheログファイルが/ var / log / apache2にある場合、通常のvloggerインストールでは、仮想ホスト(vhost1.com vhost2.comなど)に対して次のようなものが作成されます。
/var/log/apache2/vhost1.com/access.log
/var/log/apache2/vhost2.com/access.log
Vloggerには、これらのログをローテーションするオプションがあり、アクセスログファイルの名前付けテンプレートを変更する(たとえば、日付を追加する)方法を提供し、Apacheよりも多くのログファイルを処理できると主張しています。
これの1つの欠点は、集約されたサーバービューがもうないということです(ログを個別に集約する必要があるか、追加のApache設定または他の方法を使用する必要があるでしょうか?)。
クライアントによるJavaScript経由のレポートに依存しているため、サーバー帯域幅の監視にGoogleアナリティクス(またはJavaScriptベースの追跡)を使用しないように注意します。GAは、JavaScriptを無効にしているユーザーや、クローラー/スパイダー/ボットを報告しません。
Xerxesが提案するログ形式を解析するための正規表現を次に示します。
\ [([0-9] +)/(\ w +)/([0-9] {4})[^ \]] + \] \ s(\ d {1,3}。\ d {1、 3}。\ d {1,3}。\ d {1,3})\ s([^ /] +)[^ \ s] + \ s(\ d +)\ s(\ d +)
ログの例:
[12 / Jan / 2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12 / Jan / 2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12 / Jan / 2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12 / Jan / 2011:14:25:04 +0000] 157.157。 12.206 files.hjaltijakobsson.com /icons/compressed.gif 693 188 [12 / Jan / 2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com /favicon.ico 592 512
一致:
サブパターン1(月の日):12
サブパターン2(
略月):1月
サブパターン3(年):2011
サブパターン4(訪問者ホスト):157.157.12.206
サブパターン5(仮想ホスト):files.hjaltijakobsson.com
サブパターン6(着信バイト):581
サブパターン7(発信バイト):669
乾杯。
実際にサーバー上に複数の仮想ホスト(したがって、複数のsite.com.access_log)があると仮定して、受け入れられた回答を少し調整します。これにより、各仮想ホストがソートおよびリストされます
for f in *.access_log ; do echo `awk '{SUM+=$10}END{print SUM/1024/1024}' $f` $f ; done | sort -rn | more
およびgzip圧縮されたログのディレクトリ用
for f in *.access_log.*.gz ; do echo `zcat $f|awk '{SUM+=$10}END{print SUM/1024/1024}'` $f `stat -c%z $f`; done | sort -rn | more