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!
