--- /dev/null
+[AWStats][] is a log analyzer that gives you nice summaries about
+who's accessing your web server, when they're accessing it, how much
+bandwidth they're using, etc. Here's a quick run through installing
+and using AWStats on [[Gentoo]].
+
+Install AWStats:
+
+ # emerge -av awstats
+
+Optionally, copy the log files from a remote server:
+
+ $ rsync -avz example.net:/var/log/apache2/ example-logs/
+
+Configure AWStats by adjusting the model configuration distributed
+with AWStats.
+
+ $ cp /etc/awstats/awstats.model.conf awstats.example.conf
+ $ emacs awstats.example.conf
+
+Here's an example config with the options I use:
+
+ # AWSTATS CONFIGURE FILE 7.0
+ Include "awstats.user.conf.common"
+ LogFile="example-logs/access_log"
+ LogType=W
+ LogFormat=1
+ LogSeparator=" "
+ SiteDomain="www.example.net"
+ HostAliases="localhost 127.0.0.1 REGEX[example\.net$]"
+ DNSLookup=1
+ DirData="data"
+ CreateDirDataIfNotExists=1
+ DirIcons="/usr/share/awstats/wwwroot/icon"
+ BuildHistoryFormat=text
+ LoadPlugin="decodeutfkeys"
+ LoadPlugin="ipv6"
+ LoadPlugin="hashfiles"
+
+Because `awstats.pl` can be invoked interactively through your browser
+(depending on how you have it installed), it has a fairly restricted
+path. In order to run awstats on files in a random directory
+(e.g. for processing your server's logs on another host) you should
+use the full path to your config file. Here's an example of parsing
+the all the archived logs (my logs are archived as
+`access_log-YYYYMMDD.gz`):
+
+ $ for log in example-logs/access_log-*.gz; do awstats.pl -config="${PWD}/awstats.example.conf" -LogFile="gzip -cd ${log} |"; done
+
+I also analyze logs from another host, whose logs are archived weekly
+as `access_log.2.gz`, `access_log.3.gz`, etc. To parse the last year
+of those archived logs, use something like:
+
+ $ for i in $(seq 52 -1 2); do awstats.pl -config="${PWD}/awstats.example.conf" -LogFile="gzip -cd example-logs/access_log.${i}.gz |"; done
+
+After working through the archived logs, you can process the current
+log file:
+
+ $ awstats.pl -config="${PWD}/awstats.example.conf"
+
+Once all the logs have been processed, run
+
+ $ awstats.pl -config="${PWD}/awstats.example.conf"
+
+To generate the report, run
+
+ $ awstats.pl -config="${PWD}/awstats.example.conf" -output
+
+[AWStats]: http://www.awstats.org/
+
+[[!tag tags/tools]]
+[[!tag tags/web]]