Add AWStats post.
authorW. Trevor King <wking@drexel.edu>
Thu, 8 Dec 2011 12:37:44 +0000 (07:37 -0500)
committerW. Trevor King <wking@drexel.edu>
Thu, 8 Dec 2011 12:37:44 +0000 (07:37 -0500)
posts/AWStats.mdwn [new file with mode: 0644]

diff --git a/posts/AWStats.mdwn b/posts/AWStats.mdwn
new file mode 100644 (file)
index 0000000..4885411
--- /dev/null
@@ -0,0 +1,71 @@
+[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]]