Here’s a quick modification to awstats that allows you to add a totals field for the “Viewed – Full List” option. There isn’t a total hits field for matching files in awstats, so I added one to make it more useful. This makes it a lot quicker to total up hits for a specific folder, file type, or specific file in awstats.
Tag Archives: Awstats
awstats: Import old log files
One thing I’ve encountered with Awstats is adding in old apache log files. This is useful if you are migrating data from servers. By default, Awstats will ignore ALL past dates in the log that occur before the most recent log entry date. In order to avoid Awstats from finding the “recent log entry date”, you will need move all Awstats cached files into a separate folder. I’ve verified that this works, so if you have any questions feel free to comment.
1) Locate your awstats data directory. Most commonly found in /var/lib/awstats
2) Create a new folder inside the directory. Move all awstats* files to the new folder.
3) Run awstats update process on all log files in chronological order. AWStats will not complain about the “too old record” because there is no history files in DirData directory that contains compiled data more recent than record.
Edit the awstats.conf inside /etc/awstats
Locate the Apache logfile you need. It must be the oldest one you want to import. Awstats will chronologically add in the files, so make sure you add them in the right order. Edit the line starting with LogFile=”[log file location]”
Run the Awstats command (through the web browser or through shell via the perl command line)
4) Move the history files back. Once you process through all the logfiles, move the Awstats history files inside the /var/lib/awstats/newfolder back into /var/lib/awstats
awstats – remove image files
If you want to remove image files from your awstats reports, modify the SkipFiles variable in the /etc/awstats/awstats.conf (or awstats.YOURHOST.conf)
Do a search for “SkipFiles” in the file using nano/vi/emacs and find the section that talks about “Use SkipFiles to ignore access to URLs that match one of the following entries…” The SkipFiles line should look similar to the following:
SkipFiles="REGEX[.jpg$] REGEX[.gif$] REGEX[.png$]"
Awstats setup in Debian
Installing awstats in Debian with GeoIP caching
First, use apt-get to get the software:
apt-get install awstats
Configure awstats:
Instead of using the awstats configure tool (written in Perl), manually add in the awstats Apache configuration. Using the tutorial from debuntu, make a file inside your apache config folder called awstats.conf with the following lines.
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Inside the Apache2.conf file (or virtual host conf file inside the sites-available folder) add this to the end of the file:
Include /etc/apache2/awstats.conf
Next, copy the /usr/lib/cgi-bin/awstats.pl file to the apache cgi-bin folder. If you have virtual hosts enabled, copy it to the cgi-bin located in the designated virtual hosts folder.
Configure the awstats.conf sample file located in /etc/awstats/awstats.conf
1) Set the LogFile to the server’s logfile directory (usually /var/log/apache2/access.log)
2) Set LogFormat to 1.
3) Set DNSLookup=0 (No DNS Lookup is necessary when you use GeoIP DB, instructions are below)
4) Uncomment this line (remove the # from the beginning)
LoadPlugin=”geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat”
Install GeoIP to speed up the hostname lookups. This will significanly improve the performance since DNS lookups will generally take a long time. Using this tutorial, install the GeoIP library:
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.5.tar.gz
Download and extract the file. Inside the GeoIP 1.4.5 folder, run:
./configure
make
make check
make install
Next, download the latest GeoIP perl module -and- latest GeoLite country database.
http://www.maxmind.com/download/geoip/api/perl/ I usually run wget to download the file from shell. wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.36.tar.gz
Extract the tar file and inside the Geo-IP folder, run:
perl Makefile.PL
make
make test
make install
GeoIP should now be installed. You can now generate the reports:
/usr/lib/cgi-bin/awstats.pl -config=[NAME OF YOUR INSTALL] -update
For instance, if you called the install “sample”, you should have a file called /etc/awstats/awstats.sample.conf The command for sample would be:
/usr/lib/cgi-bin/awstats.pl -config=sample -update
To run awstats:
http://[SERVER]/cgi-bin/awstats.pl?config=[NAME OF YOUR INSTALL]