One of the neatest things about technology is the number of different ways one can do various things.
Take SharePoint's Usage Analysis feature... pretty cool at first, it gives you some basic information. However, if you want any advanced display or different view on the data, then you're gonna quickly find that the Usage Analysis feature is designed to provide basic data and nothing more. For example, do you want a chart representation? You can't get it without writing custom code. Then I started thinking down the path...
"Hmm - surely there's a better way of getting at site usage data. How can I get to the data locked away in my iis logs?"
After searching the internet a bit, I landed upon an awesome tool for datamining IIS logs. On help make things better, it's free!! The tool, Analog.exe, can be found at
http://www.analog.cx. It does a fantastic job at processing your logs to produce full feature usage reports.
Ok... but how does it really compare to the built-in usage analysis?
Given the large breadth of configurability, using Analog.exe to produce reports for your server is without a doubt much more powerful than the built-in usage analysis system.
There is one area, though, where the native system is superior - understanding requests to owssrv.dll. A large number of requests are handled by this core dll. Unfortunately, IIS only knows that a request was processed, but id does not know the details of exactly what was requested. For example, an image on a page does not appear as a singular request for that image, instead it appears as a request to owssrv.dll. This is exactly where the native usage analysis excels - SharePoint knows how to record the request for "image.jpg" when a owssrv.dll responds. Overall, I'm fine with losing that bit of information.
How can I make this work on a SharePoint server?
It's super simple...
- Build a configuration file
- Run Analog.exe
- Copy the output to your SharePoint server
and once you get things working, you can easily automate the process.
Neat, but how do I automate the process?
Create a batch file which executes steps #2 and #3. Then using Windows Task Scheduler, setup a job which calls the batch file at your desired intervals.
What do you use to copy the files to the SharePoint server?
There are few ways you can do this...
- Use web folders to map a drive to your server. This works really well if your site name and the server machine name are one in the same (authentication is automatically handled for you in this situation).
Syntax: net use * \\myServer\myFolder
Once mapped, then a simple xcopy command will suffice.
- Use DAV to directly copy the files to your server. This is your only option when dealing servers configured to use host headers. I've created tool, DavCopy.exe, to handle the copy operations. It operates just like xcopy, but it's designed to use the WebDav protocol.
Syntax: DavCopy.exe * http://www.myserver.com/myFolder
The tool has been posted in the Downloads folder (http://www.bluedoglimited.com/Downloads).
Summary
Overall, using Analog to produce usage reports for your SharePoint server is step above the built-in system. It's fast, powerful and completely configurable. Once you get things pieced together, you're done - reports start coming on a regularly scheduled basis!
-Maurice