awffullの調整

動作直後のawffull.conf

アクセス解析(awffull)の導入では、/etc/awffull/awffull.conf の次のところを変更して使用した。(LogFileは自機のlogでないので特殊)

LogFile /home/adachi/Downloads/dabiyonelog/dabiyone.com.log
OutputDir /var/www/awffull
Incremental    yes
HostName dabiyone.com

このページでは前回で不足したところを調整する。

ipから名前が取れていない 自分が参照元 国別

結果を眺めていて、以前見ていたwebalizerとの違いに気がつく。

国別状況が出ない。

awffull国別状況

ホスト名がIP(ここはIPでも私にとってはあまり必要ではない)

awffull閲覧の多いサイト

参照元 サイト内リンクも計数されている。

awffull参照元

国別状況の改善

そもそも日本語での公開なので、この情報が必要なのか疑問ではあるが、100%unknownというのも寂しい。

原因はログがIPアドレスで記録してあることにある。ログにドメイン名を記録するためにはDNSで逆引きをする必要があり、負荷が高くなるのでレンタルサーバー側としてはIPのままにするのが得策であろう。

こちらで逆引きするオプションがあるかもしれないと考えたが、/etc/awffull/awfull.conf に次のような記述を発見したので、以下のように設定。#adachiの下の部分が変更点。

# GeoIP enables or disables the use of the GeoIP capability for more
# accurate detection of countries. Default is 'no'.
# NOTE! Do not enable GeoIP if you analyse files that have had the IP Address
# translated to a Fully Qualified Host Name.
# Use either raw IP Addresses and GeoIP, or Names and disable GeoIP.
# ie. Don't use GeoIP AND DNSHistory.

#GeoIP          no
#adachi
GeoIP          yes

# GeoIPDatabase is the location of the GeoIP database file. Default is
# '/usr/local/share/GeoIP/GeoIP.dat', which is where a default GeoIP
# install will put it. Note that the database is updated monthly.
# For the details see: http://www.maxmind.com/app/geoip_country

#GeoIPDatabase   /usr/local/share/GeoIP/GeoIP.dat
#adachi
GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat

「IPアドレスのときGeoIPを使う」か「FQNのときGeoIPを使わない」のどちらかということだが、IPなので使ってみる。IPの範囲で割り当てられている国がある程度わかるということらしい。

GeoIP.datの位置を確かめて(debianでは異なることがたまにある)指定した。

しかし、これだけではまだだめだった。

GeoIPを使えるようにする

うまく行かないので、パッケージマネージャーでGeoIPを調べると、

GeoIP geoip-database-extra

というパッケージがあり、解説には、

IP lookup command line tools that use the GeoIP library (ASN/city database) 
  
GeoIP is a C library that enables the user to find the country that any
 IP address or hostname originates from. It uses a file based database.

This database simply contains IP blocks as keys, and countries as values and
it should be more complete and accurate than using reverse DNS lookups.

This package contains the free GeoLite City and ASN database.

これはまだインストールされていない。もしもawffullから呼ばれているコマンドが入っていないとしたら...と考えてインストールしてみた。

これが「あたり」

awffull-GeoIPで国別

「Top30 of ... Total Sites」 のホスト名は当然これでは解決されない

Referrer問題

グラフ画像下のテキストを示す。

サイト内リンクも計数されているが、index.php/admin/など私の知らないものもある。

レンタルサーバーの提供するものでもサイト内のリンクで埋め尽くされる感があり、外部の参照が探しにくい。もっとも最近では検索サイトからの物が多くてあまり参考にはならないのだが。

Top 17 of 17 Total Referrers # 	ページ 	URL
1 	164 	74.55% 	- (Direct Request)
2 	8 	3.64% 	https://uptime.com/dabiyone.com
3 	7 	3.18% 	dabiyone.com
4 	6 	2.73% 	https://157.7.107.47:443/
5 	6 	2.73% 	https://brandnewblogs.com/site-browser/
6 	6 	2.73% 	https://www.google.com/
7 	5 	2.27% 	http://www.dabiyone.com/
8 	4 	1.82% 	https://www.dabiyone.com/
9 	2 	0.91% 	http://pizza-imperia.com/
10 	2 	0.91% 	http://search.yahoo.co.jp/
11 	2 	0.91% 	https://dabiyone.com/misc/index.html
12 	2 	0.91% 	https://www.facebook.com/
13 	2 	0.91% 	https://www.google.co.jp/
14 	1 	0.45% 	http://dabiyone.com/downloader/
15 	1 	0.45% 	http://dabiyone.com/index.php/admin/
16 	1 	0.45% 	http://dabiyone.com/rss/catalog/notifystock/
17 	1 	0.45% 	https://dabiyone.com/math/index.html

HideReferrerの設定

/etc/awffull/awfull.conf に次のような記述を発見したので、以下のように設定。#adachiの下の部分が変更点。

# Your own site should be hidden
#HideSite       *mrunix.net
#HideSite       localhost
#adachi
HideSite       dabiyone.com

# Your own site gives most referrals
#HideReferrer   mrunix.net/
#adachi
HideReferrer   dabiyone.com/

これで、次のように改善された。dabiyone.comが残った。

Top 10 of 17 Total Referrers # 	ページ 	URL
1 	164 	74.55% 	- (Direct Request)
2 	8 	3.64% 	https://uptime.com/dabiyone.com
3 	7 	3.18% 	dabiyone.com
4 	6 	2.73% 	https://157.7.107.47:443/
5 	6 	2.73% 	https://brandnewblogs.com/site-browser/
6 	6 	2.73% 	https://www.google.com/
7 	2 	0.91% 	http://pizza-imperia.com/
8 	2 	0.91% 	http://search.yahoo.co.jp/
9 	2 	0.91% 	https://www.facebook.com/
10 	2 	0.91% 	https://www.google.co.jp/

HideReferrer の最後の"/"をなくしてみた。

HideReferrer   dabiyone.com

dabiyone.comが消えたが、uptime.com/dabiyone.comも消えた。

Top 8 of 17 Total Referrers # 	ページ 	URL
1 	164 	74.55% 	- (Direct Request)
2 	6 	2.73% 	https://157.7.107.47:443/
3 	6 	2.73% 	https://brandnewblogs.com/site-browser/
4 	6 	2.73% 	https://www.google.com/
5 	2 	0.91% 	http://pizza-imperia.com/
6 	2 	0.91% 	http://search.yahoo.co.jp/
7 	2 	0.91% 	https://www.facebook.com/
8 	2 	0.91% 	https://www.google.co.jp/

最後の"/"がない呼び出しもあるのでこれがよい。uptime.comは「Uptime Monitoring and Server Performance Reports」なんだそうだが、不要だ。157.7.107.47は借りているレンタルサーバーでhttpからhttpsへのリダイレクトで使われているものと考えられる。pizza-imperia.comはリファラースパムだが放置。

GeoIPの代わりにDNS逆引きを使ってみる

docのDNS.READMEにawffullからDNS検索の機能を外したとあります。別のソフトウェアであるdnshistoryが使えるとのことです。

これを使って以下のようにすると書いてあります。

$ dnshistory -d dns.db -f accesslog.log
$ dnshistory -T -d dns.db -f accesslog.log | awffull -c awffull.conf

Debianのパッケージにもdnshistoryがありましたので試してみます。

Debianのパッケージの解説です。

dnshistory
ログファイルから IP アドレスに変換し保存
  
ウェブログファイルから抽出された IP アドレスについて DNS 名の変更履歴を
保存する手段を提供します。主な目標は  IP アドレスから FQDN への再検索を
必要とせずに古いログファイルの多重分析を実行し、さらに、検索を現在ではなく
当時に実行したかのような検索の正確性を維持することです。

dnshistoryの試用

上記のコマンドで結果を出すには、awffull.confを書き換える必要があります。

ログファイルをコメントアウトし、STDINとすることと、GeoIPもコメントアウトまたはnoとすることです。

#LogFile /home/adachi/Downloads/dabiyonelog/dabiyone.com.log
#GeoIP          yes

一度、/var/www/awffullの全ファイルを削除してやり直す必要があります。

DNShistoryを使用した結果

awffull-dnshistoryで国別

GeoIPを使用した結果(再掲)

awffull-GeoIPで国別

文字でも示しておきます。

DNShistoryを使用した結果

Top 11 of 11 Total Countries # 	ページ 	ヒット 	ファイル 	Volume 	国
1 	119 	54.09% 	238 	57.77% 	103 	52.28% 	2.20 MB 	64.76% 	Commercial
2 	49 	22.27% 	89 	21.60% 	31 	15.74% 	731.69 kB 	21.53% 	Unresolved/Unknown
3 	16 	7.27% 	42 	10.19% 	35 	17.77% 	251.85 kB 	7.41% 	Japan
4 	9 	4.09% 	12 	2.91% 	10 	5.08% 	52.29 kB 	1.54% 	Network
5 	8 	3.64% 	8 	1.94% 	8 	4.06% 	40.78 kB 	1.20% 	Germany
6 	6 	2.73% 	6 	1.46% 	0 	0.00% 	37.52 kB 	1.10% 	Croatia/Hrvatska
7 	6 	2.73% 	6 	1.46% 	3 	1.52% 	17.15 kB 	0.50% 	Hungary
8 	2 	0.91% 	2 	0.49% 	2 	1.02% 	10.61 kB 	0.31% 	US Educational
9 	2 	0.91% 	2 	0.49% 	1 	0.51% 	7.03 kB 	0.21% 	Brazil
10 	2 	0.91% 	2 	0.49% 	1 	0.51% 	7.03 kB 	0.21% 	European Union
11 	1 	0.45% 	5 	1.21% 	3 	1.52% 	41.32 kB 	1.22% 	British Indian Ocean Territory

GeoIPを使用した結果

Top 13 of 13 Total Countries # 	ページ 	ヒット 	ファイル 	Volume 	国
1 	98 	44.55% 	202 	49.03% 	89 	45.18% 	1.71 MB 	50.22% 	United States
2 	30 	13.64% 	30 	7.28% 	2 	1.02% 	175.53 kB 	5.17% 	Ukraine
3 	23 	10.45% 	92 	22.33% 	60 	30.46% 	804.88 kB 	23.69% 	Japan
4 	15 	6.82% 	18 	4.37% 	13 	6.60% 	212.95 kB 	6.27% 	Canada
5 	11 	5.00% 	27 	6.55% 	6 	3.05% 	296.15 kB 	8.72% 	Russian Federation
6 	8 	3.64% 	8 	1.94% 	8 	4.06% 	40.78 kB 	1.20% 	Germany
7 	8 	3.64% 	8 	1.94% 	8 	4.06% 	29.28 kB 	0.86% 	Netherlands
8 	6 	2.73% 	6 	1.46% 	3 	1.52% 	45.51 kB 	1.34% 	China
9 	6 	2.73% 	6 	1.46% 	0 	0.00% 	37.52 kB 	1.10% 	Croatia/Hrvatska
10 	6 	2.73% 	6 	1.46% 	3 	1.52% 	17.15 kB 	0.50% 	Hungary
11 	4 	1.82% 	4 	0.97% 	2 	1.02% 	14.05 kB 	0.41% 	Malaysia
12 	3 	1.36% 	3 	0.73% 	2 	1.02% 	10.57 kB 	0.31% 	United Kingdom
13 	2 	0.91% 	2 	0.49% 	1 	0.51% 	7.03 kB 	0.21% 	France

ホスト名がIPからドメイン名に。(私にとってはあまり必要ではないと言った所)

awffull閲覧の多いサイト

DNSHistoryとGeoIP

DNSHistoryとGeoIPで対応すると思われるものを比較した。

DNSでは.comはCommercialとし、GeoIPはIPの割当からUnited Statesと判断しているので、.comからのアクセスでありながら他の国に振り分けられているのだと思われる。

Unresolved/Unknownはプロキシなどを使ってアクセス元を変更しているものと考えられるが、GeoIPでは使用したIPで振り分けられるのであろう。本当のアクセス元ではないかもしれないが、プロキシの置かれた場所を反映していると考えられる。

日本語のページなのに、USからのアクセスが多いのは、まだこのサイトが知られていないことに加え、トップレベルドメインが.comなので、USからの調査の対象になっているのではないか。HideReferrerにuptime.com/dabiyone.comやbrandnewblogs.com/site-browser/が多いのもそれを示していると考えられる。

DNSHistory GeoIP
65% Commercial 50% United States
22% Unresolved/Unknown
7% Japan 24% Japan
2% Network
1% Germany 1% Germany
1% Croatia/Hrvatska 1% Croatia/Hrvatska
1% Hungary 1% Hungary
0% US Educational
0% Brazil
0% European Union
1% British Indian Ocean Territory
5% Ukraine
6% Canada
9% Russian Federation
1% Netherlands
1% China
0% Malaysia
0% United Kingdom
0% France

ということで、国別のレポートはDNSHistoryよりGeoIPの方が意味のあるものになっているような気がする。

awffull.confの最終設定

dnshistoryによる集計をやめてGeoIPに戻す。

/etc/awffull/awffull.confの変更箇所のみのまとめ

LogFile /home/adachi/Downloads/dabiyonelog/dabiyone.com.log
OutputDir /var/www/awffull
Incremental    yes
HostName dabiyone.com
GeoIP          yes
GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat
HideSite       dabiyone.com
HideReferrer   dabiyone.com
LogFile 処理するログファイルのパスとファイル名
OutputDir 結果を出力するフォルダ
Incremental 前の集計の内部情報を保存して次の集計で二重にならないようにする。
HostName タイトルに使う自ホスト名
GeoIP IPアドレスから国情報を得る機能を使う。
GeoIPDatabase GeoIPの依るデータベースの所在
HideSite 自分自身からのアクセスをレポートに含めない
HideReferrer 参照ページに自分自身をレポートに含めない

インストール時にcronが設定されているので、自ホストのログならば自動で更新されるが、今回はレンタルサーバー上のサイトなので、ログをダウンロードして設定のLogFileを用意する必要がある。

201902??の部分は月ごとに変える必要がある。毎日やるわけでもないので、今回はこのままにしておく。

adachi@debian64:~/Downloads/dabiyonelog$ zcat dabiyone.com_201902??.log.gz >dabiyone.com.log
adachi@debian64:~/Downloads/dabiyonelog$ awffull -c /etc/awffull/awffull.conf 

加えてawffullコマンドも実行する場合はcronは削除しても良い。cron実行設定時に動いていないPCの場合は特に。

時代は Googleアナリティクス

今回、参照元を確認する人をスパムサイトに誘導するために、同一のReferrerでたくさんのアクセスをする行為をリファラースパムというようになったと知りました。昔からありましたが、アクセス解析を見る人は少数だろうから、わさわざそんなことが目的とは思わず、なぜここからアクセスがあったのかと不思議に思っていました。

リファラースパムを検索するとほとんどすべてGoogleアナリティクスでの対策が話題で、Googleアナリティクスのおかげで参照元を確認する人が増えているで、リファラースパムも増えているのかと思い至りました。

リファラースパムのおかげでアクセス解析が不正確になるという指摘もあるのですが、クローラーが出現したときにもアクセス解析が難しくなりました。また、参照元はたくさんの検索サイトで埋め尽くされて、本来のリンク元を見つける楽しみはかなり前からなくなてきています。

awffullの記事が見つけられなくて、あまり使われていないのかなと思ったのですが、Googleアナリティクスの方へ流れているのでawffullについて書く人が少ないということでしょうか。

GoogleアナリティクスはトラッキングコードというJavascriptをページに埋め込んでアクセスのたびにgoogleへデータを送りgoogleが解説する仕組みです。余計なトラフィックを発生させるのがちょっと気になるところです。