# Nutzungsanalyse der Website (Server-Logs + GoAccess) Die neue Hugo-Seite verzichtet bewusst auf JavaScript-Tracking (kein Google Analytics, keine Cookies, kein Consent-Banner nötig). Stattdessen werten wir die **Apache-Access-Logs** aus, die IONOS ohnehin auf dem Server schreibt. Ablauf des Skripts `analyze.py`: 1. Verbindet sich per **SFTP** mit IONOS und lädt alle `access.log*`-Dateien aus dem `/logs`-Ordner nach `./logs/` herunter. 2. Entpackt die rotierten `.gz`-Logs und fügt alles zu einer Datei zusammen. 3. Lässt **GoAccess** darüberlaufen und erzeugt einen HTML-Report unter `./results/report_JJJJ-MM-TT.html`, der automatisch im Browser geöffnet wird. `logs/` und `results/` stehen in `.gitignore` und werden nicht eingecheckt. --- ## Einmalige Einrichtung ### 1. Python-Abhängigkeit (paramiko) ```powershell pip install -r requirements.txt ``` ### 2. GoAccess (über WSL – empfohlen) GoAccess wird offiziell nur für Linux/macOS gebaut und ist in keinem Windows-Paketmanager verfügbar. Unter Windows ist der zuverlässigste Weg die **WSL** (Windows Subsystem for Linux). `bin\install_py.bat` prüft automatisch, ob WSL und GoAccess vorhanden sind, und zeigt sonst die passenden Befehle. **WSL installieren** (falls noch nicht vorhanden, PowerShell als Administrator): ```powershell wsl --install ``` Danach Windows neu starten und die Ubuntu-Ersteinrichtung (Benutzer/Passwort) durchlaufen. **GoAccess in der WSL installieren:** ```powershell wsl -e sudo apt update wsl -e sudo apt install -y goaccess ``` In der `.env` steht dafür (Standard): ```text GOACCESS_MODE=wsl ``` Das Skript ruft GoAccess dann per `wsl goaccess ...` auf und übersetzt die Windows-Pfade automatisch nach `/mnt/c/...`. > **Alternative – nativer Windows-Build:** Falls du kein WSL nutzen willst, > lade den Cygwin-Build von , entpacke ihn (z. B. > nach `C:\tools\goaccess\`) und setze in der `.env`: > > ```text > GOACCESS_MODE=exe > GOACCESS_EXE=C:\tools\goaccess\goaccess.exe > ``` ### 3. IONOS-SFTP-Zugang in `.env` eintragen Die Zugangsdaten stehen im IONOS-Kundenbereich unter **Hosting → SFTP/SSH**. Es sind dieselben, mit denen der `/logs`-Ordner erreichbar ist. ```text IONOS_SFTP_HOST= IONOS_SFTP_PORT=22 IONOS_SFTP_USER= IONOS_SFTP_PASSWORD= IONOS_LOGS_DIR=/logs ``` > Die `.env` steht in `.gitignore` und wird **nicht** eingecheckt. --- ## Nutzung ```powershell # Logs neu laden, Report bauen und im Browser öffnen: analyze.bat # oder: python analyze.py # Nur neu auswerten (ohne erneuten Download der schon geladenen Logs): python analyze.py --no-download ``` Beim wiederholten Lauf werden bereits geladene, rotierte Logs übersprungen (gleiche Dateigröße) – nur das aktuell wachsende Log wird neu geholt. --- ## Was im Report steht GoAccess zeigt u. a.: - **Eindeutige Besucher** und Seitenaufrufe pro Tag - **Meistbesuchte Seiten** (welche Ferienwohnung interessiert am meisten?) - **Referrer** (woher kommen die Besucher – Google, direkte Eingabe, Links) - **Länder / Sprachen**, Browser, Betriebssysteme, Geräte - **HTTP-Statuscodes** (404-Fehler = tote Links finden) - **Traffic-Volumen** Aufrufe von Suchmaschinen-Bots werden herausgefiltert (`--ignore-crawlers`), IP-Adressen im Report anonymisiert (`--anonymize-ip`). --- ## DSGVO-Hinweis Diese Auswertung passiert **nur lokal auf deinem Rechner** aus den ohnehin anfallenden Server-Logs. Es wird nichts an Dritte übertragen und kein Tracking-Code beim Besucher ausgeführt. Server-Logs mit IP-Adressen dürfen zu Sicherheits-/Betriebszwecken vorübergehend gespeichert werden; im GoAccess- Report sind die IPs zusätzlich anonymisiert. Ein Cookie-Consent-Banner ist für diese Art der Auswertung **nicht** erforderlich. --- ## Fehlerbehebung **Report bleibt leer / „No data".** Dann passt das Log-Format nicht. IONOS nutzt meist das *Combined Log Format* (`LOG_FORMAT=COMBINED`). Wirf einen Blick in die erste Zeile von `logs/access.log.current`: - Beginnt sie mit einer IP und enthält am Ende `"...Referrer" "...User-Agent"` → `COMBINED` ist korrekt. - Fehlen Referrer/User-Agent → `LOG_FORMAT=COMMON`. - Steht der Vhost-Name vor der IP → `LOG_FORMAT=VCOMBINED`. Alternativ ein eigenes Format als GoAccess-`--log-format`-String in `.env` hinterlegen (siehe ). **`paramiko`-Authentifizierungsfehler.** SFTP-Host/-User/-Passwort im IONOS-Kundenbereich gegenprüfen. Der SFTP-Benutzer ist nicht zwingend identisch mit dem Login des Kundenbereichs.