WEBのログを解析するフリーなソフト

| | コメント(0) | トラックバック(0)

WEBのログを解析するフリーなソフトをいくつか調べてみました。

個人的には定番の「Webalizer」や「Analog」がいいな。

生ログから必要なレコードを抽出するには、「ApacheLogViewer」もいいと思います。
ある程度条件が限られますが。

Webalizer

・Home of The Webalizer
http://www.mrunix.net/webalizer/

私が普段使っているログ解析ツール。
レポートをHTMLに吐き出します。
Apacheの「Common Logfile Format」「Combined Logfile Format」に対応。
また、「wu-ftpd xferlog FTP」と「squid」にも対応しています。
Linux、FreeBSD、Windows、MacOS他に対応しています。

「Webalizer V2.01-10」を使っています。
2002/04/16が最後のリリース。しばらくいじられてないみたい。

コマンドツールなので少し使いにくいかもしれない。

設定

設定ファイルをエディタで書き換える必要があります。
設定ファイルの書き方は Apacheメモ (www.hyperdyne.co.jp) が詳しいです。

日本語化

PC-UNIX向けの日本語化パッチは沢山存在しますが、日本語化されたWindowsバイナリも存在しました。

...pudding - tools - webalizer (moriya.xrea.jp) からダウンロードできます。
Cygwinを使ってWindows上でコンパイルする方法の説明もありました。
今までインストールしてあった英語のに上書きコピーしました。

Webalizer V2.01-10 (CYGWIN_NT-5.1 1.3.10(0.51/3/2)) English

Webalizer V2.01-10 (CYGWIN_NT-5.1 1.3.10(0.51/3/2)) Japanese

になりました。
英語版(990kB)と日本語版(433kB)で、バイナリサイズが倍くらい違うんだなぁ。
Windows版は、DNSの逆引きが出来なかったはず。

検索語の日本語対応 (2004/06/18 追記)

・webalizerの検索語の日本語対応の話
http://tyche.pu-toyama.ac.jp/~a-urasim/webalizer/
を見ました。

ログからどのようなキーワードで検索されたか表示されるのだけど、日本語に対応していないためきちんと表示されないという話。
「apacheのエスケープする"\x16進数"もデコードし、漢字コード(utf-8, sjis, euc-jpのどれかのみ)を推定して EUC-JPに変換するパッチ」を作成しRPMパッケージがダウンロードできるようになっています。

Windows版でもなんとかならないかな。
そのうち調べよう。 調べました(後述)。

また、検索検索エンジンに関係する「webalizer.conf」の設定方法についても記述がありました。

また、/etc/webalizer.confで、

SearchEngine google.co.jp q=
SearchEngine yahoo.co.jp p=
SearchEngine search.biglobe.ne.jp q=
SearchEngine infoseek.co.jp qt=
SearchEngine search.nifty.com Text=
SearchEngine goo.ne.jp MT=
SearchEngine excite.co.jp search=

を入れておかないとかなりの数の検索を見逃すことになる。
webalizerの検索語の日本語対応の話

なるほど。
Windows版なら、(デフォルト=confファイルを指定しない場合)インストールフォルダにある「webalizer.conf」を編集します。

マイナーなのもあるけど、とりあえず、更に以下の設定も追加してみました。

SearchEngine    search.msn.co.jp    q=
SearchEngine    aol.com    query=
SearchEngine    naver.co.jp    query=
SearchEngine    fresheye.com    kw=
SearchEngine    search.fresheye.com    kw=
;
SearchEngine    www.ceek.jp    q=
SearchEngine    cache.yahoofs.jp    p=
SearchEngine    jword.jp    qt=
SearchEngine    labs.nttrd.com    q=
SearchEngine    www.overture.com    Keywords=
SearchEngine    bach.istc.kobe-u.ac.jp    q=
;
SearchEngine    bulkfeeds.net    q=
SearchEngine    mysearch.com    searchfor=
SearchEngine    myway.com    searchfor=
SearchEngine    mywebsearch.com    searchfor=
SearchEngine    www.infotiger.com    qs=
SearchEngine    www.ntlworld.com    q=
SearchEngine    www.vonna.com    k=
SearchEngine    aolsearch.aol.co.uk    query=
SearchEngine    searchscout.com    k=
SearchEngine    search.peoplepc.com    q=
SearchEngine    vivisimo.com    query=
SearchEngine    www.devilfinder.com    q=
SearchEngine    pesquisa.sapo.pt    q=
SearchEngine    msn.it    q=
SearchEngine    search.virgilio.it    qs=
SearchEngine    www.eniro.se    q=

Google関係は色々な国からきているので、

SearchEngine    .google.    q=

として一まとめにしてしまうのも良いかもしれません。

検索語の日本語対応 (Win32版) (2004/06/21 追記)

上述の「webalizerの検索語の日本語対応の話」で公開されているパッチをあてて、検索語の日本語対応WebalizerのWin32版を作成します。

Cygwinを使って作成します。
「make」や「gcc」などコンパイルに必要なパッケージは当然必要です。
libpng関係(devel含む)とlibgd関係(devel含む)のパッケージをインストールしておきます。
ないと「configure」の時に以下の様に怒られました。

configure: error: png library not found... please install png.
とか
configure: error: gd library not found... please install gd.

元ソースファイルに差分ファイルのパッチをあてるので、「patch」も入れておきましょう。

また、文字コード変換時に使うlibiconv関係のパッケージも入れておきます。
他にも必要なパッケージはあるかも。

webalizerの本家サイトから「webalizer-2.01-10-src.tgz」をダウンロードしてきます。
「webalizerの検索語の日本語対応の話」からパッチを「webalizer-a-urasim_2.patch」という名前で保存します。
この時、改行コードが LF (0x0A) になるようにしないとだめかも?

「configure」する時、日本語化するために「--with-language=japanese」を付けました。
また、gdなどのdllファイルがなくてもexeが動作するように「--enable-static」を付けました。

$ tar xzvf webalizer-2.01-10-src.tgz
$ cd webalizer-2.01-10
$ patch < ../webalizer-a-urasim_2.patch
patching file webalizer.c
$ ./configure --with-language=japanese --enable-static
creating cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether ln -s works... yes
checking for a BSD compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking whether char is unsigned... no
checking for main in -l44bsd... no
checking for main in -lm... yes
checking for main in -lz... yes
checking for gzrewind in -lz... yes
checking for main in -lpng... yes
checking for gdImagePng in -lgd... yes
checking for gd.h... /usr/include
checking for getopt.h... yes
checking for math.h... yes
checking default config dir... /etc
checking for language file... yes - japanese
updating cache ./config.cache
creating ./config.status
creating Makefile
linking ./lang/webalizer_lang.japanese to webalizer_lang.h
$ make
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c webalizer.c
webalizer.c: In function `srch_string':
webalizer.c:1990: warning: dereferencing type-punned pointer will break strict-aliasing rules
webalizer.c:1990: warning: dereferencing type-punned pointer will break strict-aliasing rules
webalizer.c:1990: warning: passing arg 2 of `libiconv' from incompatible pointer type
webalizer.c:2001: warning: dereferencing type-punned pointer will break strict-aliasing rules
webalizer.c:2001: warning: dereferencing type-punned pointer will break strict-aliasing rules
webalizer.c:2001: warning: passing arg 2 of `libiconv' from incompatible pointer type
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c hashtab.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c linklist.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c preserve.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c dns_resolv.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c parser.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c output.c
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -I/usr/include -c graphs.c
gcc --static  -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o dns_resolv.o graphs.o -lgd -lpng -lz -lm
webalizer.o(.text+0x31db):webalizer.c: undefined reference to `_libiconv_open'
webalizer.o(.text+0x31f4):webalizer.c: undefined reference to `_libiconv_open'
webalizer.o(.text+0x5066):webalizer.c: undefined reference to `_libiconv_close'
webalizer.o(.text+0x5073):webalizer.c: undefined reference to `_libiconv_close'
webalizer.o(.text+0x713d):webalizer.c: undefined reference to `_libiconv'
webalizer.o(.text+0x7198):webalizer.c: undefined reference to `_libiconv'
webalizer.o(.text+0x71e0):webalizer.c: undefined reference to `_libiconv'
Info: resolving _opterr by linking to __imp__opterr (auto-import)
Info: resolving _optarg by linking to __imp__optarg (auto-import)
Info: resolving _optind by linking to __imp__optind (auto-import)
collect2: ld returned 1 exit status
make: *** [webalizer] Error 1

となってエラーになりました。

ちなみに、こういうケースでは-lで指定せずに直接*.aファイルを一緒に指定するとうまくいくことがあります。裏技ですが。

bash-2.05$ g++ test.cc /usr/lib/libpq++.a
[pgsql-jp: 28165] Re: cygwin で libpq++ が undefined reference

という記述を見つけたので、Makefileを編集します。

/usr/lib/libiconv.a
	$(CC) ${LDFLAGS} -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o dns_resolv.o graphs.o ${LIBS}
「/usr/lib/libiconv.a」を追加↓
	$(CC) ${LDFLAGS} -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o dns_resolv.o /usr/lib/libiconv.a graphs.o ${LIBS}

再度 make を実行します。

$ make
gcc --static  -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o
output.o dns_resolv.o graphs.o /usr/lib/libiconv.a -lgd -lpng -lz -lm
Info: resolving _opterr by linking to __imp__opterr (auto-import)
Info: resolving _optarg by linking to __imp__optarg (auto-import)
Info: resolving _optind by linking to __imp__optind (auto-import)
rm -f webazolver
ln -s webalizer webazolver

Cygwinからwebalizerを使いたいなら、インストールまでしちゃいます。

$ cp -p /usr/local/man/man1
$ make install

DOSコンソールから使いたいなら、出来上がった「webalizer.exe」を Webalizerインストールフォルダにコピーします。

C:\> webalizer.exe -v
Webalizer V2.01-10 (CYGWIN_NT-5.1 1.5.10(0.116/4/2)) Japanese
Copyright 1997-2001 by Bradford L. Barrett

新しい「cygwin1.dll」がないとためみたい?
コンパイルした時に使用した「cygwin1.dll」(バージョン「1005.10.0.0」)を「webalizer.exe」があるフォルダにコピーしたら動きました。

実行してみましたが、検索語の日本語がきちんと表示されたようです。
良いかも。


Analog

・Analog: WWW logfile analysis
http://www.analog.cx/

・日本 Analog ユーザ会
http://www.jp.analog.cx/

Windows、Macintosh、BSD、Linux他で使えます。
レポートをHTMLに吐き出します。

実行してみた

「analog version 5.32/Win32」を使ってみました。

ブラウザからも設定できるみたいですが、今回は「analog.cfg」を編集してしまいました。
44種類のレポートを出力できます。

今回は細かい設定は抜きで、全ての種類のレポートを日本語でレポートしてみました。

「analog.cng」ファイルを編集します。

以下に示す部分を適当に編集します。

# ログファイルのある場所を指定します
LOGFILE *.log
# レポートの出力先を指定します
# outフォルダは自分で作成しました
OUTFILE out\Report.html
# ホスト名を指定します
HOSTNAME "example.jp"

また以下を追加します。

# 日本語で出力します
LANGUAGE JAPANESE-SJIS
# 全てのレポートをONにします
# 「[Analogインストールフォルダ]\docs\output.html#replist」を参考にしました
GENERAL ON
YEARLY ON
QUARTERLY ON
MONTHLY ON
WEEKLY ON
DAILYREP ON
DAILYSUM ON
HOURLYREP ON
HOURLYSUM ON
WEEKHOUR ON
QUARTERREP ON
QUARTERSUM ON
FIVEREP ON
FIVESUM ON
HOST ON
REDIRHOST ON
FAILHOST ON
ORGANISATION ON
DOMAIN ON
REQUEST ON
DIRECTORY ON
FILETYPE ON
SIZE ON
PROCTIME ON
REDIR ON
FAILURE ON
REFERRER ON
REFSITE ON
SEARCHQUERY ON
SEARCHWORD ON
INTSEARCHQUERY ON
INTSEARCHWORD ON
REDIRREF ON
FAILREF ON
BROWSERREP ON
BROWSERSUM ON
OSREP ON
VHOST ON
REDIRVHOST ON
FAILVHOST ON
USER ON
REDIRUSER ON
FAILUSER ON
STATUS ON

「analog.exe」を実行すれば、レポートが出力されます。
「analog.exe」があるフォルダ以外に出力フォルダを設定した場合は、出力フォルダに「images」フォルダをコピーしておくと良いでしょう。


AWStats

・AWStats official web site
http://awstats.sourceforge.net/

・AWStats Ver.6.0完全日本語版のページ
http://www.bflets.dyndns.org/Tools/AWStatsJpn.html
より完璧な日本語対応を目指して修正を行ったAWStats Ver. 6.0をダウンロードすることができます。

ログを表示するにはCGIが動作する必要があるようです。
サンプルを見ると非常に細かいレポートを表示できるようでした。

ごめんなさい。使ってないです。。


ApacheLogViewer

・Circle フリーツール
http://home.ns01.info/circle/

Apacheのログを解析するWindowsアプリケーション。
「ApacheLogViewer 2.8.2」を使ってみました。
ある条件のレコードを抽出するのに向いているかも。

日付けを指定して、指定したRemoteIPがどこにアクセスしたかを調べやすい。
HTTP Status毎に表示色を変更することができます。

また、「Statistics」ボタンを押すと統計を調べられます。
日付、URL、ホスト、ユーザ、リファラー、エラーコードと指定します。
この時、「Ctrl+クリック」、「Shift+クリック」で複数選択可能です。
選択したリクエストに対して、月、日付、曜日、時間、ホスト、ユーザ、リクエストで集計できます。

何曜日にアクセスが多いか、どの時間帯にアクセスが多いか、どこからのホストからのアクセスが多いか、どこへのアクセスが多いか、エラーはどのページで起きてるか、、、。

かなり詳しく解析できそうです。
自分が何を解析したいかが決まってないとちょっと使いにくいかも。
お勧めの(?)統計情報を自動でHTMLか何かで(グラフ付きで)吐き出せると良いのにな。


WebLog

・WebLog 公式ページ
http://www.geocities.co.jp/SiliconValley-PaloAlto/4331/

NCSA形式のログを解析するためのWindowsアプリケーション。
「WebLog NCSA型式 Ver 1.7.1」を使ってみました。

同サイトにIISのアクセスログ(スタンダード形式)を解析する「WebLog スタンダード型式(WebLog.exe)」というアプリケーションもありました。(ていうか、こっちが本家)

ログが壊れてたりすることがあるので、「読み込み中に型が違います」というエラーが出たら、「無視」ボタンをおして読み込みを続行させます。

使い勝手は、ちょっと悪い気がする。
いまいち使い方がわからなかった。


WebLog Expert Lite (2007/04/28 追記)

・WebLog Expert - Powerful log analyzer
http://www.weblogexpert.com/index.htm

・フリーのWebアクセスログ解析ソフト「WebLog Expert Lite」v4.1
http://www.forest.impress.co.jp/article/2007/04/25/weblogexpertlite.html
窓の杜の紹介記事
ユニークIP、リファラー、ブラウザーなどの統計レポートをHTML形式で出力可能

「Lite版」は、「Professional版」「Standard版」と比べて、機能制限がある。(WebLog Expertのエディションごとの違い)

Language Packs」があるが、2007/04/28現在、日本語版はないみたい。

インストールし、起動すると、サンプルのログファイルが入っているので、一度解析して、動作を見るといいかも。
「New」ボタンをクリックして、ログファイルを指定し、プロファイルを作成する。
ログファイルのワイルドカード指定が可能、zip/gzip圧縮されていても大丈夫。
プロファイルを選択して「Analyze」ボタンを押せば、解析し、ブラウザで結果が表示される。


Visitors (2007/06/27 追記)

URLだけメモ。

・Visitors - fast web log analyzer
http://www.hping.org/visitors/index_jp.php

・Visitors - fast web log analyzer
http://www.hping.org/visitors/doc.html
マニュアル

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


参考資料

・AWStatsドキュメント - ログ解析ツールの比較
http://www.ryu.dyn.to/Tools/AWStatsDocs_JP/awstats_compare_jp.html

トラックバック(0)

このブログ記事を参照しているブログ一覧: WEBのログを解析するフリーなソフト

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/114

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2003年10月21日 15:54に書いたブログ記事です。

ひとつ前のブログ記事は「Sector Inspector」です。

次のブログ記事は「2ch語」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261