#author("2023-06-04T19:17:35+00:00","default:mogamin","mogamin")
* Windows+Visitorsでアクセスログ解析 [#gdf01227]

|この記事を書いたのは 2014/06/24 です|

Windows環境にApacheアクセスログ解析の Visitors を導入したので、インストール~使用開始までの色々を書いておきます。

*** 参考記事 [#e407c21b]

1秒で10万行を処理するフリーの超高速なログ解析ソフト「Visitors」 - GIGAZINE
http://gigazine.net/news/20070305_visitors/

** 物資調達 [#md5996a7]

:C言語のコンパイラ | Visitors本体はソースコードで配布されているのでコンパイルが必要です。Visual Studio Express や MinGW などをインストールしておきます。

:Visitors | [[公式サイト:http://www.hping.org/visitors/index_jp.php]]((記事移植時点でリンク切れ。[[Archive:https://web.archive.org/web/20220604091506/www.hping.org/visitors/index_jp.php]] から一応まだダウンロードできる。)) "Download Source Code" の下辺りにある `visitors-0.7.tar.gz` をダウンロード。

** コンパイルとインストール [#cfc66782]

ダウンロードしたら適当な作業フォルダに解凍し、コンパイルが通るように各ファイルを書き換えます。
[[ARCANAさんの記事:http://etwas.wolfish.org/blog/p2007041401/]]を参考に以下はVisual C++ 2008 Expressでコンパイルしたときの修正箇所。

*** tail.c [#z6f16a32]

 --- visitors_old/tail.c 2006-03-31 00:31:49 +0900
 +++ visitors_new/tail.c 2014-05-30 22:37:13 +0900
 @@ -1,6 +1,6 @@
  #include <stdio.h>
  #include <stdlib.h>
 -#include <unistd.h>
 +#include "unix2win.h"
 
  #include "sleep.h"

*** visitors.c [#z483f097]

 --- visitors_old/visitors.c 2006-03-31 00:31:49 +0900
 +++ visitors_new/visitors.c 2014-05-30 22:48:22 +0900
 @@ -14,9 +14,11 @@
  #include <locale.h>
  #include <ctype.h>
 +#include "unix2win.h"
 
 -#include "aht.h"
 -#include "antigetopt.h"
 +#include "aht.c"
 +#include "antigetopt.c"
 +#include "tail.c"
  #include "sleep.h"
  #include "blacklist.h"

*** unix2win.h (新規) [#k9287432]

 #define snprintf    _snprintf
 #define vsnprintf   _vsnprintf
 #define strcasecmp  strcmpi
 #define strncasecmp strnicmp
 #define ssize_t     int
 #define inline      __inline
 #include <io.h>
 #define off_t       _off_t
 #define read        _read
 #define WIN32

clでコンパイル

 cl visitors.c

visitors.exe を適当な場所に設置してインストール完了です。

** 使ってみる [#n8d29fa4]

 visitors -A access.log -o html > report.html

日毎のアクセス数やReferer、User-Agentなどが集計されたテーブルが出力されます。

パラメータ一覧はパラメータなしでvisitorsを実行。
使い方や活用法などは上の方で紹介したGIGAZINEさんの記事に詳しいです。

定期実行はコマンドをbatにまとめてタスクスケジューラにbatを登録。

daily.bat:
 @echo off
 visitors -A -m 40 access.log -o html --trails --prefix http://example.com > report.html


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS