Dez. 2010 - Die Webstatistiken auf dem SUSE Server :
wie wir es soeben gemacht haben
Webstatistiken sind eigentlich essentiell für die Kontrolle. Dafür hat der Author: Laurent Destailleur (ein fleißiger Schweizer Programmierer) das Werkzeug AWwstats (Advanced Web Statistics) entwickelt. Da wir alle unsere Webserver mit SUSE Linux betreiben, hier unsere Version der (globalen) AWstats Installation.
Auf dem Server läuft Suse 10.3 und awstats 6.9
Damit wir das immer wieder selbst rekonstruieren können, hier unsere Konfiguration.
Der Test-Webserver heißt bei uns "www10". Unter www10.rde.net wohnt eine ganz normale Website, unter www10.ipw.net meldet sich der Server, wer er ist. Die Statistikprogramme werden alle unter www10.ipw.net/cgi-bin aufgerufen. Diese Ecke muss natürlich nach aussen dicht sein, mit einer .htaccess mit Kennwort abesichert.
Es sind also mehrere Schritte bis zur fertigen grafischen Auswertung und es gibt eine Menge Ecken und Kanten.
Ob mit YAST oder von Hand, das hier muss auf dem Server installiert werden: awstats-6.9-9.1.noarch.rpm
Der Apache schreibt auf so gut wie allen Linux-Systemen sein "access Logbuch", immer und alles. Ob er alle Daten in eine Datei schreibt oder pro Website eine eigene Log_datei füttert, das steht in den vhost Konfigurationen.
Eine vhost-Config als Muster : www.klangstudio.de
<VirtualHost www.klangstudio.de:80>
ServerName www.klangstudio.de
DocumentRoot /vol2/www/www.klangstudio.de
<Directory "/vol2/www/www.klangstudio.de">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>
ErrorLog /var/log/apache2/web-error.log
CustomLog /var/log/apache2/access-klangstudio.log combined
LogLevel warn
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Die awstats Config zu www.klangstudio.de
# AWSTATS CONFIGURE FILE 6.8
#-----------------------------------------------------------------------------
# $Revision: 1.334 $ - $Author: eldy $ - $Date: 2008/10/05 11:01:31 $
#-----------------------------------------------------------------------------
# MAIN SETUP SECTION (Required to make AWStats work)
#-----------------------------------------------------------------------------
#
# angepasst am 30.11.2010 gr fuer www10 Suse 10.3 Server
#
LogFile="/var/log/apache2/access-klangstudio.log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="www.klangstudio.de."
HostAliases="www.klangstudio.de 127.0.0.1 localhost"
DNSLookup=0
DirData="/var/cache/awstats"
DirCgi="/cgi-bin"
DirIcons="/icons"
AllowToUpdateStatsFromBrowser=1
AllowFullYearView=3
#-----------------------------------------------------------------------------
# OPTIONAL SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------
EnableLockForUpdate=1
DNSStaticCacheFile="dnscache.txt"
DNSLastUpdateCacheFile="dnscachelastupdate.txt"
SkipDNSLookupFor=""
......... usw. . . . .
Kollision mit Default Eintrag in (/etc/apache2) default-server.conf
In der awstats.www.klangstudio.de.conf wird ein Alias gesetzt.
DirIcons="/icons"
Dieser Eintrag kollidiert meist mit einem Default Eintrag in der "default-server.conf". Dann werden in der Auswertung keine Grafiken angezeigt. Kommentieren Sie ihn in der "default-server.conf" einfach aus.
# Alias /icons/ "/usr/share/apache2/icons/"
und dann den "apache" neu starten !!!!! Meist hilft das.
Verzeichnis Missmatch bei den awstats Images
Man muß wirklich genau hinschaun, sonst sucht man lange vergebens:
eigentlich stehen die awstats Grafiken in "Alias /icons/ "/usr/share/awstats/icons/""
dennoch zeigt noch irgendwo ein Link auf "Alias /icons/ "/usr/share/apache2/icons/""
Ich habe die ganzen Unterverzeichnisse von /usr/share/awstats/icons/ einfach dort in /usr/share//apache2/icons/ rein kopiert. Mir war die elende Sucherei einfach zu langwierig.
Die vhost-Config von www10.ipw.net
<VirtualHost www10.ipw.net:80>
ServerName www10.ipw.net
Serveralias 193.218.16.87
DocumentRoot /srv/www/htdocs
<Directory "/srv/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>
ErrorLog /var/log/apache2/web-error.log
CustomLog /var/log/apache2/access.log combined
LogLevel warn
ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"
<Directory "/srv/www/cgi-bin">
AllowOverride ALL
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off
</VirtualHost>
Das Basisverzeichnis / Rootverzeichnis des Webervers:
Unser (Suse Default) Web root (also das root Verzeichnis von www10.ipw.net) ist <Directory "/srv/www/htdocs">. Paralell dazu gibt es bei Suse immer das cgi Verzeichnis <Directory "/srv/www/cgi-bin"> . Das /htdocs/ ist public und offen für alle. Dort wohnt nur ein trivialer index.html, der bei www10.ipw.net angezeigt wird. Im /cgi-bin/ liegt die 620kb grosse Perl Datei "awstats.pl". Die macht alles. Dort ist alles dem User root und der Gruppe root zugeordnet.
Und dieser Perl Script sucht (beim lokalen oder remote Aufruf) die (jeweilige) awstats.www.klangstudio.de.conf sowohl zum lokalen Auslesen des Logbuches wie auch zum Anzeigen der Ergebisse per externem Webbrowser.
Die erste Auswertung laufen lassen:
Ist AWstats installiert, die Logdatei(en) vom Apache lokalisiert und geprüft, daraufhin die awstats Config für die (jeweils gewünschte) Website angepaßt, dann kann die erste Statistik mal rennen.
perl /srv/www/cgi-bin/awstats.pl -update -config=www.klangstudio.de
Je nach Logbuch-Größe und mit oder ohne DNS Namensauflösung dauert das von 10 Minuten bis zu zig Stunden. Ich habe die (rückwärts) Namensauflösung angeschaltet, weil sie bei der bundesdeutschen DSL Methodik (zum ersten Test) nicht sinnvoll erscheint.
Doch jetzt ist das Scheunentor zum cgi Verzeichnis völlig offen !!
Das kann natürlich nicht lange so bleiben, also muß eine .htaccess Datei her. Die ist eigentlich ganz simpel.
-----------------------------------------------------------
AuthUserFile /etc/apache2/.htpasswd
AuthName "www10-awstats-Statistiken-2010"
require valid-user
AuthType Basic
AuthGroupFile /dev/null
-----------------------------------------------------------
Mehr ist das erstmal nicht. Damit kommt in dieses Verzeichnis niemand rein, der sich nicht anmeldet.
In der /etc/apache2/.htpasswd stehen die verschlüsselten Kennwörter, die man so auch nicht lesen kann.
Jetzt kann Jedermann diese Zeile aufrufen und stockt bei der Eingabe:
http://www10.ipw.net/cgi-bin/awstats.pl?month=11&year=2009&output=main&config=www.klangstudio.de
Und sollte er die Benutzernamen mit zig Millionen von User/PW Kombinationen erschnüffeln, dann kann er sich die Auswertung zu Gemüte führen und sich freuen. Viel Glück.
Es gibt noch ein paar Randbedingungen in anderen Conf Dateien !!
In /etc/apache2/conf.d gibt es die standardisierte "awstats.conf" Datei, in der die (Default) Pfade und aliase vorkonfiguriert sind. Dort muss man eventuell eingreifen.
Unsere sieht jetz so aus:
<IfDefine AWSTATS>
CustomLog /var/log/apache2/awstats.log combined
Alias /icons/awstats/ "/usr/share/awstats/icon/"
<Directory "/usr/share/awstats/icon">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /awstats/lang/ "/usr/share/awstats/lang/"
<Directory "/usr/share/awstats/lang">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /awstats/css/ "/usr/share/awstats/css/"
<Directory "/usr/share/awstats/css/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /awstatsclasses "/usr/share/awstats/classes"
<Directory "/usr/share/awstats/classes">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /awstats/js/ "/usr/share/awstats/js/"
<Directory "/usr/share/awstats/js/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</IfDefine>
Die Crux mit den Verzeichnissen und den Pfaden
Und dann muss man unbedingt die Pfade auch nochmal prüfen.
Die Hilfsdateien wie die ganzen Icons für die wunderschöne grafische Anzeige der Auswertung liegen correkt in "/usr/local/awstats/icons/". Wenn die in "/usr/share/awstats/icons" liegen, stimmt etwas nicht.
Also - Sind die nicht da, stimmt der Pfad nicht. Dann heißt es nachbessern. Das ist von Suse 10.1, 10.3 zu Suse 11.1 leider verschieden. Jetzt wissen Sie aber, wo Sie suchen müssen.
2011 - Unter Suse 11.4
Die Icons kommen bei uns jetzt immer in
"/usr/local/awstats/icons/". Sonst ist die Verwirrung bei mehreren Servern grenzenlos und man sucht sich tot.
-
Feb. 2012 unter Suse 12.1 ist es (wieder) anders
Unter Suse 12.1 haben wir per yast awstats in der Version 7.0-14.1 installiert und dort werden die Icons per default in "/srv/www/htdocs/awstats/icons/other/" gesucht. Installiert waren/werden sie aber (automatisch) unter "/usr/share/awstats/icon/other/". Ist halt etwas mühsam, all die kleinen Unstimmigkeiten von Hand zu reparieren.
-