AWStats einrichten und Logs richtig lesen
Logfile-Analyse ohne JavaScript: Installation, regelmässiger Lauf, Bot-Filter und die Kennzahlen, die tatsächlich etwas aussagen.
Das Wichtigste
- Logfile-Analyse zählt jeden Zugriff, auch von Clients ohne JavaScript. Deshalb liegen die Zahlen systematisch über denen einer Tag-basierten Messung.
- Ohne Bot-Filter ist die Hälfte der Zugriffe automatisiert. Die Roh-Zahl ist keine Besucherzahl.
- AWStats braucht einen regelmässigen Lauf über die aktuellen Logs – nach der Rotation sind alte Einträge nicht mehr nachverarbeitbar.
- Hits, Seitenaufrufe und Besuche sind drei verschiedene Dinge. Nur die letzten beiden sagen etwas über Nutzung aus.
Logfile-Analyse ist die ältere Methode der Reichweitenmessung und in einem Punkt bis heute überlegen: Sie sieht jeden Zugriff, unabhängig davon, ob JavaScript ausgeführt wurde. Genau das macht sie zur richtigen Ergänzung, wenn man wissen will, was Crawler auf der Seite tun.
Installation und Konfiguration
apt install awstats
Pro Domain eine Konfigurationsdatei unter /etc/awstats/awstats.example.com.conf:
LogFile="/var/log/apache2/example.com-access.log"
LogType=W
LogFormat=1
SiteDomain="example.com"
HostAliases="www.example.com localhost 127.0.0.1"
DirData="/var/lib/awstats"
DirIcons="/awstats-icon"
# Auswertungen, die sich lohnen
ShowRobotsStats=1
ShowHTTPErrorsPageDetail=1
ShowLinksOnUrl=1
LogFormat=1 entspricht dem combined-Format von Apache. Wer ein eigenes Format definiert hat, muss es hier nachbauen – sonst verarbeitet AWStats null Zeilen und meldet trotzdem Erfolg.
Regelmässiger Lauf
# /etc/cron.d/awstats
5 * * * * www-data /usr/lib/cgi-bin/awstats.pl -config=example.com -update >/dev/null
Stündlich ist der sichere Rhythmus. Der Grund ist die Logrotation: AWStats verarbeitet nur, was seit dem letzten Lauf dazugekommen ist. Rotiert das Log um Mitternacht und AWStats läuft erst um 6 Uhr, sind die Einträge der Nacht weg.
Prüfen, ob es tatsächlich läuft:
ls -la /var/lib/awstats/
# awstats082026.example.com.txt sollte aktuell sein
Bots herausrechnen
Ohne Filter besteht ein erheblicher Teil der Zugriffe aus automatisiertem Verkehr: Suchmaschinen, SEO-Werkzeuge, Sicherheitsscanner, Vorschaudienste, KI-Crawler. AWStats bringt eine Erkennungsliste mit, die aber nur so gut ist wie ihre Pflege.
Ergänzen lässt sie sich in der Konfiguration:
# eigene Bot-Muster, die die Standardliste nicht kennt
LevelForRobotsDetection=2
Direkt im Log nachsehen lohnt sich ohnehin:
# die häufigsten User-Agents
awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -rn | head -25
# IPs mit auffällig vielen Zugriffen
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -25
# Zugriffe pro Minute einer verdächtigen IP
grep '203.0.113.77' access.log | awk '{print substr($4,2,17)}' | uniq -c | head
Die dritte Abfrage trennt zuverlässig: Ein Mensch erzeugt einige Aufrufe pro Minute, ein Crawler dreistellige Zahlen.
Die Kennzahlen richtig lesen
| Begriff | Bedeutung |
|---|---|
| Hits | jede angeforderte Datei, inklusive Bildern und Stylesheets |
| Seiten | Anforderungen, die AWStats als Seite wertet (HTML, PHP) |
| Besuche | Folge von Zugriffen einer IP mit weniger als 60 Minuten Pause |
| Eindeutige Besucher | verschiedene IP-Adressen im Zeitraum |
| Bandbreite | übertragene Datenmenge |
Hits sind keine Besucherzahl. Eine Seite mit 40 Bildern erzeugt bei einem Aufruf über 40 Hits. Die Zahl steigt, wenn jemand mehr Bilder einbaut, und sagt nichts über Reichweite.
Eindeutige Besucher über IP sind eine Näherung. Ein Firmennetz mit hundert Mitarbeitern hinter einer IP zählt als ein Besucher. Ein Mobilnutzer, dessen IP sich unterwegs ändert, als mehrere.
Nützlich sind vor allem die Auswertungen, die andere Werkzeuge nicht liefern:
- HTTP-Fehler mit Detailseite. Welche URLs erzeugen 404? Das ist die Liste, aus der Weiterleitungen entstehen.
- Robots-Statistik. Welcher Crawler holt wie viel? Wenn ein einzelner Bot mehr Bandbreite zieht als alle Besucher zusammen, ist das eine Entscheidung wert.
- Dateitypen und Bandbreite. Wo geht das Volumen hin – oft in unoptimierte Bilder.
Zugriff auf die Auswertung schützen
Die Statistik verrät viel über Struktur und Nutzung der Seite. Sie gehört hinter einen Verzeichnisschutz:
<Location "/awstats">
AuthType Basic
AuthName "Statistik"
AuthUserFile /var/www/secure/.htpasswd
Require valid-user
</Location>
Die statische Variante ist noch sicherer: AWStats erzeugt HTML-Dateien, die gar nicht im Web liegen müssen.
/usr/lib/cgi-bin/awstats.pl -config=example.com -output -staticlinks \
> /var/reports/example.com-$(date +%Y-%m).html
Damit läuft kein CGI-Skript im Web, und die Auswertung liegt als Datei vor, die per SSH abgeholt wird.
Ergänzung, kein Ersatz
Logfile-Analyse und eine Tag-basierte Messung beantworten verschiedene Fragen. Die Logs sagen dir, was am Server ankommt – inklusive Crawler, blockierter Skripte und Fehlerseiten. Ein Analyse-Tag sagt dir, was Nutzer im Browser tun – Scrolltiefe, Klickwege, Interaktionen.
Wer Bot-Verkehr, Fehlerseiten oder Bandbreitenverbrauch verstehen will, kommt am Log nicht vorbei. Wer Nutzerverhalten verstehen will, am Tag nicht.
Häufige Fragen
Warum zeigt AWStats mehr Besucher als mein Analyse-Tag?
Weil beide Verschiedenes messen. Die Logfile-Analyse zählt jeden Serverzugriff, auch von Bots und Clients ohne JavaScript. Ein Tag-basiertes Werkzeug zählt nur, wo das Skript ausgeführt und nicht blockiert wurde. Beide Zahlen sind richtig und nicht vergleichbar.
Wie oft muss AWStats laufen?
Mindestens einmal täglich, besser stündlich. Der Lauf verarbeitet die seit dem letzten Mal hinzugekommenen Zeilen. Wenn die Logrotation dazwischenkommt und die alte Datei komprimiert oder löscht, fehlen die Einträge dauerhaft.
Wie erkenne ich Bots im Log?
Über den User-Agent, über auffällige Muster wie hunderte Aufrufe pro Minute aus einer IP, und über Zugriffe auf Pfade, die kein Mensch aufruft. AWStats bringt eine Bot-Liste mit, die aber gepflegt werden muss – neue Crawler tauchen ständig auf.
Ist Logfile-Analyse datenschutzfreundlicher?
Sie setzt keine Cookies und braucht kein Skript im Browser. IP-Adressen fallen aber trotzdem an, weil der Webserver sie protokolliert. Wer sauber arbeiten will, kürzt sie beim Schreiben oder verkürzt die Aufbewahrung der Logs.
Weiterlesen
- Monitoring und Logauswertung im Alltag
Was überwacht gehört, welche Schwellen sinnvoll alarmieren und wie du aus Logs eine Störungsursache herausliest.
- Apache-Grundkonfiguration verstehen
VirtualHost, Module, MPM-Auswahl und Logformate: die Stellschrauben außerhalb der .htaccess.
- Linux-Grundlagen für Webserver
Paketverwaltung, Dienste, Rechte, Firewall und die Kommandos, mit denen du eine Störung in Minuten eingrenzt.
- Plesk: Fallstricke bei Installation und Update
Reihenfolge von Betriebssystem und Panel, Konflikte mit vorinstallierten Diensten und was du vor einem Major-Update sicherst.