Visitorsのストリームモード(Apacheアクセスログ解析)

前に、Linuxサーバ上で、Visitorsを使ったApacheのアクセスログ解析を紹介したのですが、しばらく使ってみて便利な使い方がわかったのでその方法についてまとめます。

Visitorsのストームモードでの起動について

Visitorsには、ストリームモードが存在します。このモードを使えば、指定時間間隔で自動的にログファイルを解析し解析結果を作成してくれます。ストリームモードで実行するには、次のコマンドを実行します。

tail -f /var/log/apache2/access.log | visitors --stream -A --update-every 300 --reset-every 3600 --output-file /var/www/report-stream.html

まず、「tail -f」コマンドでApacheのログをパイプして「visitors」コマンドに渡します。「visitors」コマンドには、以下のオプションを使用します。

–stream
visitorsをストリームモードで起動します。このオプションで起動すると常に標準入力より入力を待ち受けます。「tail」コマンドなどでApacheのログを流し込むことができます。
–update-every
解析結果ファイルを出力するタイミングを指定します。指定する単位は、秒なので300とすると5分ごとに解析結果ファイルを作成します。デフォルトでは、10分ごとに作成することになっているのでこのオプションを省略すると10分ごとに解析結果ファイルが作成されます。
–reset-every
このオプションは、解析結果の情報をリセットするタイミングを指定します。リセットされると、リセット以前の解析結果は、クリアされます。指定する単位は、秒です。デフォルトでは、リセットしない設定になっています。

Visitorsの名前解決について

Visitorsの解析結果にドメインという項目があって、アクセスのあったドメインをjp、net、comなどのドメイン情報ごとに集計し、アクセス件数を表示するのですが、Apacheの設定でログファイルに名前解決をせずにIPアドレスで記録するように指定してある場合に、この項目がうまく表示されません。Apacheの設定ファイル上に「HostnameLookups on」が設定設定されていないと、ログファイルには、IPアドレスを記録するようになっています。パフォーマンスを考えると、普通は、名前解決をするような設定は、しないので「logresolve」を使って名前解決をします。使い方は、次のとおり。

logresolve < /var/log/apache2/access.log > /var/log/apache2/access_resolve.log

このコマンドを使って、Visitorsに読み込ませるログファイルのIPアドレスの名前解決をします。

tail -f /var/log/apache2/access.log | /usr/sbin/logresolve | visitors --stream -A --update-every 300 --reset-every 3600 --output-file /var/www/report-stream.html
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする