Awstats für Ubuntu 8.10 konfigurieren 0

Posted by fwoeck
on Monday, April 20

Nicht der letzte Schrei, aber funktioniert: Awstats für die Zugriffsstatistik. Ein paar Schritte sind schon nötig; der unten referenzierte Blog von Sami Dalouche hat mir sehr geholfen.

Beginnen wir mit den Paketen!

Paketinstallation aus dem Repo

# apt-get install awstats

die apache2-Konfiguration

Damit die Logfiles den rechten Ort und das rechte Format haben:

ErrorLog /var/log/apache2/mephisto-error.log
CustomLog /var/log/apache2/mephisto-access.log combined

...kommt in die VHost-Conf – hier für mein Blog.

Die Aktivierung des Perl-Cgi-Scripts kommt erstmal direkt in die root-Seite des default-Hosts – brrr. Schränken wir den Zugriff mal auf unsere IP-Adresse ein. In der /etc/apache2/sites-available/default:

VirtualHost *:80>
    ServerName sat.bm.net
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    DocumentRoot /var/www/
    Alias /awstats-icon/ /usr/share/awstats/icon/
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory /var/www/>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    <Directory /usr/lib/cgi-bin/>
        Options +ExecCGI
        AllowOverride None
    </Directory>
    <Location /cgi-bin/>
        Order deny,allow
        Deny from all
        Allow from 217.128.34.18
        Allow from localhost
    </Location>
</VirtualHost>

das File /etc/awstats/awstats.conf

In diesem Fall verwende ich nur einen einzigen Host zur Analyse, ansonsten könnte man pro Quelle vermutlich noch separate Config-Files aufstellen. Also im /etc/awstats/awstats.conf:

LogFile="/var/log/apache2/mephisto-access.log" 
SiteDomain="bm.net" 
HostAliases="rnotes.bm.net" 
DirData="/srv/data/stats/mephisto"

die Pfade einrichten

Wir brauchen noch einen Ort, wo die Auswertungsdaten landen, und der muss vom Webserver zumindest lesbar sein:

# mkdir -p /srv/data/stats/mephisto
# chown -R www-data. /srv/data/stats

einen Cronjob bauen

Schließlich muss der awstats-Prozess angestoßen werden – ein mal pro Tag reicht mir. Im File /etc/cron.daily/awstats:

#!/bin/sh
/usr/share/doc/awstats/examples/awstats_updateall.pl 
    -awstatsprog=/usr/lib/cgi-bin/awstats.pl now > /dev/null

...und das Ganze ausführbar machen:

# chmod a+x /etc/cron.daily/awstats

Daten vor der Rotation schützen

Logrotate könnte unter Umständen die apache-Logs wegrotieren, bevor awstats zugeschlagen hat. Daher fügen wir ein prerotate-Skript in die /etc/logrotate.d/apache2 ein:

prerotate
  /etc/cron.daily/awstats
endscript

Test und Start

Damit wir gleich was Vernünftiges sehen, kann man einmal zu Beginn den cronjob manuell anschmeißen. Dann sollte der Aufruf der eingerichteten Website – hier http://sat.bm.net/cgi-bin/awstats.pl eine hübsche Übersicht geben. Hey, schon vier Besucher!

Weblinks

  1. awstats.sourceforge.net
  2. howto-apache2-awstats-setup-on-debianubuntu-edgy-eft
  3. setting-up-awstats-to-parse-nginx-log-files-served-from-apache