Changes between Initial Version and Version 1 of apacheログ解析(その1)


Ignore:
Timestamp:
Nov 7, 2016, 2:00:16 PM (8 years ago)
Author:
admin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • apacheログ解析(その1)

    v1 v1  
     1「ApacheLogViewer」では毎日のアクセス解析に時間がかかりすぎるのと、今後のさらなるログの増大を考えると不安を覚えたので、いろいろと試してみた結果、「Visitors」というアクセスログ解析ソフトが超高速でよかったです。
     2
     3大体、10万行を1秒~2秒ほどで処理してくれます。しかもサイトへの人の流れをフローチャート化することも可能。ユニークユーザーベースで解析してくれるだけでなく、検索ボットは除外したり、特定のリファラをブラックリストにしてノーカウントすることも可能。非常にすばらしいです。
     4
     5また、Linux版だけでなく、Windows版も一応提供されています。やろうと思えばWindowsで解析することも可能です。
     6
     7というわけで、実際にインストールして実運用するまでの手順をメモしておきます。参考になれば幸い。
     8
     9= インストール =
     10Visitors - fast web log analyzer
     11http://www.hping.org/visitors/index_jp.php
     12
     13ページの真ん中ぐらいからダウンロード可能です。RHEL4におけるインストールはこんな感じ。ほかのLinuxでもあまり変わらないかと。
     14{{{
     15wget http://www.hping.org/visitors/visitors-0.7.tar.gz
     16tar xvzf visitors-0.7.tar.gz
     17cd visitors_0.7
     18make
     19cp visitors /usr/bin/
     20}}}
     21
     22wgetでダウンロードして、tarで解凍、解凍後のディレクトリ「visitors_0.7」に移動して、makeを実行して生成した後、できあがった「visitors」というファイルを/usr/bin/にコピーするというわけです。基本的にこれだけ。
     23
     24= ■使い方 =
     25実際の使い方は公式ページにも「例」として載っていますが、より詳細な使い方はドキュメントを参照。
     26
     27Visitors, on line documentation for 0.7
     28
     29こんな感じで使います。
     30{{{
     31visitors -A -m 30 access.log -o html > report.html
     32}}}
     33
     34「-A」というのはオプションを全部付けるという意味で、ページビューやユニークユーザーといった基本的な解析情報以外に「-GKUWRDOB」という複数のオプションを一気に付けるのと意味は同じです。GoogleとAdSenseのクローラーの解析、Googleからの検索フレーズの解析、ユーザーエージェント、週間の時系列別アクセスマップ、リファラ、ドメイン別、OS別、ブラウザ別での解析がこれで可能になります。「-m」というのは最大何件表示にするかという意味で、今回は「30」となっているので各項目ごとに上位30件が表示されます。「access.log」は各環境ごとに解析対象となるファイルを指定。「access.log.*」といった複数指定も可能。「-o」は結果をファイルに出力するという意味で、「html」か「text」が選べます。これを最後に「report.html」として出力するわけです。
     35
     36自分のサイトの利用パターン、内部リンクでの循環や外部リンクからどれぐらい来ているのか、Googleなどからはどれぐらい来ているのかといったことを解析するには以下のようにします。
     37
     38{{{
     39visitors -A -m 30 access.log -o html --trails --prefix http://gigazine.net > report.html
     40}}}
     41「--trails」が利用パターンを解析するオプションで、「--prefix」のあとに対象となる自分のサイトアドレスのドメインを入力します。こうすることで、ページの巡回され具合がわかります。どういうルートで特定のページに至る人が多いかがわかります。
     42
     43ただ、これだけだとわかりにくいので、フローチャート表示にしてみましょう。
     44
     45= ■Graphvizによるフローチャート生成 =
     46
     47まずは以下のページからGraphvizをダウンロードしてインストール。yumなどでもインストール可能。
     48{{{
     49Graphviz
     50http://www.graphviz.org/Download..php
     51}}}
     52
     53RHEL4の場合はこんな感じ。
     54{{{
     55wget http://dag.wieers.com/rpm/packages/graphviz/graphviz-2.2-1.2.el4.rf.i386.rpm
     56rpm -ivh graphviz-2.2-1.2.el4.rf.i386.rpm
     57}}}
     58
     59まずはフローチャート作成の元になる「graph.dot」を作ります。
     60
     61{{{
     62visitors access.log --prefix http://gigazine.net -V > graph.dot
     63}}}
     64
     65それから、PNG画像を作成します。
     66
     67{{{
     68dot -Tpng graph.dot > graph.png
     69}}}
     70
     71これだけでできあがり。お手軽ですね。
     72
     73= ■実運用上の工夫 =
     74実際に毎日ログを解析させようと思うと、この一連のコマンドをシェルスクリプトにしてCronにでも登録するのが簡単なのですが、GIGAZINEの場合は出力するファイルに日付を付けています。
     75抜粋するとこんな感じ。「`date --date '1 day ago' +%Y%m%d`」の部分が日付処理の部分です。
     76
     77{{{
     78visitors -GKZWMRDXYS -m 30 access_log --trails --prefix http://gigazine.net -o html > `date --date '1 day ago' +%Y%m%d`report.html
     79
     80visitors access_log --prefix http://gigazine.net -V > graph.dot
     81
     82dot -Tpng graph.dot > `date --date '1 day ago' +%Y%m%d`graph.png
     83}}}
     84
     85これで「20070304」などの数値がファイル名の頭に付くので、管理が楽になります。「1 day ago」が付いているのは、3月5日に解析するのは3月4日のアクセスログなので、こうすることで日付を1日前に戻しているわけです。
     86
     87{{{
     88
     89visitors実行時の指定で、「-A -m 30 -o html」などがオプションです。使えるオプションをまとめてみました。
     90
     91-G
     92    GoogleのクローラとGoogle Adsensedのクローラのアクセス記録を表示します。上位のページほど、最新にアクセスされたページです。
     93-K
     94    Google経由のアクセスで検索に使用されたキーワードを表示します。上位のキーワードほど、検索回数が多いキーワードになります。
     95-Z
     96    Google経由のアクセスで検索に使用されたキーワードを表示します。上位のキーワードほど、最新のアクセスに使用されたキーワードになります。
     97-H
     98    Google経由でのアクセスで、そのユーザの言語の種類を表示します。
     99-U
     100    アクセスのあったユーザのエージェント情報を表示します。(OS、ブラウザなど)
     101-W
     102    アクセス量の情報を週(月曜日から日曜日)と時間(0時から23時)別で表示します。明るい場所がアクセスの多い状態、暗い場所は、アクセスが少ない状態を表します。
     103-M
     104    アクセス量の情報を月(1月から12月)と日にち別で表示します。明るい場所がアクセスの多い状態、暗い場所は、アクセスが少ない状態を表します。
     105-R
     106    リファラーの情報を表示します。上位の情報ほど、最新アクセスの情報です。
     107-D
     108    アクセス元のトップレベルのドメインを表示します。
     109-O
     110    アクセスしてきたユーザのオペレーティングシステムの種類を表示します。
     111-B
     112    アクセスしてきたユーザのブラウザの種類を表示します。
     113-X
     114    存在しないファイルファイルへのアクセスエラー情報を表示します。
     115-Y
     116    1訪問あたり(ユニークユーザ単位)のページビューを表示します。
     117-S
     118    検索ロボットやスパイダーのアクセス状況を表示します。
     119-A
     120    「-GKUWRDOB」を指定したのと同じです。
     121-m
     122    各表示内容で表示する件数を指定します。「-m 30」と指定すると各要素ごとに30件ずつ表示します。
     123-o
     124    出力するファイル形式を指定します。指定できるのは、2種類で「html」「text」です。「-o html」とすれは、htmlファイルを出力します。
     125-T
     126    サイト内のでのページ間移動の情報を表示します。「-P サイトのURL」オプションと同時に使用します。
     127}}}