IISログから SharePoint のアクセス解析を行う

SharePoint を利用されているユーザな方なら誰でも気付かれることだと思いますが、SharePoint 2007のアクセス解析機能は驚異的に貧弱です。

概要画面はほんっとに大雑把な数字しか表示してくれませんし、詳細画面も使い難いです。過去1月分しかログが見れない上、そもそもアイテム単位のアクセスは拾えず、数字もいまいち信用できず、更に2000行を越すと後は切り捨て御免、という謎仕様。私は、ユーザには「アクセス解析機能は”おまけ”なのであまり信用しないで」と説明しています(苦笑)

この辺りを補完してくれる製品がないものか、と2年くらい前から探しているのですが…。無いんですよね、これが。

SharePoint は Web フロントとしてIISを利用していますので、そのログを分析すればアクセス解析が出来るため、あまりニーズが無いのでは?と技術屋さんには言われました。技術的には、そんなに難しいことではないらしいです。

しかし、実のところ、イントラネットにおける「アクセス解析」という機能は、どちらかといえば、サイト管理者やコンテンツ発信者といった、限られたユーザのニーズです。大多数の一般ユーザにとっては、あまり(直接的な)メリットがないのですよ。

そのため、開発費用はどうしてもより一般的で優先度の高い機能の開発にむけられてしまいます。結局、いつまでたってもアクセス解析機能を実現できません。ログはそこにあるというのに!

あまり費用も手間隙もかけずに、IISのログを分析して意味あるデータを抽出できないものか。いろいろと試行錯誤を繰り返し、ようやく形になりましたので、ご紹介したいと思います。

IISログから SharePoint のアクセス解析を行う By SharePoint MANIACS

1.IISログの取得とリネーム

複数のフロントで冗長構成をとっている場合、それぞれの Web サーバに IIS ログが存在します。
場所は、管理ツール→IISマネージャ で、SharePoint サイトの[プロパティ] から確認して下さい。

ただしここで注意点がひとつ。
IIS のログは、IIS7 以前は標準の文字コードが ANSI で、IIS7から UTF-8 になりました。
しかし、この後利用するログ解析ツールは ANSI を前提にしています。
UTF-8 だと解析結果レポートの日本語が文字化けします。

このエントリでご紹介している手順でログ解析を行う場合は、ログは ANSI で取得してください。
※欧米だと英数字しか使わないから ANSI でも UTF-8 でも問題ないんですね…。いいな外人(苦笑)


このチェックがついていると UTF-8、外れていれば ANSI になります。

まず、必要なログファイルを全てローカルにダウンロードします。
ただし、同日のログは同じファイル名になっている筈ですので、適宜ファイルをリネームして下さい。
ログファイルを、フォルダ内にまとめます。

以下は、:Flexible Renamer(フリーソフト)でファイル名の前にフォルダ名を付与する例です。

2.WebLog Expertのインストールと設定

WebLog Expert(有料)を使えば、簡単にログを解析し、結果をHTMLに出力できます。

無料の lite と、有料の Standard/Pro がありますが、無料版は「フィルタ」機能がない、SharePointのログ解析には使えません。有料版の購入をお勧めします。ちなみに 米ドル124.95 です。

30日間有効の試用版もあります。
日本語のランゲージバックも配布されています(こちらは無料)

なお、ライセンス購入についてですが、クレジットカードでなら日本円での決済が可能で、しかも領収書(PDF)が発行されます。

アプリケーション本体とランゲージーパックをインストール後、起動し、オプションを設定します。


truncate text after question にチェックが入っていると、リスト/ライブラリ単位の解析になります。

逆に ID=n (アイテム単位)まで分析したい場合は、このチェックを外せばよいのですが、SharePoint の仕様上、ID の前後に複雑なパラメータが付与されてしまうため、それらを除外してアイテムの一意性?を担保するためには、事前にIISログを整形しておく必要があります。

これは、なかなかややこしいプロセスですので、次回のエントリでまとめます。
今回はあくまでリスト/ライブラリ単位での解析ということで。


分析対象のファイル設定例。
必要に応じてファイルの拡張子を追加します。
.xml .zip .lzh .msg .avi .wmv あたりも加えると良いと思います。


言語を日本語に設定。
ちなみに日本語に設定しなくても、時間はローカル設定を見て自動的に変換してくれます。


レポートに出力する行数等を設定。
ちなみにこの設定は標準よりかなり大きいです。
ユーザ担当者が結構細かいところ知りたがるので…。


あくまでイントラネットのアクセス解析なので、リンク元やらは不要でしょう。
余計なテーブルは指定を外します。


あまり意味がなさげな、細かいオプションも外します。


ユーザ情報も基本的に社員のみですから、この程度の設定で良いでしょう。


社内環境なのでブラウザ識別は不要だと思います。


エラー等も不要ですね(もちろん必要であれば設定して構わない訳ですが)

以上でオプション設定は終わりです。

3.WebLog Expertのプロファイルの設定

分析対象毎に、「プロファイル」を作成する必要があります。

適当な名前と、対象となるドメインを指定。
なお、Retrieve page titles については、チェックしてもあまり結果に差を感じませんでした。
余計な処理が増えるので、チェックしない方が良いかも。


ログファイルの場所を指定。
* が使えるので、複数ファイルをまとめて指定可能です。


ここでは期間を指定していませんが、もちろん指定しても可です。


トラッキングを指定すると、指定したURLについて、詳細な分析を見ることができます。
必要に応じて設定して下さい。

トラッキング指定には * も利用できます。
しかし、トラッキングは条件に該当するファイル全てについて詳細なレポートを作成しますので、不用意に * を利用すると、ログ解析およびレポート出力に恐ろしく時間がかかります。(一度誤って指定したら 5000ファイルとか出力されて焦りました^^;;)
トラッキングは「特定ファイルの詳細アクセス解析を行いたい場合」にのみ利用するべきです。

次は、最重要項目、フィルタ条件の指定です。
この設定で、アクセスログから、余計なノイズを除外します。

以下の例では、システムアカウントによるアクセス、設計関係のファイル、GET以外のメソッド、およびルート(/) を除外しています。

特定のサイトや特定のリスト/ライブラリ について、分析したい場合は Include Requested File: /hoge/hoge/* を指定して下さい。
http://domain/hoge/hoge ではない点に注意
Include をひとつも指定しない場合、全ログが分析対象になります。


データ出力先を指定して設定は完了です。

4.WebLog Expertで解析結果を出力する

解析対象のプロファイルを選択して、[Analyaze] をクリックすると解析が始まります。


当然ですが、対象とするログの期間が長い程、解析には時間がかかります。

解析が完了すると、レポートが出力されます。

既定では、インストールしたディレクトリの配下の Report フォルダにHTMLとして出力されます。
そのまま SharePoint のドキュメントライブラリにアップロードすれば、解析結果をユーザに公開することも可能です。

なお、既定では、解析の都度、Report フォルダ内のファイルを全て削除して、新たに作成しなおすため、誤って(時間を掛けて抽出した)解析結果を消さないよう注意して下さい。

以上でアクセス解析は完了です。
今回は、すべてローカルでの手作業が前提ですが、WebLog Expert にはスケジューリングや FTP によるファイル取得機能もありますので、定期的にサーバ側で実行させることも出来ると思います。
ただ、アイテム単位で解析を行いたい場合、ログを整形する部分について、なにかアプリケーションを組まないと無理でしょうね。

…どこかの会社が製品化してくれませんかねぇ(嘆息)

SharePoint の IIS ログをアイテム単位で解析できるよう整形する


これまでのコメント

  1. ooooo より:

    AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
    すごいですね。
    時間があったら検証してみたいです。
    ちなみに、私が導入した案件のなかで、下記のアクセス解析サービスを利用している顧客がおりました。(回し者ではありません。)
    http://www.activecore.jp/insight/index.html
    サイト階層ごとにアクセスランキングを集計したいが出来るので良い!という話でした。

  2. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)
    oooooさま、情報ご提供ありがとうございます!

    このソ\リューションは知りませんでした。
    サイト階層毎のアクセスランキングは是非欲しい機能\です!
    自動的に抽出できるといいなぁ…。
    ともあれ、コンタクトをとってみたいと思います。
    今後ともよろしくおねがいします♪

  3. yama3 より:

    AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
    私はLog Parserを使ってます。

    1)ログをサイト毎に抽出(ファームの場合は統合もここでやります)
    2)アクセス解析(グラフ出力)
    3)グラフをSharePointにアップロード

    みたいな感じです。バッチ処理できるので便利です。

  4. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)
    yamaさま

    コメントありがとうございます!
    やっぱりLogParserが基本ですよね!(をい)
    私も最初はLogParserを触ってみたのですが、私の知識では上手く使えず(苦笑)なにか他にないかな〜、とこのエントリになりました。
    落ち着いたらLogParserも研究してみます〜

login

Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9